Skip to main content
Version: 1.0

Instant Payment Notification

Partner build URL IPN to receive result return from AppotaPay. AppotaPay request included params to notifyUrl when transaction received transfer.

Note

Double check the amount & signature fields

danger

Each transaction has a unique transactionId. Make sure that each transaction is processed only once based on this ID.

IPN

Method: POST

Header:

{
"Content-Type": "application/json"
}

Data post to IPN URL

ParamsTypeDescription
apiKeyStringApi key
partnerCodeStringPartner code
billCodeStringBill code
amountIntegerAmount payment
bankAccountNumberStringAccount number
bankAccountNameStringAccount name
bankCodeStringBank code
requestTimeIntegerSend IPN time
transactionTimeIntegerTransaction time
transactionIdStringTransaction id
extraDataStringExtra data
versionStringVersion IPN
memoStringTransfer content
signatureStringSignature of parameter passed to the API, the parameter is included into signature like this: amount + apiKey + bankAccountName + bankAccountNumber + bankCode + billCode + extraData + memo + partnerCode + requestTime + transactionId + transactionTime + version (see more how to generate signature)

Example

Response

{
"apiKey": "oMhJpkz7K6HDcR6S",
"partnerCode": "TEST",
"billCode": "123456",
"amount": 100000,
"bankAccountNumber": "902098898909",
"bankAccountName": "NGUYEN VAN A",
"bankCode": "WOORIBANK",
"requestTime": 1577811600,
"transactionTime": 1577811600,
"transactionId": "AP1212121212",
"extraData": "test",
"version": "1.0",
"memo": "test chuyen tien",
"signature": "b10294bae53e89919b3efd62a763bf3228e260ef1a329..."
}

Data from IPN return

StatusCode (String)StatusDetail (String)
00Success
11Signature not match
15Duplicate transactionId
16Unknow Error
99Timeout

Example

{
"statusCode": 00,
"statusDetail": "Success"
}

Response format

  • When confirming a successful transaction via IPN, the partner needs to respond to AppotaPay to confirm that they have received the result
  • In case the partner does not respond successfully, AppotaPay will attempt to respond up to 3 times, with a 5-minute interval between each attempt.
  • The response is considered successful when HTTP code = 200.

Example success response

HTTP Code: 200

Body:

{
"statusCode": 00,
"statusDetail": "Success"
}