NAV undefined
bash php javascript java go python

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.