🇻🇳 VN: Napas


📘

"paymentMethodName": "Napas"


Payment Method Features

FeatureNapas
CountryVietnam
"paymentMethodName" in APINapas
Processing CurrenciesVND
PaymentsNo
DisbursementsYes
-- Min per transaction amount50,000
-- Max per transaction amount299,000,000
RefundsNo
ChargebacksNo

Possible Disbursement Scenarios:

Our API will provide you with all the necessary information to execute on of the following scenario:

  1. The client requests a disbursement
  2. The system returns a disbursement status and info

The latest disbursement status is returned via a callback.


Napas Disbursement Workflow

Download in high resolution


[Step 2] You need to create a new intent

  • Use the following API method to create an intent: POST /processing/api/v1/intents.
  • When creating the intent, complete the Disbursement object.
  • Most fields are common across all payment methods and are thoroughly described in the API Reference section.
  • Method-specific parameters ( please make sure you provided them correctly):
  •  "incomingDetails": {
                        "accountType": "card",
                        "number": "9704970497049704"
                    }
  • Ensure these all the required fields are completed accurately so that we can process your request correctly.

Request Example

{
  "clientReferenceId": "202510202",
  "disbursements": [
    {
      "payeePaymentInstrument": {
        "paymentMethodName": "Napas",
        "incomingDetails": {
                    "accountType": "card",
                    "number": "9704970497049704"
                }
      },
      "submittedAmount": {
        "value": null,
        "currency": "VND"
      },
      "authAmount": {
        "value": 2000000.00,
        "currency": "VND"
      }
    }
  ]
}

payments[].payeePaymentInstrument.incomingDetails for Vietnam Napas

Field

Required

Type

Description

Example

accountType

Yes

String

Type of accountNo. Possible values: "account", "card"

card

number

Yes

String

Account number or card bank of client. Length is 3-22 characters

9704970497049704


disbursements[].submittedAmount and disbursements[].authAmount

Having two objects that looks similar might be confusing, however we need both objects to process your request correctly when the FX is involved.

Please follow the instruction on the dedicated page Amount Fields: submittedAmount and authAmount


[Step 5] Return the status in response

  • In the response, you will receive an disbursement id and status

Response Example

{
    "intentId": "24148546870213835",
    "payments": [],
    "disbursements": [
        {
            "id": "241485668832161722",
            "submittedAmount": {
                "value": 2000000.00,
                "currency": "VND"
            },
            "authAmount": {
                "value": 2000000.00,
                "currency": "VND"
            },
            "payeePaymentInstrument": {
                "id": "3525967789943272833",
                "storedDetails": {
                    "number": "9704970497049704",
                    "bankCode": "VIETABANK",
                    "accountType": "card"
                }
            },
            "createdAt": 1761558494.451581186,
            "status": "ACCEPTED"
        }
    ],
    "clientReferenceIntentId": "202510202",
    "intentStatus": "CREATED"
}

[9] Receive the webhook with the transaction status

🔗

More about Disbursement Callbacks on the dedicated page

  • After the transaction was processed and reached its final status (PAID_OUT or DECLINED)
  • The Platform will notify you about the latest status change via the callback

SIMPLE WEBHOOK WITH TRANSACTION STATUS

{
    "transactionType": "DISBURSEMENT",
    "transactionId": "111122223333444455",
    "status": "ACCEPTED"
}