Beneficiary Registration Verify

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

Verify the OTP for beneficiary registration.

Endpoint

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

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 the beneficiary ID and reference associated with the same registration request. Keep the resulting beneficiary details for later remitter-profile checks.

FieldTypeRequiredDescription
remitterMobilestringYesRemitter mobile number. Exactly 10 digits.
otpstringYesOTP for this operation; exactly 6 digits.
beneficiaryIdstringYesBeneficiary identifier returned for the remitter.
referenceKeystringYesCurrent reference returned by the preceding step for this remitter and operation; pass it unchanged.

Example request

The values below are synthetic. Replace the credential, outlet ID, response references and customer details before sending a request.

curl --request POST \
  --url 'https://pay2new.in/apis/dmt/v2/beneficiaryRegistrationVerify' \
  --header 'secret: YOUR_PAY2NEW_SECRET' \
  --header 'outletId: YOUR_PAY2NEW_OUTLET_ID' \
  --header 'Content-Type: application/json' \
  --data '{
  "remitterMobile": "9000000001",
  "otp": "123456",
  "beneficiaryId": "BENEFICIARY_ID_FROM_RESPONSE",
  "referenceKey": "REFERENCE_FROM_PREVIOUS_RESPONSE"
}'

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.beneficiaryIdstringBeneficiary involved in this verification, if returned.
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.

The provider documentation also shows an OTP-sent outcome on this verify operation. Do not treat status: 4 as completed verification. After status: 1, refresh Remitter Profile and confirm the beneficiary state. Nested verification data may vary.

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.

OTP still required

{
  "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
}

Verification accepted — illustrative data

{
  "status": 1,
  "message": "Transaction Successful",
  "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

Refresh Remitter Profile and confirm the beneficiary before requesting a transfer OTP.

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 Verify. 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

OTP for this operation; exactly 6 digits.

string
required

Beneficiary identifier returned for the remitter.

string
required

Current reference returned by the preceding step for this remitter and operation; pass it unchanged.

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