[PayIn] [FTD] INR Payment Data
For shops with INR currency and FTD routing, when creating a payin (POST /api/v1/payins) the following fields must be sent in the paymentData object.
H2H integration contract
Required fields in paymentData
| Parameter | Type | Required | Description |
|---|---|---|---|
| holder | string | Yes | Customer or payer name. |
| string | Yes | Customer email. | |
| mobile_number | string | Yes | Customer mobile number. |
Example request body
{
"external_id": "PIN-INR-FTD-H2H-001",
"amount": 5000.00,
"currency": "INR",
"shop_code": "your_inr_ftd_h2h_shop",
"merchant_user_id": "merchant-user-001",
"merchant_user_ip": "203.0.113.10",
"paymentData": {
"holder": "Rahul Sharma",
"email": "rahul.sharma@example.com",
"mobile_number": "9876543210"
}
}
Response fields
| Parameter | Type | Description |
|---|---|---|
| id | number | Payfield operation ID. |
| status | string | Current payin status. |
| external_id | string | Unique payin identifier from the request. |
| amount | number | Payin amount. |
| currency | string | Payin currency. |
| shop_code | string | Shop code used for routing. |
| merchant_user_id | string | Merchant user identifier from the request. |
| merchant_user_ip | string | User IP from the request. |
| paymentData | object | Shop-specific payin fields. |
| transaction_type | string | Always payin. |
| created_at | string | Creation timestamp. |
| updated_at | string | Last update timestamp. |
| finalization_date | string | Returned when the payin reaches a final status. |
Example response body
{
"id": 12345,
"status": "pending",
"external_id": "PIN-INR-FTD-H2H-001",
"amount": 5000,
"currency": "INR",
"shop_code": "your_inr_ftd_h2h_shop",
"merchant_user_id": "merchant-user-001",
"merchant_user_ip": "203.0.113.10",
"paymentData": {
"qr_link": "upi://pay?pa=merchant@upi&pn=Demo%20Merchant&am=5000&cu=INR",
"phonepe_link": "phonepe://pay?pa=merchant@upi&pn=Demo%20Merchant&am=5000&cu=INR",
"paytm_link": "paytmmp://pay?pa=merchant@upi&pn=Demo%20Merchant&am=5000&cu=INR"
},
"transaction_type": "payin",
"created_at": "2025-12-05T10:00:00.000000Z",
"updated_at": "2025-12-05T10:00:00.000000Z"
}
Without valid holder, email and mobile_number in paymentData, the request will be rejected with a validation error (422, "Invalid paymentData").
Payment Page contract
Required fields in paymentData
| Parameter | Type | Required | Description |
|---|---|---|---|
| holder | string | Yes | Customer or payer name. |
| string | Yes | Customer email. | |
| mobile_number | string | Yes | Customer mobile number. |
Example request body
{
"external_id": "PIN-INR-FTD-PAGE-001",
"amount": 5000.00,
"currency": "INR",
"shop_code": "your_inr_ftd_payment_page_shop",
"merchant_user_id": "merchant-user-001",
"merchant_user_ip": "203.0.113.10",
"paymentData": {
"holder": "Rahul Sharma",
"email": "rahul.sharma@example.com",
"mobile_number": "9876543210"
}
}
Response fields
| Parameter | Type | Description |
|---|---|---|
| id | number | Payfield operation ID. |
| status | string | Current payin status. |
| external_id | string | Unique payin identifier from the request. |
| amount | number | Payin amount. |
| currency | string | Payin currency. |
| shop_code | string | Shop code used for routing. |
| merchant_user_id | string | Merchant user identifier from the request. |
| merchant_user_ip | string | User IP from the request. |
| payment_page_url | string | URL of the hosted payment page. |
| payment_page_expires_at | string | Hosted payment page expiration timestamp. |
| transaction_type | string | Always payin. |
| created_at | string | Creation timestamp. |
| updated_at | string | Last update timestamp. |
| finalization_date | string | Returned when the payin reaches a final status. |
Example response body
{
"id": 12345,
"status": "pending",
"external_id": "PIN-INR-FTD-PAGE-001",
"amount": 5000,
"currency": "INR",
"shop_code": "your_inr_ftd_payment_page_shop",
"merchant_user_id": "merchant-user-001",
"merchant_user_ip": "203.0.113.10",
"payment_page_url": "https://api.payfield.io/public/payin-pages/pay_12345",
"payment_page_expires_at": "2025-12-05T10:15:00.000000Z",
"transaction_type": "payin",
"created_at": "2025-12-05T10:00:00.000000Z",
"updated_at": "2025-12-05T10:00:00.000000Z"
}
No custom paymentData response fields are configured for this payment-page template.
Without valid holder, email and mobile_number in paymentData, the request will be rejected with a validation error (422, "Invalid paymentData").