2019-02-04
Payment Status Callback
You need to provide an endpoint in your system to receive payment callback notification from our system. You will receive the callback when end-customer completed the payment for DANA or LINKAJA. The payment callback notification will be sent as POST request to the "callback_url" that you specified on the create payment request. Note: Please give this notification a response back with status 200
so we know that our notification is received.
Version
You are currently viewing API version 2019-02-04. New version is available!
DANA
Example Payment Status Callback
DANA
{
"external_id": "dana-ewallet",
"amount": 1001,
"business_id": "5850eteStin791bd40096364",
"payment_status": "PAID",
"transaction_date": "2019-04-07T01:35:46.658Z",
"ewallet_type":"DANA",
"callback_authentication_token": "sample-token-id=="
}
Parameter | Type | Description |
---|---|---|
external_id | string |
Your transaction identifier that you specified in on the Generate Checkout URL request. |
amount | string |
The amount of transaction |
business_id | string |
Your business_id that registered on our system. |
payment_status | string |
The status of payment. Notes: The statuses are: EXPIRED and PAID. |
transaction_date | string |
The time that of payment was made |
callback_authentication_token | string |
Your Callback Verfication API Key that you can found on your Xendit Dashboard. You need to verify if this had the same value. |
LINKAJA
LINKAJA
{
"external_id": "linkaja-ewallet",
"amount": 300000,
"items": [
{
"id": "123123",
"name": "Phone Case",
"price": 100000,
"quantity": 1
},
{
"id": "345678",
"name": "Powerbank",
"price": 200000,
"quantity": 1
}
],
"status": "SUCCESS_COMPLETED",
"ewallet_type": "LINKAJA",
"callback_authentication_token": "sample-token-id=="
}
Parameter | Type | Description |
---|---|---|
external_id | string |
Your transaction identifier that you specified in on the Generate Checkout URL request. |
amount | string |
The amount of transaction |
items | array of item object |
List of items / products. |
item object | item object |
Details of an item, it should contains: id [string], name [string], price [number], quantity [number] |
status | string |
The status of payment. Notes: The statuses are: FAILED and SUCCESS_COMPLETED |
ewallet_type | string |
The type of ewallet that you specified when creating the payment request. Supported ewallet types: OVO, DANA, LINKAJA |
callback_authentication_token | string |
Your Callback Verfication API Key that you can found on your Xendit Dashboard. You need to verify if this had the same value. |
2020-02-01
Payment Status Callback
You need to provide an endpoint in your system to receive payment callback notification from our system. You will receive the callback when end-customer completed the payment for OVO, DANA, LINKAJA or Shopeepay. The payment callback notification will be sent as POST request to the "callback_url" that you have set in the dashboard. Note: Please give this notification a response back with status 200
so we know that our notification is received.
Version
You are currently viewing API version 2020-02-01. Click here to view older versions.
Version | Changelog |
---|---|
2020-02-01 (Latest) | Implemented the asynchronous flow for OVO payment callbacks. |
2019-02-04 | Returns a response immediately without any callbacks returned. |
Example Payment Status Callback
OVO
Callback Payload
Example: Success Payment Callback Payload
{
"event": "ewallet.payment",
"id": "6bb25ae6-cf57-437a-9b36-7ad2ee17b727",
"external_id": "ECLrAZPq8F6",
"business_id": "5850eteStin791bd40096364",
"phone": "081234567890",
"ewallet_type": "OVO",
"amount": 20000,
"created": "2019-11-01T12:34:56.007Z",
"status": "COMPLETED"
}
Parameter | Type | Description |
---|---|---|
event required | string |
Available value: "ewallet.payment" |
id required | string |
Unique identifier generated for the payment (payment_id) |
external_id required | string |
Unique identifier for the payment request of a merchant |
business_id required | string |
Unique identifier for the merchant |
phone required | string |
Phone number of the end user |
ewallet_type required | string |
Type of eWallet. Value: OVO |
amount required | number |
Amount paid |
status required | string |
Status of payment. Possible values: FAILED, COMPLETED |
failure_code optional | string |
If the payment FAILED, we include a failure code for more details on the failure. Possible values: See Error Code column in this table |
created optional | string |
If the payment is COMPLETED, we include the timestamp ISO 8601 when the payment was made (in UTC) |
Failure Codes
Example: Failed Payment Callback Payload
{
"event": "ewallet.payment",
"id": "6bb25ae6-cf57-437a-9b36-7ad2ee17b727",
"external_id": "ECLrAZPq8F6",
"business_id": "5850eteStin791bd40096364",
"phone": "081234567890",
"ewallet_type": "OVO",
"amount": 20000,
"failure_code": "USER_DECLINED_THE_TRANSACTION",
"status": "FAILED"
}
Failure Code | Failure Message |
---|---|
USER_DID_NOT_AUTHORIZE_THE_PAYMENT |
User did not authorize the payment request within time limit |
USER_DECLINED_THE_TRANSACTION |
User declined the payment request |
PHONE_NUMBER_NOT_REGISTERED |
Phone number the user tried to pay is not registered |
EWALLET_APP_UNREACHABLE |
The ewallet provider/server can't reach the user ewallet app/phone. Common cases are the ewallet app is uninstalled |
OVO_TIMEOUT_ERROR |
There was a connection timeout from the OVO app to the OVO server |
CREDENTIALS_ERROR |
The merchant is not registered in e-wallet provider system |
ACCOUNT_AUTHENTICATION_ERROR |
User authentication has failed |
ACCOUNT_BLOCKED_ERROR |
Unable to process the transaction because the user account is blocked |
SENDING_TRANSACTION_ERROR |
Error while sending transaction notification to OVO |
EXTERNAL_ERROR |
There is an error on the e-wallet provider side |
DANA
Example: Success Payment Callback Payload
{
"external_id": "dana-ewallet",
"amount": 1001,
"business_id": "5850eteStin791bd40096364",
"payment_status": "PAID",
"transaction_date": "2020-03-20T04:54:10+07:00",
"ewallet_type":"DANA",
"callback_authentication_token": "sample-token-id=="
}
Parameter | Type | Description |
---|---|---|
external_id | string |
Your transaction identifier that you specified in on the Generate Checkout URL request. |
amount | number |
The amount of transaction |
business_id | string |
Your business_id that registered on our system. |
payment_status | string |
The status of payment. Notes: The statuses are: EXPIRED and PAID. |
transaction_date | string |
The time that of payment was made |
ewallet_type | string |
The type of ewallet that you specified when creating the payment request. Supported ewallet types: OVO, DANA, LINKAJA |
callback_authentication_token | string |
Your Callback Verfication API Key that you can found on your Xendit Dashboard. You need to verify if this had the same value. |
LINKAJA
Example: Success Payment Callback Payload
{
"external_id": "linkaja-ewallet",
"amount": 300000,
"items": [
{
"id": "123123",
"name": "Phone Case",
"price": 100000,
"quantity": 1
},
{
"id": "345678",
"name": "Powerbank",
"price": 200000,
"quantity": 1
}
],
"status": "SUCCESS_COMPLETED",
"ewallet_type": "LINKAJA",
"callback_authentication_token": "sample-token-id=="
}
Parameter | Type | Description |
---|---|---|
external_id | string |
Your transaction identifier that you specified in on the Generate Checkout URL request. |
amount | number |
The amount of transaction |
items | array of item object |
List of items / products. |
item object | item object |
Details of an item, it should contains: id [string], name [string], price [number], quantity [number] |
status | string |
The status of payment. Notes: The statuses are: FAILED and SUCCESS_COMPLETED |
ewallet_type | string |
The type of ewallet that you specified when creating the payment request. Supported ewallet types: OVO, DANA, LINKAJA |
callback_authentication_token | string |
Your Callback Verfication API Key that you can found on your Xendit Dashboard. You need to verify if this had the same value. |
Shopeepay
{}
Shopeepay payment channel will be available on Xendit's eWallets BETA endpoint.
All our eWallet payment channels will eventually be consolidated under this endpoint. All existing endpoints will continue to be supported and maintained.
Changelog
Version 2020-02-01
New OVO payment flow will process payments asynchronously vs previous synchronous flow.
Version 2019-02-04
Returns a response immediately without any callbacks returned.