Skip to content

Payout Element Verification

This API verifies the format of the merchant-provided payee information fields (e.g., account number, name, ID, etc.) before initiating a payment. This ensures that the payee information complies with the required formatting when the transaction is initiated. This API is optional and recommended for merchants with withdrawal or payee information storage logic. Verification includes formatting (e.g., length, regularization, and more detailed algorithmic rules) and valid enumeration values.

1. Initiate Verification

Payout Element Verification API structure is completely analogous to Disbursement Request API. The top-level fields and field names within the Data body remain consistent with Disbursement Request API. All fields follow the standard order interface structure. Please pay special attention to the payee information field and submit it according to the corresponding requirements.

Untransmitted fields will not be validated. Transmitted fields that are in the order field list but do not fall within the corresponding payment method's rules will be marked as non-validated fields (ignoredFields). If they are not in the order field list, they will not be processed.

Note:

In order to locate the payment method corresponding to the field that needs to be verified, please be sure to submit the fields related to the following payment method.

Field NameTypeIs this field required?Format DescriptionSample Value
countrystringRequiredCountry code, ISO 3166 Alpha-2 format (uppercase)ID
destinationCurrencystringRequiredDestination Currency, ISO 4217 Format (uppercase) IDR
paymentMethodTypeenumRequiredPayment method type, enumeration values: BANK_TRANSFER, WALLET, REALTIME_PAYMENT, CARRIER_BILLING, CARD, CASHBANK_TRANSFER
clearingRailenumConditionalClearing network, enumeration values: SWIFT, SEPA, LOCALLOCAL
chargeOptionenumConditionalCharge payment method. SWIFT payments must be sent viaOUR
targetOrgenumConditional ionalTarget payment institution, such as PIX, DANA, GCash, etc., depending on the payment method requirements.BCA
payeeInfo.payeeTypeenumOptionalPayee type, enumeration values: PERSONAL, CORPORATIONPERSONAL

1.1 Check Field Description

  • Account Information
Field NameTypeSample Value
accountNostring0812345678
accountTypeenumP
checkDigitstring12
  • Certificate Information
Field NameTypeSample Value
documentTypeenumDNI
documentIdstring02376720575
documentIssueDatestring2020-01-01
documentExpireDatestring2030-01-01
  • Name information
Field NameTypeSample Value
fullNamestringJames Shri Kanta
firstNamestringJames
middleNamestringShri Williams
lastNamestringKanta
  • Contact and Address Information
Field NameTypeSample Value
payeePhonestring6281234567890
emailstringtest@gmail.com
addressstringJl. Thamrin 10
citystringJakarta
statestringJakarta
zipCodestring12345
birthDatestring1990-01-01
  • Transaction Information
Field NameTypeSample Value
remarkstringCommission payment to Jack
purposeenumPAYCMSN

1.2 Field Format Description

  • Validation requirements for each field (such as format, length, regular expression, and dependencies) are dynamically loaded by the system based on the country, payment method, and clearing channel. Fields are divided into three categories:

    • Required fields (required): Validation will fail if not provided or if the format is incorrect.

    • Optional fields (optional): Validation is performed if provided; not providing a valid field will not affect validation.

    • Ignored fields (ignored): Fields are not considered in the current payment method field rules and are not validated when passed in. They are directly returned as nonValidatedFields.

  • Please note fields with dependencies:

    • If the payment method requires documentType, the documentId must be correctly passed when validating documentType.

    • If the payment method requires accountType, the accountNo must be correctly passed when validating accountType.

2. Request Example

2.1 Request Input Example

json
{
  "version": "1.4",
  "keyVersion": "1",
  "requestTime": "2025-05-09T15:00:00.000+08:00",
  "appId": "ee8856246fc346798a0238720824c3b8",
  "merchantNo": "P04010130683638",
  "data": {
    "country": "ID",
    "chargeOption": "",
    "clearingRail": "",
    "destinationCurrency": "IDR",
    "payeeInfo": {
      "paymentMethodType": "WALLET",
      "targetOrg": "DANA",
      "accountInfo": {
        "accountNo": "xieliuyuan@ushareit.com",
        "accountType": "E",
        "checkDigit": "12"
      },
      "document": {
        "documentType": "CPF",
        "documentId": "02376720575"
      },
      "name": {
        "firstName": "firstName",
        "middleName": "middleName",
        "lastName": "lastName",
        "fullName": "SASD"
      },
      "address": {
        "address": "test address 111"
      },
      "payeePhone": "09233333333"
    },
    "payerInfo": {
      "name": {
        "fullName": "testSimpleName"
      }
    },
    "remark": "",
    "notifyEmail": ""
  }
}

2.2 Request Response Structure

FieldTypeIs this field required?Description
codestringYesReturn code. APPLY_SUCCESS indicates a successful interface request; others indicate failures, such as CONTROL ACT_INVALID, PARAMS_INVALID, etc.
msgstringYesReturn description
dataobjectNoResponse data
└ validationCodestringNoValidation result code: PASS indicates all fields passed, PARAMS_INVALID indicates a field failed.
└ validationFailedFieldsmapNoValidation failed fields and error message (field name → error description)
└ validationPassedFieldsarrayNoField name that passed validation (structure: {"field": "xxx"})
└ ignoredFieldsarrayNoField names not included in validation (structure: {"field": "xxx"})

2.3 Response Examples

2.3.1 Parameter Verification Successful

json
{
    "msg": "Success.",
    "code": "APPLY_SUCCESS",
    "data": {
        "validationCode": "PASS",
        "validationPassedFields": [
            {         
              "field": "payeeInfo.name.firstName"
            }           
    ]
  }
}

2.3.2 Parameter Verification Failed

json
{
    "msg": "Success.",
    "code": "APPLY_SUCCESS",
    "data": {
        "validationPassedFields": [
            {
                "field": "notifyEmail"
            }
        ],
        "ignoredFields": [
            {
                "field": "payeeInfo.name.fullName"
            },
            {
                "field": "payeeInfo.name.lastName"
            },
            {
                "field": "remark"
            },
            {
                "field": "payeeInfo.name.middleName"
            }
        ],
        "validationCode": "PARAMS_INVALID",
        "validationFailedFields": [
            {
                "field": "payeeInfo.name.firstName",
                "errorMsg": "The payeeInfo.name.firstName should not exceed 64 characters"
            },
            {
                "field": "payeeInfo.accountInfo.accountNo",
                "errorMsg": "Please enter 11 digits starting with 0."
            }
        ]
    }
}

2.3.3 The Contract Has Not Been Signed

json
{
  "msg": "Merchant has not signed the contract or payment methods.",
  "code": "CONTRACT_INVALID"
}

2.3.4 Required Parameter Error

json
{
  "msg": "The [field] is incorrect.",
  "code": "PARAMS_INVALID"
}

Was this page helpful?

Thank you for your help in improving PayerMax Product Docs!

Last updated:

Released under the MIT License.