Beneficiary Registration

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

Register a beneficiary bank account for the remitter.

Endpoint

POST https://pay2new.in/apis/dmt/v2/beneficiaryRegistration

Authentication

Send both headers on every request:

HeaderRequiredDescription
secretYesYour Pay2New-issued API secret.
outletIdYesActive Pay2New customer/outlet ID from customer onboarding.

📘

Account and outlet access

Use an IP address registered on your partner account. The partner account, KYC, wallet, API access and DMT service must be active. The outlet must be enabled for this service.

Send an actual JSON object with Content-Type: application/json.

Request

Use bankId from Bank Details. The v2 request uses name and beneMobile. If the response requests OTP verification, continue with Beneficiary Registration Verify.

FieldTypeRequiredDescription
remitterMobilestringYesRemitter mobile number. Exactly 10 digits.
beneMobilestringYesBeneficiary mobile number; exactly 10 digits.
accountNumberstringYesBeneficiary account number. Keep as text to preserve leading zeroes.
ifscstringYesBeneficiary bank IFSC. Exactly 11 characters.
bankIdstringYesNumeric bank identifier from Bank Details.
namestringYesBeneficiary name; letters, numbers and permitted punctuation.

Example request

The values below are synthetic. Replace the credential, outlet ID, response references and customer details before sending a request. Replace the bank/product placeholder with the numeric code returned for your account.

curl --request POST \
  --url 'https://pay2new.in/apis/dmt/v2/beneficiaryRegistration' \
  --header 'secret: YOUR_PAY2NEW_SECRET' \
  --header 'outletId: YOUR_PAY2NEW_OUTLET_ID' \
  --header 'Content-Type: application/json' \
  --data '{
  "remitterMobile": "9000000001",
  "beneMobile": "9000000002",
  "accountNumber": "000123456789",
  "ifsc": "TEST0000001",
  "bankId": "BANK_ID_FROM_BANK_LIST",
  "name": "Sample Beneficiary"
}'

Response

Read the JSON status and message even when the HTTP request completes successfully.

FieldTypeDescription
statusintegerOutcome of this operation; see the status notes below.
messagestringOutcome or rejection description.
order_idnullNo Pay2New transfer reference is created by this operation.
dataobject, array or nullService response data, when available. Its fields depend on the outcome.

The response data may include the next reference or action. Preserve returned references exactly; do not assume every response has the same nested fields.

📘

OTP and next steps

1 indicates success for the current step, 2 indicates rejection or failure, and 4 means an OTP was sent and the matching verification step is still required. Inspect the message and response data for the next step. A 3 response needs interpretation for this operation; it does not establish that any money was transferred.

Rejections

A missing secret header returns status: 2 and message: "Secret Header not found!". Missing outletId returns "Outlet ID not found!"; an unavailable outlet returns "Invalid OutletId". Invalid or missing JSON returns "Invalid Json!". Field validation failures return "Invalid Parameters" with an errors object containing the field messages. Application failures can be returned in an HTTP-success response.

{
  "status": 2,
  "message": "Invalid Json!"
}

Service-specific response fields and behaviour

FieldTypeDescription
data.beneficiaryIdstringKeep this ID for the matching registration verification.
data.referenceKeystringOperation-specific reference. Copy unchanged, including any +, / or = characters.
data.validitystringProvider-supplied expiry timestamp when present. Sample dates are illustrative; use the current returned value.

Response examples for this operation

Synthetic examples adapted to the Pay2New wrapper. Reference tokens and dates are placeholders. Provider data can omit fields depending on the outcome; the application status and current returned references control the next step.

Beneficiary registration OTP sent

{
  "status": 4,
  "message": "OTP Successfully sent",
  "data": {
    "beneficiaryId": "SAMPLE_BENEFICIARY_ID",
    "validity": "2026-09-26 18:15:00",
    "referenceKey": "REFERENCE_FROM_THIS_RESPONSE"
  },
  "order_id": null
}

Invalid outlet

{
  "status": 2,
  "message": "Invalid OutletId"
}

Service unavailable

{
  "status": 2,
  "message": "Oops, This service is not for you!"
}

Validation error

{
  "status": 2,
  "message": "Invalid Parameters",
  "errors": {
    "remitterMobile": "This required field is missing or invalid."
  }
}

📘

Next step

Complete Beneficiary Registration Verify using the returned beneficiaryId and referenceKey.

See the DMT Integration Flow for all endpoints and Webhook Information for transaction notifications.

Pay2New exposes only status, message, data and order_id: null on a provider-backed result. Upstream statuscode, actcode, timestamp, ipay_uuid, orderid and environment are not top-level fields in this API. Early errors can omit data/order_id.

Provider data-field reference: Instantpay Beneficiary Registration. Use the Pay2New method, headers and request field names on this page; upstream examples use a different envelope.

Body Params
string
required

Remitter mobile number. Exactly 10 digits.

string
required

Beneficiary mobile number; exactly 10 digits.

string
required

Beneficiary account number. Keep as text to preserve leading zeroes.

string
required

Beneficiary bank IFSC. Exactly 11 characters.

string
required

Numeric bank identifier from Bank Details.

string
required

Beneficiary name; letters, numbers and permitted punctuation.

Headers
string
required

Pay2New-issued API secret. Use a registered source IP.

string
required

Active Pay2New customer/outlet ID from customer onboarding.

Response

Language
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json