Introduction
Welcome to Dhasatra API!
Dhasatra API is a RESTful Web Service that uses:
- HTTP requests to
GET
,POST
,PATCH
andDELETE
data. - Standard HTTP status codes response:
2xx: Success
,4xx: Client Error
and5xx: Server Error
. - All responses data in JSON format.
API Base URL
Development Environment : https://api.sandbox-dhasatra.com
Production Environment : https://api.live-dhasatra.com
Successful HTTP Status
2XX Success
Indicates that your request was successful. It means the action was successfully received, understood, accepted and processed.
200 OK
Indicates that your request has succeeded and the requested resource sent in the response.
This response is only for API Endpoints:
- Get Token
- Client Account Balance
- Virtual Account - History
- Fund Transfer - Inquiry
- Fund Transfer - Get Transaction
Example response are explained in detail at each API Endpoint.
201 Created
Indicates that your request has been fulfilled and has resulted in one or more new resources being created.
This response is only for API Endpoint: Virtual Account - Generate.
202 Accepted
Indicates that your request has been received and accepted, but it has not yet been processed or the processing has not been done fully yet.
This response is only for API Endpoint: Fund Transfer - Create Transaction.
204 No Content
Indicates that our services has successfully fulfilled your request and that there is no additional content to send in the response payload body.
This response is only for API Endpoints:
- Virtual Account - Update
- Virtual Account - Delete
- Virtual Account - Payment Notification
- Fund Transfer - Transaction Callback
Example response are explained in detail at each API Endpoints.
Failed HTTP Status
4XX Client Error
Indicates that the request for the resource contains bad syntax or cannot be filled for some other reason, presumably by fault of the client sending the request.
The client SHOULD NOT repeat the request without modifications.
Status 400 - Response
HTTP Status : 400 Bad Request
Content-Type : application/json;charset=UTF-8
Response Body :
{
"invalid_params" :
[
{
"name" : "product"
"reason" : "Cannot be null or empty string('')",
},
{
"name" : "type"
"reason" : "Cannot be null or empty string('')",
},
{
"name" : "amount"
"reason" : "Cannot be null or empty string('')",
}
]
}
400 Bad Request
Indicates our services cannot or will not process the request due to something that is perceived to be a client error (e.g., does not send mandatory parameters).
HTTP Status 400 Bad Request
Header Content-Type : application/json;charset=UTF-8
Body Parameter
Parameter | Sub Parameter | Type | Length | Description |
---|---|---|---|---|
invalid_params [array of objects] |
name | text | unlimited | Name of invalid parameter |
reason | text | unlimited | Description of the cause of the error |
Status 401 - Response
HTTP Status : 401 Unauthorized
Content-Type : application/json;charset=UTF-8
Response Body :
{
"error" : "invalid_token",
"error_description" : "Cannot convert access token to JSON"
}
401 Unauthorized
Indicates that your request has not been applied because it lacks valid authentication credentials for the target resource. This happens if you sends invalid credentials or access tokens.
This response is possibly occur for all API Endpoints.
HTTP Status 401 Unauthorized
Header Content-Type : application/json;charset=UTF-8
Body Parameter
Parameter | Type | Length | Description |
---|---|---|---|
error | text | unlimited | Error from our services |
error_description | text | unlimited | Description of the error |
Status 403 - Response
HTTP Status : 403 Forbidden
Content-Type : text/plain;charset=UTF-8
Response Body : Access is denied
403 Forbidden
Indicates that our services understood the request but refuses to process it. This happens if your public IP address is not in our whitelisted IP.
This error is possibly occur for all API Endpoints.
HTTP Status 403 Forbidden
Header Content-Type : text/plain;charset=UTF-8
Body Parameter: Access is denied
Status 422 - Response ( Example 1 )
HTTP Status : 422 Unprocessable Entity
Content-Type : application/json;charset=UTF-8
Response Body :
{
"error_code" : "CTRAE",
"error_message" : "Client trans reference already exist"
}
Status 422 - Response ( Example 2 )
HTTP Status : 422 Unprocessable Entity
Content-Type : application/json;charset=UTF-8
Response Body :
{
"error_code" : "IFCA",
"error_message" : "Insufficient fund on client account"
}
Status 422 - Response ( Example 3 )
HTTP Status : 422 Unprocessable Entity
Content-Type : application/json;charset=UTF-8
Response Body :
{
"error_code" : "URA",
"error_message" : "Unregistered recipient account"
}
422 Unprocessable Entity
Indicates that our services understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions caused by incorrect parameter value.
This response is possibly occur for all API Endpoints when parameter value is invalid.
HTTP Status 422 Unprocessable Entity
Header Content-Type : application/json;charset=UTF-8
Body Parameter
Parameter | Type | Length | Description |
---|---|---|---|
error_code | string | max (6) |
Error code from our services
possibility values |
error_message | text | unlimited | Message of the error |
5XX Server Error
It means our services failed to fulfill an apparently valid request. We are aware that it is on error or is incapable of processing the request. This might happen on the Dhasatra system side or it could be on our bank partners.
Status 500 - Response
HTTP Status : 500 Internal Server Error
Content-Type : application/json;charset=UTF-8
Response Body :
{
"error_code" : "CCNF",
"error_message" : "Client configuration not found"
}
500 Internal Server Error
Indicates that our services encountered an unexpected condition that prevented it from processing the request (e.g., incorrect client settings on the system or there is a problem with our bank partners).
HTTP Status 500 Internal Server Error
Header Content-Type : application/json;charset=UTF-8
Body Parameter
Parameter | Type | Length | Description |
---|---|---|---|
error_code | string | max (6) |
Error code from our services
possibility values |
error_message | text | unlimited | Message of the error |
Status 503 - Response
HTTP Status : 503 Service Unavailable
Content-Type : application/json;charset=UTF-8
Response Body :
{
"error_code" : "PSD",
"error_message" : "Partner service is down"
}
503 Service Unavailable
Indicates that our services is currently unable to handle the request due to internal error or our bank partners in EOD period (End of Day).
HTTP Status 503 Service Unavailable
Header Content-Type : application/json;charset=UTF-8
Body Parameter
Parameter | Type | Length | Description |
---|---|---|---|
error_code | string | max (6) |
Error code from our services
possibility values |
error_message | text | unlimited | Message of the error |
Status 504 - Response
HTTP Status : 504 Gateway Timeout
Content-Type : application/json;charset=UTF-8
Response Body :
{
"error_code" : "TO",
"error_message" : "Timeout"
}
504 Gateway Timeout
Indicates that our services, did not receive a timely response from our bank partners.
HTTP Status 504 Gateway Timeout
Header Content-Type : application/json;charset=UTF-8
Body Parameter
Parameter | Type | Length | Description |
---|---|---|---|
error_code | string | fixed (2) | Fixed value TO |
error_message | string | fixed (7) | Fixed value Timeout |
Get Token
Dhasatra API uses OAuth 2.0 as authentication and authorization protocol with Client Credentials grant type.
Dhasatra API provided a client id & client secret that is used to get access token. The client secret can be change at any time through Dhasatra dashboard.
Access tokens are needed to make requests to all API endpoints. This token has active period (default 5 minutes) but can be adjusted via Dhasatra dashboard.
Get Token - Request
curl 'https://api.sandbox-dhasatra.com/authorization/v1/token' \
-X POST \
-H 'Authorization: Basic Y2xpZW50XzAwMTpzZWNyZXRfMDAx' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=client_credentials' \
-v
Request
HTTP 1.1
POST
{BASE_URL}/authorization/v1/token
Header Content-Type : application/x-www-form-urlencoded
Header Authorization : Basic <Base64_encoded({client_id}:{client_secret})>
- For example if client_id =
client_001
and client_secret =secret_001
- Authorization : Basic <Base64_encoded(
client_001
:secret_001
)> - Authorization : Basic
Y2xpZW50XzAwMTpzZWNyZXRfMDAx
Body Parameter
Parameter | Description |
---|---|
grant_type | fixed value: 'client_credentials' |
Get Token - Response
HTTP Status : 200 OK
Content-Type : application/json;charset=UTF-8
Response Body :
{
"access_token" : "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsicmVzdGFwaS1jbGllbnRhY2NvdW50IiwicmVzdGFwaS12aXJ0dWFsYWNjb3VudCIsInJlc3RhcGktZnVuZHRyYW5zZmVyIiwiZ2F0ZXdheSJdLCJzY29wZSI6WyJjbGllbnRzIl0sImV4cCI6MTU3OTYyMjA5MCwiY2xpZW50X2lkIjoiY2xpZW50XzAwMSJ9.Liwk7rNslYMJGTRDmlTcYBgn-QWYa6kED3fvEz2-b-e1YMwh9FkuIpMoFUG_7GSCa2j-9egOTrTmaADiUJ4KwQLlhGFs6PiAn4GxXYnDHWLcxEtsfnIfbg3oFX4aYnoyyeWbG6en4onnNLN6D1c2C-MRYXAFcuKMYqb3qBtSkzEwOnKeNRPL6uXJGg6zYe-5FKF1UkLl3Oew0lELzSWd3mj7TnasDqCeeq-GzCVkaUHJwX92AyPaQOTDuCyyLqcNnb1U5uUnOzFXBowONJwacwabRa4ARinyVwpz1hfel5vh2SN5elwA5lyJYfnm_nofjFGoBRnR1ARWI_uwSf5mbA",
"token_type" : "bearer",
"expires_in" : "299",
"scope" : "clients"
}
Successful Response
HTTP Status 200 OK
Header Content-Type : application/json;charset=UTF-8
Body Parameter
Parameter | Type | Length | Description |
---|---|---|---|
access_token | string | fixed (582) | Access token in JWT format for use to access our api resources |
token_type | string | fixed (6) | The type of token, typically just the string bearer |
expires_in | string | - |
The number of seconds that the access token will be valid
default value is 5 minutes (300 seconds) |
scope | string | fixed (7) |
Fixed value clients
permission type to access a resource |
Failed Response
Client Account Balance
Client Account Balance - Request
curl 'https://api.sandbox-dhasatra.com/client-account/v1/9990005678/balance' \
-X GET \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsicmVzdGFwaS1jbGllbnRhY2NvdW50IiwicmVzdGFwaS12aXJ0dWFsYWNjb3VudCIsInJlc3RhcGktZnVuZHRyYW5zZmVyIiwiZ2F0ZXdheSJdLCJzY29wZSI6WyJjbGllbnRzIl0sImV4cCI6MTU3OTYyMjA5MCwiY2xpZW50X2lkIjoiY2xpZW50XzAwMSJ9.Liwk7rNslYMJGTRDmlTcYBgn-QWYa6kED3fvEz2-b-e1YMwh9FkuIpMoFUG_7GSCa2j-9egOTrTmaADiUJ4KwQLlhGFs6PiAn4GxXYnDHWLcxEtsfnIfbg3oFX4aYnoyyeWbG6en4onnNLN6D1c2C-MRYXAFcuKMYqb3qBtSkzEwOnKeNRPL6uXJGg6zYe-5FKF1UkLl3Oew0lELzSWd3mj7TnasDqCeeq-GzCVkaUHJwX92AyPaQOTDuCyyLqcNnb1U5uUnOzFXBowONJwacwabRa4ARinyVwpz1hfel5vh2SN5elwA5lyJYfnm_nofjFGoBRnR1ARWI_uwSf5mbA' \
-v
Request
HTTP 1.1
GET
{BASE_URL}/client-account/v1/{client_account_number}/balance
Header Authorization : Bearer <access_token>
Fill access_token
with value obtained from Get Token API Endpoint.
Path Parameter
Parameter | Type | Length | Description |
---|---|---|---|
client_account_number | string | max (20) | Client account number |
Client Account Balance - Response
HTTP Status : 200 OK
Content-Type : application/json;charset=UTF-8
Response Body :
{
"client_account_balance" : "3567000"
}
Successful Response
HTTP Status 200 OK
Header Content-Type : application/json;charset=UTF-8
Body Parameter
Parameter | Type | Length | Description |
---|---|---|---|
client_account_balance | string | max (15) | Latest client account balance |
Failed Response
Virtual Account
This API enables you to use our virtual account service
Generate VA
This endpoint is used to create new virtual account.
Generate VA - Request
curl 'https://api.sandbox-dhasatra.com/virtual-account/v1' \
-X POST \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsicmVzdGFwaS1jbGllbnRhY2NvdW50IiwicmVzdGFwaS12aXJ0dWFsYWNjb3VudCIsInJlc3RhcGktZnVuZHRyYW5zZmVyIiwiZ2F0ZXdheSJdLCJzY29wZSI6WyJjbGllbnRzIl0sImV4cCI6MTU3OTYyMjA5MCwiY2xpZW50X2lkIjoiY2xpZW50XzAwMSJ9.Liwk7rNslYMJGTRDmlTcYBgn-QWYa6kED3fvEz2-b-e1YMwh9FkuIpMoFUG_7GSCa2j-9egOTrTmaADiUJ4KwQLlhGFs6PiAn4GxXYnDHWLcxEtsfnIfbg3oFX4aYnoyyeWbG6en4onnNLN6D1c2C-MRYXAFcuKMYqb3qBtSkzEwOnKeNRPL6uXJGg6zYe-5FKF1UkLl3Oew0lELzSWd3mj7TnasDqCeeq-GzCVkaUHJwX92AyPaQOTDuCyyLqcNnb1U5uUnOzFXBowONJwacwabRa4ARinyVwpz1hfel5vh2SN5elwA5lyJYfnm_nofjFGoBRnR1ARWI_uwSf5mbA' \
-H 'Content-Type: application/json' \
-v \
-d \
'{
"client_reference" : "trx001",
"type" : "va_closed",
"bank" : "bni",
"total_amount" : "100000",
"expired_in" : "3600",
"client_account_number" : "9990005678",
"merchant" : {
"id" : "001",
"name" : "merchant satu"
},
"customer" : {
"name" : "John Doe",
"email" : "johndue@gmail.com",
"phone" : "081294567787",
"address" : "Jakarta"
}
}'
Request
HTTP 1.1
POST
{BASE_URL}/virtual-account/v1
Header Content-Type : application/json
Header Authorization : Bearer <access_token>
Fill access_token
with value obtained from Get Token API Endpoint.
Body Parameter
Param | Sub Param 1 | Type | Length | Required | Description |
---|---|---|---|---|---|
client_reference | string | max (30) | yes | Unique transaction reference from client, this value must be unique forever | |
type | string | yes |
VA type to be generated. Accepted values:
- va_closed
VA should be paid only one time with exactly same requested amount before it expires. - va_open_min
VA can be paid multiple time with greater than or equal requested amount and still active. - va_open_max
VA can be paid multiple time with less than or equal requested amount and still active. note : not support bank sinarmas
|
||
bank | string | yes |
Bank to be used. Accepted values:
- bni
- bss
- mandiri
- maybank
- permata
- sinarmas
|
||
total_amount | string | max (10) | yes |
VA total amount includes service fee. Minimum total amount IDR 10.000. If requested total_amount below IDR 10.000, error code BMA will be thrown.
|
|
expired_in | string | max (7) | conditional |
VA lifetime in seconds. Mandatory if type is va_closed
note : max value is 15 days "1296000"
|
|
client_account_number | string | max (20) | yes | The client account number that will be used for settlement | |
merchant | id | string | max (10) | conditional | Client's merchant id. Mandatory if client have merchant |
name | string | max (35) | conditional | Client's merchant name. Required if client have merchant | |
customer | name | string | max (35) | yes | Customer name. This parameter will be displayed as va name |
string | max (35) | no | Customer email | ||
phone | string | max (14) | no | Customer phone number | |
address | string | max (100) | no | Customer address |
Generate VA - Response
HTTP Status : 201 Created
Content-Type : application/json;charset=UTF-8
Response Body :
{
"virtual_account_number" : "8432101234567890",
"product" : "BNI VA Closed",
"expired_date_time" : "2019-12-18 18:50:20"
}
Successful Response
HTTP Status 201 Created
Header Content-Type : application/json;charset=UTF-8
Body Parameter
Parameter | Type | Length | Description |
---|---|---|---|
virtual_account_number | string | max (16) | VA number that can be used for payment. |
product | string | max (30) | VA Product Type |
expired_date_time | string | max (19) | VA expired date time. Format : yyyy-MM-dd HH:mm:ss |
Failed Response
Update VA
This endpoint is used to update the amount of existing virtual account.
Update VA - Request
curl 'https://api.sandbox-dhasatra.com/virtual-account/v1/8432101234567890' \
-X PATCH \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsicmVzdGFwaS1jbGllbnRhY2NvdW50IiwicmVzdGFwaS12aXJ0dWFsYWNjb3VudCIsInJlc3RhcGktZnVuZHRyYW5zZmVyIiwiZ2F0ZXdheSJdLCJzY29wZSI6WyJjbGllbnRzIl0sImV4cCI6MTU3OTYyMjA5MCwiY2xpZW50X2lkIjoiY2xpZW50XzAwMSJ9.Liwk7rNslYMJGTRDmlTcYBgn-QWYa6kED3fvEz2-b-e1YMwh9FkuIpMoFUG_7GSCa2j-9egOTrTmaADiUJ4KwQLlhGFs6PiAn4GxXYnDHWLcxEtsfnIfbg3oFX4aYnoyyeWbG6en4onnNLN6D1c2C-MRYXAFcuKMYqb3qBtSkzEwOnKeNRPL6uXJGg6zYe-5FKF1UkLl3Oew0lELzSWd3mj7TnasDqCeeq-GzCVkaUHJwX92AyPaQOTDuCyyLqcNnb1U5uUnOzFXBowONJwacwabRa4ARinyVwpz1hfel5vh2SN5elwA5lyJYfnm_nofjFGoBRnR1ARWI_uwSf5mbA' \
-H 'Content-Type: application/json' \
-v \
-d \
'{
"total_amount" : "20000",
"customer_name" : "John Doe",
"customer_email" : "johndoe@gmail.com",
"customer_phone" : "081295554648",
"expired_in" : "3600",
"client_account_number" : "9990005678",
"active" : true
}'
Request
HTTP 1.1
PATCH
{BASE_URL}/virtual-account/v1/{virtual_account_number}
Header Content-Type : application/json
Header Authorization : Bearer <access_token>
Fill access_token
with value obtained from Get Token API Endpoint.
Query Parameter
Parameter | Type | Length | Required | Description |
---|---|---|---|---|
virtual_account_number | string | max (16) | yes | VA number you want to update |
Body Parameter must be contains at least one parameter
Param | Type | Length | Mandatory | Description |
---|---|---|---|---|
total_amount | string | max (10) | no | VA total amount includes service fee. Minimum total amount IDR 10.000. If requested total_amount below IDR 10.000, error code BMA will be thrown. |
customer_name | string | max (35) | no | Customer name. This parameter will be displayed as va name |
customer_email | string | max (35) | no | Customer email |
customer_phone | string | max (14) | no | Customer phone number |
expired_in | string | max (13) | no | VA lifetime in seconds. Only applies to type va_closed |
client_account_number | string | max (20) | no | The client account number that will be used for settlement |
active | boolean | conditional | This parameter is not mandatory. Only can be applies for va type :
-va_open_min
-va_open_max .
Accepted values:
-true : to enable va
-false : to temporary disable va
|
Update VA - Response
HTTP Status : 204 No Content
Content-Type : application/json;charset=UTF-8
Successful Response
HTTP Status 204 No Content
Failed Response
Delete VA
This endpoint is used to delete existing virtual account.
Delete VA - Request
curl 'https://api.sandbox-dhasatra.com/virtual-account/v1/8432101234567890' \
-X DELETE \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsicmVzdGFwaS1jbGllbnRhY2NvdW50IiwicmVzdGFwaS12aXJ0dWFsYWNjb3VudCIsInJlc3RhcGktZnVuZHRyYW5zZmVyIiwiZ2F0ZXdheSJdLCJzY29wZSI6WyJjbGllbnRzIl0sImV4cCI6MTU3OTYyMjA5MCwiY2xpZW50X2lkIjoiY2xpZW50XzAwMSJ9.Liwk7rNslYMJGTRDmlTcYBgn-QWYa6kED3fvEz2-b-e1YMwh9FkuIpMoFUG_7GSCa2j-9egOTrTmaADiUJ4KwQLlhGFs6PiAn4GxXYnDHWLcxEtsfnIfbg3oFX4aYnoyyeWbG6en4onnNLN6D1c2C-MRYXAFcuKMYqb3qBtSkzEwOnKeNRPL6uXJGg6zYe-5FKF1UkLl3Oew0lELzSWd3mj7TnasDqCeeq-GzCVkaUHJwX92AyPaQOTDuCyyLqcNnb1U5uUnOzFXBowONJwacwabRa4ARinyVwpz1hfel5vh2SN5elwA5lyJYfnm_nofjFGoBRnR1ARWI_uwSf5mbA' \
-v
Request
HTTP 1.1
DELETE
{BASE_URL}/virtual-account/v1/{virtual_account_number}
Header Authorization : Bearer <access_token>
Fill access_token
with value obtained from Get Token API Endpoint.
Path Parameter
Field | Type | Length | Required | Description |
---|---|---|---|---|
virtual_account_number | string | max (16) | yes | VA number you want to delete |
Delete VA - Response
HTTP Status : 204 No Content
Content-Type : application/json;charset=UTF-8
Successful Response
HTTP Status 204 No Content
Failed Response
Payment History
This endpoint is used to get payment history of va
Payment History - Request
curl 'https://api.sandbox-dhasatra.com/virtual-account/v1/8432101234567890/payment-history' \
-X GET \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsicmVzdGFwaS1jbGllbnRhY2NvdW50IiwicmVzdGFwaS12aXJ0dWFsYWNjb3VudCIsInJlc3RhcGktZnVuZHRyYW5zZmVyIiwiZ2F0ZXdheSJdLCJzY29wZSI6WyJjbGllbnRzIl0sImV4cCI6MTU3OTYyMjA5MCwiY2xpZW50X2lkIjoiY2xpZW50XzAwMSJ9.Liwk7rNslYMJGTRDmlTcYBgn-QWYa6kED3fvEz2-b-e1YMwh9FkuIpMoFUG_7GSCa2j-9egOTrTmaADiUJ4KwQLlhGFs6PiAn4GxXYnDHWLcxEtsfnIfbg3oFX4aYnoyyeWbG6en4onnNLN6D1c2C-MRYXAFcuKMYqb3qBtSkzEwOnKeNRPL6uXJGg6zYe-5FKF1UkLl3Oew0lELzSWd3mj7TnasDqCeeq-GzCVkaUHJwX92AyPaQOTDuCyyLqcNnb1U5uUnOzFXBowONJwacwabRa4ARinyVwpz1hfel5vh2SN5elwA5lyJYfnm_nofjFGoBRnR1ARWI_uwSf5mbA' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-v
Request
HTTP 1.1
GET
{BASE_URL}/virtual-account/v1/{virtual_account_number}/payment-history
Header Authorization : Bearer <access_token>
Fill access_token
with value obtained from Get Token API Endpoint.
Path Parameter
Parameter | Type | Length | Required | Description |
---|---|---|---|---|
virtual_account_number | string | max (16) | yes | VA number you want to update |
Payment History - Response
HTTP Status : 200 OK
Content-Type : application/json;charset=UTF-8
Response Body :
{
"payment_history" : [
{
"payment_id" : "1026",
"client_account_number" : "9990005678",
"client_reference" : "trx001",
"total_amount" : "180000",
"charge_amount" : "4000",
"settlement_amount" : "176000",
"trans_date_time" : "2019-12-09 15:28:57"
},
{
"payment_id" : "1027",
"client_account_number" : "9990005678",
"client_reference" : "trx001",
"total_amount" : "290000",
"charge_amount" : "4000",
"settlement_amount" : "286000",
"trans_date_time" : "2019-12-09 20:39:48"
}
]
}
Successful Response
HTTP Status 200 OK
Header Content-Type : application/json;charset=UTF-8
Body Parameter
Param | Sub Param 1 | Type | Length | Description |
---|---|---|---|---|
payment_history[object array] | payment_id | string | max (10) | Transaction id |
client_account_number | string | max (20) | The client account number that will be used for settlement | |
client_reference | string | max (20) | Unique transaction reference from client, this value must be unique forever | |
total_amount | string | max (10) | VA paid amount | |
charge_amount | string | max (10) | VA service fee | |
settlement_amount | string | max (10) | Amount we will settle to the client | |
trans_date_time | string | max (19) | VA transaction datetime Format : yyyy-MM-dd HH:mm:ss |
Failed Response
Payment Notification
This is to notify client when va payment already success (DHASATRA System to Client)
Payment Notification - Request
curl 'https://api.client-001.com/callback/virtual-account' \
-X POST \
-H 'Content-Type: application/json' \
-v \
-d \
'{
"virtual_account_number" : "8432101234567890",
"payment_id" : "129832",
"client_account_number" : "9990005678",
"client_reference" : "trx001",
"total_amount" : "180000",
"charge_amount" : "4000",
"settlement_amount" : "176000",
"trans_date_time" : "2019-12-09 15:28:57",
"secure_code" : "f43f3135c0e6525a523974b30e77f8031323c7a19f4366e093ddc80c66a645ed"
}'
Request
HTTP 1.1
POST
{CLIENT_CALLBACK_URL}
Header Content-Type : application/json
Body Parameter
Parameter | Type | Length | Required | Description |
---|---|---|---|---|
virtual_account_number | string | max (16) | yes | VA number that has been paid |
payment_id | string | max (10) | yes | Transaction id |
client_account_number | string | max (20) | yes | The client account number that will be used for settlement |
client_reference | string | max (20) | Unique transaction reference from client, this value must be unique forever | |
total_amount | string | max (10) | yes | VA paid amount |
charge_amount | string | max (10) | yes | VA service fee |
settlement_amount | string | max (10) | yes | Amount we will settle to the client |
trans_date_time | string | max (19) | yes | VA transaction datetime Format : yyyy-MM-dd HH:mm:ss |
secure_code | string | max (255) | yes |
Secure code comes from a combination of several data. See
secure code generation detail.
Do not accept payment if the secure code is incorrect! |
Secure Code Generation for Payment Notification
secure_code : SHA3-256 (payment_id + trans_date_time + shared_key)
Example :
payment_id | : | 129832 |
trans_date_time | : | 2019-12-09 15:28:57 |
shared_key | : | dPnDhAdiwdSentOt9927c1bRng53kd1a |
Plain Text : 1298322019-12-09 15:28:57dPnDhAdiwdSentOt9927c1bRng53kd1a |
secure_code : f43f3135c0e6525a523974b30e77f8031323c7a19f4366e093ddc80c66a645ed |
Payment Notification - Response
HTTP Status : 204 No Content
Successful Response
HTTP Status 204 No Content
Qris
This API enables you to use our qris service
Generate Qris
This endpoint is used to create new qris.
Generate Qr - Request
curl 'https://api.sandbox-dhasatra.com/qris/v1' \
-X POST \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsicmVzdGFwaS1jbGllbnRhY2NvdW50IiwicmVzdGFwaS12aXJ0dWFsYWNjb3VudCIsInJlc3RhcGktZnVuZHRyYW5zZmVyIiwiZ2F0ZXdheSJdLCJzY29wZSI6WyJjbGllbnRzIl0sImV4cCI6MTU3OTYyMjA5MCwiY2xpZW50X2lkIjoiY2xpZW50XzAwMSJ9.Liwk7rNslYMJGTRDmlTcYBgn-QWYa6kED3fvEz2-b-e1YMwh9FkuIpMoFUG_7GSCa2j-9egOTrTmaADiUJ4KwQLlhGFs6PiAn4GxXYnDHWLcxEtsfnIfbg3oFX4aYnoyyeWbG6en4onnNLN6D1c2C-MRYXAFcuKMYqb3qBtSkzEwOnKeNRPL6uXJGg6zYe-5FKF1UkLl3Oew0lELzSWd3mj7TnasDqCeeq-GzCVkaUHJwX92AyPaQOTDuCyyLqcNnb1U5uUnOzFXBowONJwacwabRa4ARinyVwpz1hfel5vh2SN5elwA5lyJYfnm_nofjFGoBRnR1ARWI_uwSf5mbA' \
-H 'Content-Type: application/json' \
-v \
-d \
'{
"client_account_number" : "9990005678",
"client_reference" : "trx001",
"type" : "qris_closed",
"item" : [],
"total_amount" : "100000",
"expired_in" : "3600",
"merchant" : {
"id" : "001",
"name" : "merchant satu"
},
"customer" : {
"name" : "John Doe",
"email" : "johndoe@gmail.com",
"phone" : "08124657887",
"address" : "Jakarta"
}
}'
Request
HTTP 1.1
POST
{BASE_URL}/qris/v1
Header Content-Type : application/json
Header Authorization : Bearer <access_token>
Fill access_token
with value obtained from Get Token API Endpoint.
Body Parameter
Param | Sub Param 1 | Type | Length | Required | Description |
---|---|---|---|---|---|
client_account_number | string | max (20) | yes | The client account number that will be used for settlement | |
client_reference | string | max (30) | yes | Unique transaction reference from client, this value must be unique forever | |
type | string | yes |
Qr type to be generated. Accepted values:
- qris_closed
Qr should be paid only one time with exactly same requested amount before it expires. - qris_open
Qr can be paid multiple time with greater than or equal requested amount and still active. |
||
item[object array] | name | string | max (35) | conditional | Item name |
qty | string | max (5) | conditional | qty item | |
unit_price | string | max (10) | conditional | unit price item | |
remark | string | max (100) | conditional | remark | |
total_amount | string | max (10) | yes |
Qr total amount includes service fee. Minimum total amount IDR 10.000. If requested total_amount below IDR 10.000, error code BMA will be thrown.
|
|
expired_in | string | max (7) | conditional |
Qr lifetime in seconds. Mandatory if type is qris_closed
note : max value is 1 days "86400"
|
|
merchant | id | string | max (10) | conditional | Client's merchant id. Mandatory if client have merchant |
name | string | max (35) | conditional | Client's merchant name. Required if client have merchant | |
customer | name | string | max (35) | yes | Customer name |
string | max (35) | no | Customer email | ||
phone | string | max (14) | no | Customer phone number | |
address | string | max (100) | no | Customer address |
Generate Qr - Response
HTTP Status : 201 Created
Content-Type : application/json;charset=UTF-8
Response Body :
{
"client_reference" : "trx001",
"qris_reff_code" : "trx001",
"product" : "Qris Closed",
"expired_date_time" : "2019-12-18 18:50:20",
"data_qr" : "00020101021226730021COM.GUDANGVOUCHER.WWW011893600916300252210202151061211011000010303UME51450015ID.OR.GPNQR.WWW02151061211011000010303UME5204481653033605405200005802ID5907StarPay6015JAKARTA SELATAN610512940624101091037559130517211222104138Gv98e0703A016304A6DF"
}
Successful Response
HTTP Status 201 Created
Header Content-Type : application/json;charset=UTF-8
Body Parameter
Parameter | Type | Length | Description |
---|---|---|---|
client_reference | string | max (30) | Unique transaction reference from client, this value must be unique forever. |
product | string | max (30) | Qr Product Type |
expired_date_time | string | max (19) | Qr expired date time. Format : yyyy-MM-dd HH:mm:ss |
data_qr | string | text | data qr |
Failed Response
Payment History
This endpoint is used to get payment history of qris
Payment History - Request
curl 'https://api.sandbox-dhasatra.com/qris/v1/trx001/payment-history' \
-X GET \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsicmVzdGFwaS1jbGllbnRhY2NvdW50IiwicmVzdGFwaS12aXJ0dWFsYWNjb3VudCIsInJlc3RhcGktZnVuZHRyYW5zZmVyIiwiZ2F0ZXdheSJdLCJzY29wZSI6WyJjbGllbnRzIl0sImV4cCI6MTU3OTYyMjA5MCwiY2xpZW50X2lkIjoiY2xpZW50XzAwMSJ9.Liwk7rNslYMJGTRDmlTcYBgn-QWYa6kED3fvEz2-b-e1YMwh9FkuIpMoFUG_7GSCa2j-9egOTrTmaADiUJ4KwQLlhGFs6PiAn4GxXYnDHWLcxEtsfnIfbg3oFX4aYnoyyeWbG6en4onnNLN6D1c2C-MRYXAFcuKMYqb3qBtSkzEwOnKeNRPL6uXJGg6zYe-5FKF1UkLl3Oew0lELzSWd3mj7TnasDqCeeq-GzCVkaUHJwX92AyPaQOTDuCyyLqcNnb1U5uUnOzFXBowONJwacwabRa4ARinyVwpz1hfel5vh2SN5elwA5lyJYfnm_nofjFGoBRnR1ARWI_uwSf5mbA' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-v
Request
HTTP 1.1
GET
{BASE_URL}/qris/v1/{client_reference}/payment-history
Header Authorization : Bearer <access_token>
Fill access_token
with value obtained from Get Token API Endpoint.
Path Parameter
Parameter | Type | Length | Required | Description |
---|---|---|---|---|
client_reference | string | max (16) | yes | Client reference Qr you want to update |
Payment History - Response
HTTP Status : 200 OK
Content-Type : application/json;charset=UTF-8
Response Body :
{
"payment_history" : [
{
"payment_id" : "1026",
"client_account_number" : "9990005678",
"client_reference" : "trx001",
"total_amount" : "180000",
"charge_amount" : "4000",
"settlement_amount" : "176000",
"trans_date_time" : "2019-12-09 15:28:57"
},
{
"payment_id" : "1027",
"client_account_number" : "9990005678",
"client_reference" : "trx001",
"total_amount" : "290000",
"charge_amount" : "4000",
"settlement_amount" : "286000",
"trans_date_time" : "2019-12-09 20:39:48"
}
]
}
Successful Response
HTTP Status 200 OK
Header Content-Type : application/json;charset=UTF-8
Body Parameter
Param | Sub Param 1 | Type | Length | Description |
---|---|---|---|---|
payment_history[object array] | payment_id | string | max (10) | Transaction id |
client_account_number | string | max (20) | The client account number that will be used for settlement | |
client_reference | string | max (20) | Unique transaction reference from client, this value must be unique forever | |
total_amount | string | max (10) | Qr paid amount | |
charge_amount | string | max (10) | Qr service fee | |
settlement_amount | string | max (10) | Amount we will settle to the client | |
trans_date_time | string | max (19) | Qr transaction datetime Format : yyyy-MM-dd HH:mm:ss |
Failed Response
Payment Notification
This is to notify client when qris payment already success (DHASATRA System to Client)
Payment Notification - Request
curl 'https://api.client-001.com/callback/qris' \
-X POST \
-H 'Content-Type: application/json' \
-v \
-d \
'{
"payment_id" : "129832",
"client_account_number" : "9990005678",
"client_reference" : "trx001",
"total_amount" : "100000",
"charge_amount" : "4000",
"settlement_amount" : "96000",
"trans_date_time" : "2019-12-09 15:28:57",
"secure_code" : "f43f3135c0e6525a523974b30e77f8031323c7a19f4366e093ddc80c66a645ed"
}'
Request
HTTP 1.1
POST
{CLIENT_CALLBACK_URL}
Header Content-Type : application/json
Body Parameter
Parameter | Type | Length | Required | Description |
---|---|---|---|---|
payment_id | string | max (10) | yes | Transaction id |
client_account_number | string | max (20) | yes | The client account number that will be used for settlement |
client_reference | string | max (20) | Unique transaction reference from client, this value must be unique forever | |
total_amount | string | max (10) | yes | Qr paid amount |
charge_amount | string | max (10) | yes | Qr service fee |
settlement_amount | string | max (10) | yes | Amount we will settle to the client |
trans_date_time | string | max (19) | yes | Qr transaction datetime Format : yyyy-MM-dd HH:mm:ss |
secure_code | string | max (255) | yes |
Secure code comes from a combination of several data. See
secure code generation detail.
Do not accept payment if the secure code is incorrect! |
Secure Code Generation for Payment Notification
secure_code : SHA3-256 (payment_id + trans_date_time + shared_key)
Example :
payment_id | : | 129832 |
trans_date_time | : | 2019-12-09 15:28:57 |
shared_key | : | dPnDhAdiwdSentOt9927c1bRng53kd1a |
Plain Text : 1298322019-12-09 15:28:57dPnDhAdiwdSentOt9927c1bRng53kd1a |
secure_code : f43f3135c0e6525a523974b30e77f8031323c7a19f4366e093ddc80c66a645ed |
Payment Notification - Response
HTTP Status : 204 No Content
Successful Response
HTTP Status 204 No Content
Fund Transfer
Inquiry
This API endpoint purpose is to checking and validating the destination account owner
Inquiry - Request
curl 'https://api.sandbox-dhasatra.com/fund-transfer/v1/inquiry' \
-X POST \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsicmVzdGFwaS1jbGllbnRhY2NvdW50IiwicmVzdGFwaS12aXJ0dWFsYWNjb3VudCIsInJlc3RhcGktZnVuZHRyYW5zZmVyIiwiZ2F0ZXdheSJdLCJzY29wZSI6WyJjbGllbnRzIl0sImV4cCI6MTU3OTYyMjA5MCwiY2xpZW50X2lkIjoiY2xpZW50XzAwMSJ9.Liwk7rNslYMJGTRDmlTcYBgn-QWYa6kED3fvEz2-b-e1YMwh9FkuIpMoFUG_7GSCa2j-9egOTrTmaADiUJ4KwQLlhGFs6PiAn4GxXYnDHWLcxEtsfnIfbg3oFX4aYnoyyeWbG6en4onnNLN6D1c2C-MRYXAFcuKMYqb3qBtSkzEwOnKeNRPL6uXJGg6zYe-5FKF1UkLl3Oew0lELzSWd3mj7TnasDqCeeq-GzCVkaUHJwX92AyPaQOTDuCyyLqcNnb1U5uUnOzFXBowONJwacwabRa4ARinyVwpz1hfel5vh2SN5elwA5lyJYfnm_nofjFGoBRnR1ARWI_uwSf5mbA' \
-H 'Content-Type: application/json' \
-v \
-d \
'{
"client_account_number" : "9990005678",
"product" : "disb",
"type" : "online",
"recipient_bank_code" : "014",
"recipient_account_number" : "12345678",
"amount" : "15000"
}'
Request
HTTP 1.1
POST
{BASE_URL}/fund-transfer/v1/inquiry
Header Content-Type : application/json
Header Authorization : Bearer <access_token>
Fill access_token
with value obtained from Get Token API Endpoint.
Body Parameter
Parameter | Type | Length | Description |
---|---|---|---|
client_account_number | string | max (20) | Client account number provided by Dhasatra |
product | string | max (5) |
Possibility values:
disb for disbursement
remit for remittance
|
type | string | max (6) |
Possibility values:
online for range amount between 10,000 - 100,000,000
skn for range amount between 100,000,001 - 1,000,000,000
rtgs for range amount between 100,000,001 - 9,999,999,999
|
recipient_bank_code | string | max (4) |
Destination bank code to retrieve account name information
possibility values |
recipient_account_number | string | max (20) | Destination account number. Only valid for numeric (0 - 9). |
amount | string | max (15) | The fund transfer amount that will be validate with the current client account balance |
Inquiry - Response
HTTP Status : 200 OK
Content-Type : application/json;charset=UTF-8
Response Body :
{
"recipient_account_name" : "John Doe"
}
Successful Response
HTTP Status 200 OK
Header Content-Type : application/json;charset=UTF-8
Body Parameter
Parameter | Type | Length | Description |
---|---|---|---|
recipient_account_name | string | max (100) | Name of destination account owner |
Failed Response
Create Transaction
Create Transaction - Request
curl 'https://api.sandbox-dhasatra.com/fund-transfer/v1' \
-X POST \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsicmVzdGFwaS1jbGllbnRhY2NvdW50IiwicmVzdGFwaS12aXJ0dWFsYWNjb3VudCIsInJlc3RhcGktZnVuZHRyYW5zZmVyIiwiZ2F0ZXdheSJdLCJzY29wZSI6WyJjbGllbnRzIl0sImV4cCI6MTU3OTYyMjA5MCwiY2xpZW50X2lkIjoiY2xpZW50XzAwMSJ9.Liwk7rNslYMJGTRDmlTcYBgn-QWYa6kED3fvEz2-b-e1YMwh9FkuIpMoFUG_7GSCa2j-9egOTrTmaADiUJ4KwQLlhGFs6PiAn4GxXYnDHWLcxEtsfnIfbg3oFX4aYnoyyeWbG6en4onnNLN6D1c2C-MRYXAFcuKMYqb3qBtSkzEwOnKeNRPL6uXJGg6zYe-5FKF1UkLl3Oew0lELzSWd3mj7TnasDqCeeq-GzCVkaUHJwX92AyPaQOTDuCyyLqcNnb1U5uUnOzFXBowONJwacwabRa4ARinyVwpz1hfel5vh2SN5elwA5lyJYfnm_nofjFGoBRnR1ARWI_uwSf5mbA' \
-H 'Content-Type: application/json' \
-v \
-d \
'{
"client_account_number" : "9990005678",
"client_trans_reference" : "123424",
"product" : "disb",
"type" : "online",
"amount" : "100000",
"remark" : "tes disbursement online",
"nm_threshold" : 30,
"sender" : {
"name" : "John Doe",
"country_code" : "IDN",
"identity" : {
"type" : "ID Card Number",
"number" : "70113335678"
},
"birth" : {
"place" : "Purworejo",
"date" : "2000-04-21"
},
"address" : "Jln Puuurwoorejooo",
"cityregency_code" : "3173",
"phone_number" : "081273658217"
},
"recipient" : {
"bank_code" : "014",
"account_number" : "4663918475",
"account_name" : "Septian",
"identity" : {
"type" : "ID Card Number",
"number" : "502288827465"
},
"birth" : {
"place" : "Jakarta",
"date" : "2004-12-08"
},
"address" : "Jln Mawar No 77",
"cityregency_code" : "5022",
"phone_number" : "0811999385726"
}
}'
Request
HTTP 1.1
POST
{BASE_URL}/fund-transfer/v1
Header Content-Type : application/json
Header Authorization : Bearer <access_token>
Fill access_token
with value obtained from Get Token API Endpoint.
Body Parameter
Param | Sub Param 1 | Sub Param 2 | Type | Length | Required | Description |
---|---|---|---|---|---|---|
client_account_number | string | max (20) | yes | Client account number | ||
client_trans_reference | string | max (20) | yes | Unique transaction reference from client, this value must be unique forever | ||
product | string | max (5) | yes |
Possibility values:
disb for disbursement
remit for remittance
|
||
type | string | max (6) | yes |
Possibility values:
online for range amount between 10,000 - 100,000,000
skn for range amount between 100,000,001 - 1,000,000,000
Service Hours: Working Days (Monday-Friday) 08:00-15:00 WIB (GMT+7) rtgs for range amount between 100,000,001 - 9,999,999,999
Service Hours: Working Days (Monday-Friday) 08:00-15:00 WIB (GMT+7) |
||
allow_next_workingday | boolean | true or false | no |
Default true
Additional parameter if type are skn or rtgs,
true mean if the request is received out of service hours, the transaction will be transacted on the next working day,
otherwise if false then the transaction will be rejected
|
||
amount | string | max (12) | yes | Fund transfer amount | ||
remark | string | max (30) | yes | Transaction description for recipient | ||
nm_threshold | integer | max value (100) | no | Recipient name matching threshold. Value in percentage(%) between 0 - 100. Submit zero value will ignore name matching filter. If this param is null / not filled / not submitted, then threshold value follow the setting in the client configuration (default setting is 30%, adjustable in our web dashboard) | ||
sender | object | - | conditional |
Mandatory if product value are remit
|
||
name | string | 35 | conditional |
Mandatory if product value are remit
|
||
country_code | string | 3 | conditional |
Mandatory if product value are remit
possibility values |
||
identity | object | - | no | Fill if available | ||
type | string | max (30) | no |
Fill if available
Possibility values: ID Card Number
Passport Number
Driving License
Tax Number
Others
|
||
number | string | max (30) | no | Fill if available | ||
birth | object | - | no | Fill if available | ||
place | string | max (50) | no | Fill if available | ||
date | string | max (10) | no | Fill if available | ||
address | string | max (100) | no | Fill if available | ||
cityregency_code | string | 35 | no |
Fill if available
possibility values |
||
phone_number | string | max (20) | no | Sender phone number. Fill if available | ||
recipient | object | - | yes | Key parameters for the transaction | ||
bank_code | string | max (4) | yes |
Recipient bank code
possibility values |
||
account_number | string | max (20) | yes | Recipient account number. Only valid for numeric (0 - 9). | ||
account_name | string | max (100) | yes | Recipient account name | ||
identity | object | - | no | Fill if available | ||
type | string | max (30) | no |
Fill if available
possibility values: ID Card Number
Passport Number
Driving License
Tax Number
Others
|
||
number | string | max (30) | no | Fill if available | ||
birth | object | - | no | Fill if available | ||
place | string | max (50) | no | Fill if available | ||
date | string | max (10) | no | Fill if available | ||
address | string | max (100) | no | Fill if available | ||
cityregency_code | string | max (4) | conditional |
Mandatory if product value are remit
possibility values |
||
phone_number | string | max (20) | no | Recipient phone number. Fill if available |
Create Transaction - Response
HTTP Status : 202 Accepted
Content-Type : application/json;charset=UTF-8
Response Body :
{
"transaction_id" : 1257,
"client_account_number" : "9990005678",
"client_trans_reference" : "123424",
"date_time" : "2020-01-20 01:32:25",
"product" : "Disbursement Online",
"recipient_bank_code" : "014",
"recipient_bank_name" : "Bank Central Asia (BCA)",
"recipient_account_number" : "4663918475",
"recipient_account_name" : "Septian",
"amount" : "100000",
"charge_amount" : "10000",
"status" : "pending"
}
Successful Response
HTTP Status 202 Accepted
Header Content-Type : application/json;charset=UTF-8
Body Parameter
Parameter | Type | Length | Description |
---|---|---|---|
transaction_id | integer | max (18 digit) | Unique transaction id |
client_account_number | string | max (20) | Client account number |
client_trans_reference | string | max (20) | Unique transaction reference from client |
date_time | string | fixed (19) | The time the transaction was made |
product | string | max (20) | Product type of fund transfer |
recipient_bank_code | string | max (4) | Recipient bank code |
recipient_bank_name | string | max (100) | Recipient bank name |
recipient_account_number | string | max (20) | Recipient account number |
recipient_account_name | string | max (100) | Recipient account name |
amount | string | max (12) | Fund transfer amount |
charge_amount | string | max (12) | Transaction charge amount |
status | string | max (9) |
fixed value: pending
|
Failed Response
Get Transaction
Get Transaction - Request
curl 'https://api.sandbox-dhasatra.com/fund-transfer/v1/client-trans-reference/123424' \
-X GET \
-H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsicmVzdGFwaS1jbGllbnRhY2NvdW50IiwicmVzdGFwaS12aXJ0dWFsYWNjb3VudCIsInJlc3RhcGktZnVuZHRyYW5zZmVyIiwiZ2F0ZXdheSJdLCJzY29wZSI6WyJjbGllbnRzIl0sImV4cCI6MTU3OTYyMjA5MCwiY2xpZW50X2lkIjoiY2xpZW50XzAwMSJ9.Liwk7rNslYMJGTRDmlTcYBgn-QWYa6kED3fvEz2-b-e1YMwh9FkuIpMoFUG_7GSCa2j-9egOTrTmaADiUJ4KwQLlhGFs6PiAn4GxXYnDHWLcxEtsfnIfbg3oFX4aYnoyyeWbG6en4onnNLN6D1c2C-MRYXAFcuKMYqb3qBtSkzEwOnKeNRPL6uXJGg6zYe-5FKF1UkLl3Oew0lELzSWd3mj7TnasDqCeeq-GzCVkaUHJwX92AyPaQOTDuCyyLqcNnb1U5uUnOzFXBowONJwacwabRa4ARinyVwpz1hfel5vh2SN5elwA5lyJYfnm_nofjFGoBRnR1ARWI_uwSf5mbA' \
-v
Request
HTTP 1.1
GET
{BASE_URL}/fund-transfer/v1/client-trans-reference/{client_trans_reference}
Header Authorization : Bearer <access_token>
Fill access_token
with value obtained from Get Token API Endpoint.
Path Parameter
Parameter | Type | Length | Description |
---|---|---|---|
client_trans_reference | string | max (20) | unique transaction reference from client when create transaction |
Get Transaction - Response [success]
HTTP Status : 200 OK
Content-Type : application/json;charset=UTF-8
Response Body :
{
"transaction_id" : 1257,
"client_account_number" : "9990005678",
"client_trans_reference" : "123424",
"date_time" : "2020-01-20 01:32:25",
"product" : "Disbursement Online",
"recipient_bank_code" : "014",
"recipient_bank_name" : "Bank Central Asia (BCA)",
"recipient_account_number" : "4663918475",
"recipient_account_name" : "Septian",
"amount" : "100000",
"charge_amount" : "9000",
"status" : "success"
}
Get Transaction - Response [failed]
HTTP Status : 200 OK
Content-Type : application/json;charset=UTF-8
Response Body :
{
"transaction_id" : 1257,
"client_account_number" : "9990005678",
"client_trans_reference" : "123424",
"date_time" : "2020-01-20 01:32:25",
"product" : "Disbursement Online",
"recipient_bank_code" : "014",
"recipient_bank_name" : "Bank Central Asia (BCA)",
"recipient_account_number" : "4663918475",
"recipient_account_name" : "Septian",
"amount" : "100000",
"charge_amount" : "9000",
"status" : "failed"
"failed_code" : "IRA"
"failed_message" : "Inactive Recipient Account"
}
Successful Response
HTTP Status 200 OK
Header Content-Type : application/json;charset=UTF-8
Body Parameter
Parameter | Type | Length | Description |
---|---|---|---|
transaction_id | integer | max (18 digit) | Unique transaction id |
client_account_number | string | max (20) | Client account number |
client_trans_reference | string | max (20) | Unique transaction reference from client |
date_time | string | fixed (19) | The time the transaction was made |
product | string | max (20) | Product type of fund transfer |
recipient_bank_code | string | max (4) | Recipient bank code |
recipient_bank_name | string | max (100) | Recipient bank name |
recipient_account_number | string | max (20) | Recipient account number |
recipient_account_name | string | max (100) | Recipient account name |
amount | string | max (12) | Fund transfer amount |
charge_amount | string | max (12) | Transaction charge amount |
status | string | max (9) |
Current status of transaction
Possibility values are: pending
onprocess
success
force_credit (Timeout transaction between our bank partner and recipient bank. Transaction is considered successful with force credit to the recipient bank in the next working day)
failed
suspect
|
failed_code | string | max (6) |
Transaction status failed code
Only appear if status value are failed
|
failed_message | text | unlimited |
Transaction status failed message
Only appear if status value are failed
|
Failed Response
Transaction Callback
Transaction Callback - Request [success]
curl 'https://api.client-001.com/callback/fund-transfer' \
-X POST \
-H 'Content-Type: application/json' \
-v \
-d \
'{
"transaction_id" : 1257,
"date_time" : "2020-01-20 01:32:25",
"product" : "Disbursement Online",
"client_account_number" : "9990005678",
"client_trans_reference" : "123424",
"recipient_bank_code" : "014",
"recipient_bank_name" : "Bank Central Asia (BCA)",
"recipient_account_number" : "4663918475",
"recipient_account_name" : "Septian",
"amount" : "100000",
"charge_amount" : "9000",
"status" : "success",
"security_code" : "b0ef662e2130560f2d02768a78c0df10c821a8ecc3da1cf1078050beb3b9d87a"
}'
Transaction Callback - Request [failed]
curl 'https://api.client-001.com/callback/fund-transfer' \
-X POST \
-H 'Content-Type: application/json' \
-v \
-d \
'{
"transaction_id" : 1257,
"date_time" : "2020-01-20 01:32:25",
"product" : "Disbursement Online",
"client_account_number" : "9990005678",
"client_trans_reference" : "123424",
"recipient_bank_code" : "014",
"recipient_bank_name" : "Bank Central Asia (BCA)",
"recipient_account_number" : "4663918475",
"recipient_account_name" : "Septian",
"amount" : "100000",
"charge_amount" : "9000",
"status" : "failed",
"failed_code" : "BRA"
"failed_message" : "Blocked Recipient Account"
"security_code" : "b0ef662e2130560f2d02768a78c0df10c821a8ecc3da1cf1078050beb3b9d87a"
}'
Request
HTTP 1.1
POST
{CLIENT_CALLBACK_URL}
Header Content-Type : application/json
Body Parameter
Parameter Type : Request Body Parameters
Header : Content-Type : application/json
Path Parameter | Type | Length | Description |
---|---|---|---|
transaction_id | integer | max (18 digit) | Unique transaction id |
date_time | string | fixed (19) | The time the transaction was made |
product | string | max (20) | Product type of fund transfer |
client_account_number | string | max (20) | Client account number |
client_trans_reference | string | max (20) | Unique transaction reference from client |
recipient_bank_code | string | max (4) | Recipient bank code |
recipient_bank_name | string | max (100) | Recipient bank name |
recipient_account_number | string | max (20) | Recipient account number |
recipient_account_name | string | max (100) | Recipient account name |
amount | string | max (12) | Fund transfer amount |
charge_amount | string | max (12) | Transaction charge amount |
status | string | max (9) |
Current status of transaction
Possibility values are: success
force_credit (Timeout transaction between our bank partner and recipient bank. Transaction is considered successful with force credit to the recipient bank in the next working day)
failed
suspect
|
failed_code | string | max (6) |
Transaction status failed code
Only appear if status value are failed
|
failed_message | text | unlimited |
Transaction status failed message
Only appear if status value are failed
|
security_code | string | 255 | Secure code comes from a combination of several data. See secure code generation detail.
Do not accept transaction callback if the secure code is incorrect! |
Secure Code Generation for Transaction Callback
security_code : SHA3-256 (client_trans_reference + shared_key + transaction_id)
Example :
client_trans_reference | : | 123424 |
shared_key | : | dPnDhAdiwdSentOt9927c1bRng53kd1a |
transaction_id | : | 1257 |
Plain Text : 123424dPnDhAdiwdSentOt9927c1bRng53kd1a1257 |
security_code : b0ef662e2130560f2d02768a78c0df10c821a8ecc3da1cf1078050beb3b9d87a |
Transaction Callback - Response
HTTP Status : 204 No Content
Successful Response
HTTP Status 204 No Content
List of Banks
Bank Name | Bank Code | |
---|---|---|
Bank Aceh Syariah | 116 |
|
Bank Artha Graha | 037 |
|
Bank Banten | 137 |
|
Bank BCA | 014 |
|
Bank BCA Syariah | 536 |
|
Bank BJB | 110 |
|
Bank BJB Syariah | 425 |
|
Bank BNI | 009 |
|
Bank BNP | 145 |
|
Bank BPD Bali | 129 |
|
Bank BPD DIY | 112 |
|
Bank BRI | 002 |
|
Bank BRI Syariah | 422 |
|
Bank BTN | 200 |
|
Bank BTPN | 213 |
|
Bank BTPN Syariah | 547 |
|
Bank Bukopin | 441 |
|
Bank Bumi Arta | 076 |
|
Bank Capital Indonesia | 054 |
|
Bank CCB Indonesia | 036 |
|
Bank CIMB Niaga | 022 |
|
Bank Commonwealth | 950 |
|
Bank CTBC Indonesia | 949 |
|
Bank Danamon | 011 |
|
Bank DBS Indonesia | 046 |
|
Bank DKI | 111 |
|
Bank Harda Internasional | 567 |
|
Bank HSBC Indonesia | 087 |
|
Bank Ina Perdana | 513 |
|
Bank Index Selindo | 555 |
|
Bank Jasa Jakarta | 472 |
|
Bank Jateng | 113 |
|
Bank Jatim | 114 |
|
Bank Jtrust Indonesia | 095 |
|
Bank Kalbar | 123 |
|
Bank Kalteng | 125 |
|
Bank Kaltimtara | 124 |
|
Bank KEB Hana Indonesia | 484 |
|
Bank Maluku Malut | 131 |
|
Bank Mandiri | 008 |
|
Bank Maspion | 157 |
|
Bank Mayapada | 097 |
|
Bank Maybank Indonesia | 016 |
|
Bank Mega | 426 |
|
Bank Mega Syariah | 506 |
|
Bank Mestika | 151 |
|
Bank MNC | 485 |
|
Bank Muamalat | 147 |
|
Bank Multiarta Sentosa | 548 |
|
Bank Nagari | 118 |
|
Bank National Nobu | 503 |
|
Bank OCBC NISP | 028 |
|
Bank of China Jakarta Branch | 069 |
|
Bank Panin | 019 |
|
Bank Papua | 132 |
|
Bank Permata | 013 |
|
Bank QNB Indonesia | 167 |
|
Bank Rabobank | 089 |
|
Bank Riau Kepri | 119 |
|
Bank Royal | 501 |
|
Bank Sahabat Sampoerna | 523 |
|
Bank SBI Indonesia | 498 |
|
Bank Shinhan | 152 |
|
Bank Sinarmas | 153 |
|
Bank Sulselbar | 126 |
|
Bank Sumselbabel | 120 |
|
Bank Sumut | 117 |
|
Bank Syariah Bukopin | 521 |
|
Bank Syariah Mandiri | 451 |
|
Bank UOB Indonesia | 023 |
|
Bank Victoria | 566 |
|
Bank Victoria Syariah | 405 |
|
Bank Woori Saudara | 212 |
|
Citibank Indonesia | 031 |
|
IBK Bank Indonesia | 945 |
|
MUFG Bank | 042 |
|
Panin Dubai Syariah Bank | 517 |
|
Prima Master Bank | 520 |
|
Standard Chartered Bank | 050 |
List of Countries
Code | Name |
---|---|
IDN |
Indonesia |
COL |
Colombia |
COM |
Comoros |
COG |
Congo |
COK |
Cook Islands |
CRI |
Costa Rica |
CIV |
Cote d'Ivoire |
HRV |
Croatia |
CUB |
Cuba |
CYP |
Cyprus |
CZE |
Czech Republic |
DNK |
Denmark |
DJI |
Djibouti |
DMA |
Dominica |
DOM |
Dominican Republic |
ECU |
Ecuador |
EGY |
Egypt |
SLV |
El Salvador |
GNQ |
Equatorial Guinea |
ERI |
Eritrea |
EST |
Estonia |
ETH |
Ethiopia |
FLK |
Falkland Islands (Malvinas) |
FRO |
Faroe Islands |
FJI |
Fiji |
FIN |
Finland |
FRA |
France |
GUF |
French Guiana |
PYF |
French Polynesia |
GAB |
Gabon |
GMB |
Gambia |
GEO |
Georgia |
DEU |
Germany |
GHA |
Ghana |
GIB |
Gibraltar |
GRC |
Greece |
GRL |
Greenland |
GRD |
Grenada |
GLP |
Guadeloupe |
GUM |
Guam |
GTM |
Guatemala |
GIN |
Guinea |
GNB |
Guinea-Bissau |
GUY |
Guyana |
HTI |
Haiti |
VAT |
Holy See (Vatican City State) |
HND |
Honduras |
HKG |
Hong Kong |
HUN |
Hungary |
ISL |
Iceland |
IND |
India |
IRN |
Iran, Islamic Republic of |
IRQ |
Iraq |
IRL |
Ireland |
ISR |
Israel |
ITA |
Italy |
JAM |
Jamaica |
JPN |
Japan |
JOR |
Jordan |
KAZ |
Kazakhstan |
CXR |
Christmas Island |
ATA |
Antarctica |
HMD |
Heard Island and McDonald Islands |
CCK |
Cocos (Keeling) Islands |
BVT |
Bouvet Island |
KEN |
Kenya |
KIR |
Kiribati |
KWT |
Kuwait |
KGZ |
Kyrgyzstan |
LVA |
Latvia |
LBN |
Lebanon |
LSO |
Lesotho |
LBR |
Liberia |
LBY |
Libya |
LIE |
Liechtenstein |
LTU |
Lithuania |
LUX |
Luxembourg |
MAC |
Macao |
MKD |
Macedonia, the former Yugoslav Republic of |
MDG |
Madagascar |
MWI |
Malawi |
MYS |
Malaysia |
MDV |
Maldives |
MLI |
Mali |
MLT |
Malta |
MHL |
Marshall Islands |
MTQ |
Martinique |
MRT |
Mauritania |
MUS |
Mauritius |
MEX |
Mexico |
MDA |
Moldova, Republic of |
MCO |
Monaco |
MNG |
Mongolia |
MSR |
Montserrat |
MAR |
Morocco |
MOZ |
Mozambique |
MMR |
Myanmar |
NAM |
Namibia |
NRU |
Nauru |
NPL |
Nepal |
NLD |
Netherlands |
NCL |
New Caledonia |
NZL |
New Zealand |
NIC |
Nicaragua |
NER |
Niger |
NGA |
Nigeria |
NIU |
Niue |
NFK |
Norfolk Island |
MNP |
Northern Mariana Islands |
NOR |
Norway |
OMN |
Oman |
PAK |
Pakistan |
PLW |
Palau |
PAN |
Panama |
PNG |
Papua New Guinea |
PRY |
Paraguay |
PER |
Peru |
PHL |
Philippines |
PCN |
Pitcairn |
POL |
Poland |
PRT |
Portugal |
PRI |
Puerto Rico |
QAT |
Qatar |
REU |
Reunion |
RUS |
Russian Federation |
RWA |
Rwanda |
SHN |
Saint Helena, Ascension and Tristan da Cunha |
KNA |
Saint Kitts and Nevis |
LCA |
Saint Lucia |
SPM |
Saint Pierre and Miquelon |
VCT |
Saint Vincent and the Grenadines |
WSM |
Samoa |
SMR |
San Marino |
KOR |
South Korea |
PRK |
North Korea |
COD |
Democratic Republic of the Congo |
FSM |
Micronesia |
AFG |
Afghanistan |
ALB |
Albania |
DZA |
Algeria |
ASM |
American Samoa |
AND |
Andorra |
AGO |
Angola |
AIA |
Anguilla |
ATG |
Antigua and Barbuda |
ARG |
Argentina |
ARM |
Armenia |
ABW |
Aruba |
AUS |
Australia |
AUT |
Austria |
AZE |
Azerbaijan |
BHS |
Bahamas |
BHR |
Bahrain |
BGD |
Bangladesh |
BRB |
Barbados |
BLR |
Belarus |
BEL |
Belgium |
BLZ |
Belize |
BEN |
Benin |
BMU |
Bermuda |
BTN |
Bhutan |
BOL |
Bolivia, Plurinational State of |
BIH |
Bosnia and Herzegovina |
BWA |
Botswana |
BRA |
Brazil |
BRN |
Brunei Darussalam |
BGR |
Bulgaria |
BFA |
Burkina Faso |
BDI |
Burundi |
KHM |
Cambodia |
CMR |
Cameroon |
CAN |
Canada |
CYM |
Cayman Islands |
CAF |
Central African Republic |
TCD |
Chad |
CHL |
Chile |
CHN |
China |
UMI |
United States Minor Outlying Islands |
LAO |
Laos |
CPV |
Cape Verde |
VNM |
Vietnam |
STP |
Sao Tome and Principe |
SAU |
Saudi Arabia |
SEN |
Senegal |
SYC |
Seychelles |
SLE |
Sierra Leone |
SGP |
Singapore |
SVK |
Slovakia |
SVN |
Slovenia |
SLB |
Solomon Islands |
SOM |
Somalia |
ESP |
Spain |
LKA |
Sri Lanka |
SDN |
Sudan |
SUR |
Suriname |
SJM |
Svalbard and Jan Mayen |
SWZ |
Swaziland |
SWE |
Sweden |
CHE |
Switzerland |
SYR |
Syrian Arab Republic |
TWN |
Taiwan, Province of China |
TJK |
Tajikistan |
TZA |
Tanzania, United Republic of |
THA |
Thailand |
TGO |
Togo |
MYT |
Mayotte |
SGS |
South Georgia and the South Sandwich Islands |
TKL |
Tokelau |
TON |
Tonga |
TTO |
Trinidad and Tobago |
TUN |
Tunisia |
TUR |
Turkey |
TKM |
Turkmenistan |
TCA |
Turks and Caicos Islands |
TUV |
Tuvalu |
UGA |
Uganda |
UKR |
Ukraine |
ARE |
United Arab Emirates |
GBR |
United Kingdom |
URY |
Uruguay |
UZB |
Uzbekistan |
VUT |
Vanuatu |
VEN |
Venezuela, Bolivarian Republic of |
VGB |
Virgin Islands, British |
VIR |
Virgin Islands, U.S. |
WLF |
Wallis and Futuna |
ESH |
Western Sahara |
SRB |
Serbia |
MNE |
Montenegro |
ALA |
Aland Islands |
BES |
Bonaire, Sint Eustatius and Saba |
CUW |
Curacao |
GGY |
Guernsey |
IMN |
Isle of Man |
JEY |
Jersey |
BLM |
Saint Barthelemy |
MAF |
Saint Martin (French part) |
SXM |
Sint Maarten (Dutch part) |
SSD |
South Sudan |
ATF |
French Southern Territories |
IOT |
British Indian Ocean Territory |
ROU |
Romania |
PSE |
Palestine, State of |
TLS |
East Timor |
USA |
United States of America |
List of Cities/Regencies
Code | Name |
---|---|
1101 |
KAB. ACEH SELATAN |
1102 |
KAB. ACEH TENGGARA |
1103 |
KAB. ACEH TIMUR |
1104 |
KAB. ACEH TENGAH |
1105 |
KAB. ACEH BARAT |
1106 |
KAB. ACEH BESAR |
1107 |
KAB. PIDIE |
1108 |
KAB. ACEH UTARA |
1109 |
KAB. SIMEULUE |
1110 |
KAB. ACEH SINGKIL |
1111 |
KAB. BIREUEN |
1112 |
KAB. ACEH BARAT DAYA |
1113 |
KAB. GAYO LUES |
1114 |
KAB. ACEH JAYA |
1115 |
KAB. NAGAN RAYA |
1116 |
KAB. ACEH TAMIANG |
1117 |
KAB. BENER MERIAH |
1118 |
KAB. PIDIE JAYA |
1171 |
KOTA BANDA ACEH |
1172 |
KOTA SABANG |
1173 |
KOTA LHOKSEUMAWE |
1174 |
KOTA LANGSA |
1175 |
KOTA SUBULUSSALAM |
1201 |
KAB. TAPANULI TENGAH |
1202 |
KAB. TAPANULI UTARA |
1203 |
KAB. TAPANULI SELATAN |
1204 |
KAB. NIAS |
1205 |
KAB. LANGKAT |
1206 |
KAB. KARO |
1207 |
KAB. DELI SERDANG |
1208 |
KAB. SIMALUNGUN |
1209 |
KAB. ASAHAN |
1210 |
KAB. LABUHANBATU |
1211 |
KAB. DAIRI |
1212 |
KAB. TOBA SAMOSIR |
1213 |
KAB. MANDAILING NATAL |
1214 |
KAB. NIAS SELATAN |
1215 |
KAB. PAKPAK BHARAT |
1216 |
KAB. HUMBANG HASUNDUTAN |
1217 |
KAB. SAMOSIR |
1218 |
KAB. SERDANG BEDAGAI |
1219 |
KAB. BATU BARA |
1220 |
KAB. PADANG LAWAS UTARA |
1221 |
KAB. PADANG LAWAS |
1222 |
KAB. LABUHANBATU SELATAN |
1223 |
KAB. LABUHANBATU UTARA |
1224 |
KAB. NIAS UTARA |
1225 |
KAB. NIAS BARAT |
1271 |
KOTA MEDAN |
1272 |
KOTA PEMATANG SIANTAR |
1273 |
KOTA SIBOLGA |
1274 |
KOTA TANJUNG BALAI |
1275 |
KOTA BINJAI |
1276 |
KOTA TEBING TINGGI |
1277 |
KOTA PADANGSIDIMPUAN |
1278 |
KOTA GUNUNGSITOLI |
1301 |
KAB. PESISIR SELATAN |
1302 |
KAB. SOLOK |
1303 |
KAB. SIJUNJUNG |
1304 |
KAB. TANAH DATAR |
1305 |
KAB. PADANG PARIAMAN |
1306 |
KAB. AGAM |
1307 |
KAB. LIMA PULUH KOTA |
1308 |
KAB. PASAMAN |
1309 |
KAB. KEPULAUAN MENTAWAI |
1310 |
KAB. DHARMASRAYA |
1311 |
KAB. SOLOK SELATAN |
1312 |
KAB. PASAMAN BARAT |
1371 |
KOTA PADANG |
1372 |
KOTA SOLOK |
1373 |
KOTA SAWAHLUNTO |
1374 |
KOTA PADANG PANJANG |
1375 |
KOTA BUKITTINGGI |
1376 |
KOTA PAYAKUMBUH |
1377 |
KOTA PARIAMAN |
1401 |
KAB. KAMPAR |
1402 |
KAB. INDRAGIRI HULU |
1403 |
KAB. BENGKALIS |
1404 |
KAB. INDRAGIRI HILIR |
1405 |
KAB. PELALAWAN |
1406 |
KAB. ROKAN HULU |
1407 |
KAB. ROKAN HILIR |
1408 |
KAB. SIAK |
1409 |
KAB. KUANTAN SINGINGI |
1410 |
KAB. KEPULAUAN MERANTI |
1471 |
KOTA PEKANBARU |
1472 |
KOTA DUMAI |
1501 |
KAB. KERINCI |
1502 |
KAB. MERANGIN |
1503 |
KAB. SAROLANGUN |
1504 |
KAB. BATANGHARI |
1505 |
KAB. MUARO JAMBI |
1506 |
KAB. TANJUNG JABUNG BARAT |
1507 |
KAB. TANJUNG JABUNG TIMUR |
1508 |
KAB. BUNGO |
1509 |
KAB. TEBO |
1571 |
KOTA JAMBI |
1572 |
KOTA SUNGAI PENUH |
1601 |
KAB. OGAN KOMERING ULU |
1602 |
KAB. OGAN KOMERING ILIR |
1603 |
KAB. MUARA ENIM |
1604 |
KAB. LAHAT |
1605 |
KAB. MUSI RAWAS |
1606 |
KAB. MUSI BANYUASIN |
1607 |
KAB. BANYUASIN |
1608 |
KAB. OGAN KOMERING ULU TIMUR |
1609 |
KAB. OGAN KOMERING ULU SELATAN |
1610 |
KAB. OGAN ILIR |
1611 |
KAB. EMPAT LAWANG |
1612 |
KAB. PENUKAL ABAB |
1613 |
KAB. MUSI RAWAS UTARA |
1671 |
KOTA PALEMBANG |
1672 |
KOTA PAGAR ALAM |
1673 |
KOTA LUBUK LINGGAU |
1674 |
KOTA PRABUMULIH |
1701 |
KAB. BENGKULU SELATAN |
1702 |
KAB. REJANG LEBONG |
1703 |
KAB. BENGKULU UTARA |
1704 |
KAB. KAUR |
1705 |
KAB. SELUMA |
1706 |
KAB. MUKO MUKO |
1707 |
KAB. LEBONG |
1708 |
KAB. KEPAHIANG |
1709 |
KAB. BENGKULU TENGAH |
1771 |
KOTA BENGKULU |
1801 |
KAB. LAMPUNG SELATAN |
1802 |
KAB. LAMPUNG TENGAH |
1803 |
KAB. LAMPUNG UTARA |
1804 |
KAB. LAMPUNG BARAT |
1805 |
KAB. TULANG BAWANG |
1806 |
KAB. TANGGAMUS |
1807 |
KAB. LAMPUNG TIMUR |
1808 |
KAB. WAY KANAN |
1809 |
KAB. PESAWARAN |
1810 |
KAB. PRINGSEWU |
1811 |
KAB. MESUJI |
1812 |
KAB. TULANG BAWANG BARAT |
1813 |
KAB. PESISIR BARAT |
1871 |
KOTA BANDAR LAMPUNG |
1872 |
KOTA METRO |
1901 |
KAB. BANGKA |
1902 |
KAB. BELITUNG |
1903 |
KAB. BANGKA SELATAN |
1904 |
KAB. BANGKA TENGAH |
1905 |
KAB. BANGKA BARAT |
1906 |
KAB. BELITUNG TIMUR |
1971 |
KOTA PANGKAL PINANG |
2101 |
KAB. BINTAN |
2102 |
KAB. KARIMUN |
2103 |
KAB. NATUNA |
2104 |
KAB. LINGGA |
2105 |
KAB. KEPULAUAN ANAMBAS |
2171 |
KOTA BATAM |
2172 |
KOTA TANJUNG PINANG |
3101 |
KAB. ADM. KEP. SERIBU |
3171 |
KOTA ADM. JAKARTA PUSAT |
3172 |
KOTA ADM. JAKARTA UTARA |
3173 |
KOTA ADM. JAKARTA BARAT |
3174 |
KOTA ADM. JAKARTA SELATAN |
3175 |
KOTA ADM. JAKARTA TIMUR |
3201 |
KAB. BOGOR |
3202 |
KAB. SUKABUMI |
3203 |
KAB. CIANJUR |
3204 |
KAB. BANDUNG |
3205 |
KAB. GARUT |
3206 |
KAB. TASIKMALAYA |
3207 |
KAB. CIAMIS |
3208 |
KAB. KUNINGAN |
3209 |
KAB. CIREBON |
3210 |
KAB. MAJALENGKA |
3211 |
KAB. SUMEDANG |
3212 |
KAB. INDRAMAYU |
3213 |
KAB. SUBANG |
3214 |
KAB. PURWAKARTA |
3215 |
KAB. KARAWANG |
3216 |
KAB. BEKASI |
3217 |
KAB. BANDUNG BARAT |
3218 |
KAB. PANGANDARAN |
3271 |
KOTA BOGOR |
3272 |
KOTA SUKABUMI |
3273 |
KOTA BANDUNG |
3274 |
KOTA CIREBON |
3275 |
KOTA BEKASI |
3276 |
KOTA DEPOK |
3277 |
KOTA CIMAHI |
3278 |
KOTA TASIKMALAYA |
3279 |
KOTA BANJAR |
3301 |
KAB. CILACAP |
3302 |
KAB. BANYUMAS |
3303 |
KAB. PURBALINGGA |
3304 |
KAB. BANJARNEGARA |
3305 |
KAB. KEBUMEN |
3306 |
KAB. PURWOREJO |
3307 |
KAB. WONOSOBO |
3308 |
KAB. MAGELANG |
3309 |
KAB. BOYOLALI |
3310 |
KAB. KLATEN |
3311 |
KAB. SUKOHARJO |
3312 |
KAB. WONOGIRI |
3313 |
KAB. KARANGANYAR |
3314 |
KAB. SRAGEN |
3315 |
KAB. GROBOGAN |
3316 |
KAB. BLORA |
3317 |
KAB. REMBANG |
3318 |
KAB. PATI |
3319 |
KAB. KUDUS |
3320 |
KAB. JEPARA |
3321 |
KAB. DEMAK |
3322 |
KAB. SEMARANG |
3323 |
KAB. TEMANGGUNG |
3324 |
KAB. KENDAL |
3325 |
KAB. BATANG |
3326 |
KAB. PEKALONGAN |
3327 |
KAB. PEMALANG |
3328 |
KAB. TEGAL |
3329 |
KAB. BREBES |
3371 |
KOTA MAGELANG |
3372 |
KOTA SURAKARTA |
3373 |
KOTA SALATIGA |
3374 |
KOTA SEMARANG |
3375 |
KOTA PEKALONGAN |
3376 |
KOTA TEGAL |
3401 |
KAB. KULON PROGO |
3402 |
KAB. BANTUL |
3403 |
KAB. GUNUNGKIDUL |
3404 |
KAB. SLEMAN |
3471 |
KOTA YOGYAKARTA |
3501 |
KAB. PACITAN |
3502 |
KAB. PONOROGO |
3503 |
KAB. TRENGGALEK |
3504 |
KAB. TULUNGAGUNG |
3505 |
KAB. BLITAR |
3506 |
KAB. KEDIRI |
3507 |
KAB. MALANG |
3508 |
KAB. LUMAJANG |
3509 |
KAB. JEMBER |
3510 |
KAB. BANYUWANGI |
3511 |
KAB. BONDOWOSO |
3512 |
KAB. SITUBONDO |
3513 |
KAB. PROBOLINGGO |
3514 |
KAB. PASURUAN |
3515 |
KAB. SIDOARJO |
3516 |
KAB. MOJOKERTO |
3517 |
KAB. JOMBANG |
3518 |
KAB. NGANJUK |
3519 |
KAB. MADIUN |
3520 |
KAB. MAGETAN |
3521 |
KAB. NGAWI |
3522 |
KAB. BOJONEGORO |
3523 |
KAB. TUBAN |
3524 |
KAB. LAMONGAN |
3525 |
KAB. GRESIK |
3526 |
KAB. BANGKALAN |
3527 |
KAB. SAMPANG |
3528 |
KAB. PAMEKASAN |
3529 |
KAB. SUMENEP |
3571 |
KOTA KEDIRI |
3572 |
KOTA BLITAR |
3573 |
KOTA MALANG |
3574 |
KOTA PROBOLINGGO |
3575 |
KOTA PASURUAN |
3576 |
KOTA MOJOKERTO |
3577 |
KOTA MADIUN |
3578 |
KOTA SURABAYA |
3579 |
KOTA BATU |
3601 |
KAB. PANDEGLANG |
3602 |
KAB. LEBAK |
3603 |
KAB. TANGERANG |
3604 |
KAB. SERANG |
3671 |
KOTA TANGERANG |
3672 |
KOTA CILEGON |
3673 |
KOTA SERANG |
3674 |
KOTA TANGERANG SELATAN |
5101 |
KAB. JEMBRANA |
5102 |
KAB. TABANAN |
5103 |
KAB. BADUNG |
5104 |
KAB. GIANYAR |
5105 |
KAB. KLUNGKUNG |
5106 |
KAB. BANGLI |
5107 |
KAB. KARANGASEM |
5108 |
KAB. BULELENG |
5171 |
KOTA DENPASAR |
5201 |
KAB. LOMBOK BARAT |
5202 |
KAB. LOMBOK TENGAH |
5203 |
KAB. LOMBOK TIMUR |
5204 |
KAB. SUMBAWA |
5205 |
KAB. DOMPU |
5206 |
KAB. BIMA |
5207 |
KAB. SUMBAWA BARAT |
5208 |
KAB. LOMBOK UTARA |
5271 |
KOTA MATARAM |
5272 |
KOTA BIMA |
5301 |
KAB. KUPANG |
5302 |
KAB TIMOR TENGAH SELATAN |
5303 |
KAB. TIMOR TENGAH UTARA |
5304 |
KAB. BELU |
5305 |
KAB. ALOR |
5306 |
KAB. FLORES TIMUR |
5307 |
KAB. SIKKA |
5308 |
KAB. ENDE |
5309 |
KAB. NGADA |
5310 |
KAB. MANGGARAI |
5311 |
KAB. SUMBA TIMUR |
5312 |
KAB. SUMBA BARAT |
5313 |
KAB. LEMBATA |
5314 |
KAB. ROTE NDAO |
5315 |
KAB. MANGGARAI BARAT |
5316 |
KAB. NAGEKEO |
5317 |
KAB. SUMBA TENGAH |
5318 |
KAB. SUMBA BARAT DAYA |
5319 |
KAB. MANGGARAI TIMUR |
5320 |
KAB. SABU RAIJUA |
5321 |
KAB. MALAKA |
5371 |
KOTA KUPANG |
6101 |
KAB. SAMBAS |
6102 |
KAB. MEMPAWAH |
6103 |
KAB. SANGGAU |
6104 |
KAB. KETAPANG |
6105 |
KAB. SINTANG |
6106 |
KAB. KAPUAS HULU |
6107 |
KAB. BENGKAYANG |
6108 |
KAB. LANDAK |
6109 |
KAB. SEKADAU |
6110 |
KAB. MELAWI |
6111 |
KAB. KAYONG UTARA |
6112 |
KAB. KUBU RAYA |
6171 |
KOTA PONTIANAK |
6172 |
KOTA SINGKAWANG |
6201 |
KAB. KOTAWARINGIN BARAT |
6202 |
KAB. KOTAWARINGIN TIMUR |
6203 |
KAB. KAPUAS |
6204 |
KAB. BARITO SELATAN |
6205 |
KAB. BARITO UTARA |
6206 |
KAB. KATINGAN |
6207 |
KAB. SERUYAN |
6208 |
KAB. SUKAMARA |
6209 |
KAB. LAMANDAU |
6210 |
KAB. GUNUNG MAS |
6211 |
KAB. PULANG PISAU |
6212 |
KAB. MURUNG RAYA |
6213 |
KAB. BARITO TIMUR |
6271 |
KOTA PALANGKARAYA |
6301 |
KAB. TANAH LAUT |
6302 |
KAB. KOTABARU |
6303 |
KAB. BANJAR |
6304 |
KAB. BARITO KUALA |
6305 |
KAB. TAPIN |
6306 |
KAB. HULU SUNGAI SELATAN |
6307 |
KAB. HULU SUNGAI TENGAH |
6308 |
KAB. HULU SUNGAI UTARA |
6309 |
KAB. TABALONG |
6310 |
KAB. TANAH BUMBU |
6311 |
KAB. BALANGAN |
6371 |
KOTA BANJARMASIN |
6372 |
KOTA BANJARBARU |
6401 |
KAB. PASER |
6402 |
KAB. KUTAI KARTANEGARA |
6403 |
KAB. BERAU |
6407 |
KAB. KUTAI BARAT |
6408 |
KAB. KUTAI TIMUR |
6409 |
KAB. PENAJAM PASER UTARA |
6411 |
KAB. MAHAKAM ULU |
6471 |
KOTA BALIKPAPAN |
6472 |
KOTA SAMARINDA |
6474 |
KOTA BONTANG |
6501 |
KAB. BULUNGAN |
6502 |
KAB. MALINAU |
6503 |
KAB. NUNUKAN |
6504 |
KAB. TANA TIDUNG |
6571 |
KOTA TARAKAN |
7101 |
KAB. BOLAANG MONGONDOW |
7102 |
KAB. MINAHASA |
7103 |
KAB. KEPULAUAN SANGIHE |
7104 |
KAB. KEPULAUAN TALAUD |
7105 |
KAB. MINAHASA SELATAN |
7106 |
KAB. MINAHASA UTARA |
7107 |
KAB. MINAHASA TENGGARA |
7108 |
KAB. BOLAANG MONGONDOW UTARA |
7109 |
KAB. KEP. SIAU |
7110 |
KAB. BOLAANG MONGONDOW TIMUR |
7111 |
KAB. BOLAANG MONGONDOW SELATAN |
7171 |
KOTA MANADO |
7172 |
KOTA BITUNG |
7173 |
KOTA TOMOHON |
7174 |
KOTA KOTAMOBAGU |
7201 |
KAB. BANGGAI |
7202 |
KAB. POSO |
7203 |
KAB. DONGGALA |
7204 |
KAB. TOLI TOLI |
7205 |
KAB. BUOL |
7206 |
KAB. MOROWALI |
7207 |
KAB. BANGGAI KEPULAUAN |
7208 |
KAB. PARIGI MOUTONG |
7209 |
KAB. TOJO UNA UNA |
7210 |
KAB. SIGI |
7211 |
KAB. BANGGAI LAUT |
7212 |
KAB. MOROWALI UTARA |
7271 |
KOTA PALU |
7301 |
KAB. KEPULAUAN SELAYAR |
7302 |
KAB. BULUKUMBA |
7303 |
KAB. BANTAENG |
7304 |
KAB. JENEPONTO |
7305 |
KAB. TAKALAR |
7306 |
KAB. GOWA |
7307 |
KAB. SINJAI |
7308 |
KAB. BONE |
7309 |
KAB. MAROS |
7310 |
KAB. PANGKAJENE |
7311 |
KAB. BARRU |
7312 |
KAB. SOPPENG |
7313 |
KAB. WAJO |
7314 |
KAB. SIDENRENG RAPPANG |
7315 |
KAB. PINRANG |
7316 |
KAB. ENREKANG |
7317 |
KAB. LUWU |
7318 |
KAB. TANA TORAJA |
7322 |
KAB. LUWU UTARA |
7324 |
KAB. LUWU TIMUR |
7326 |
KAB. TORAJA UTARA |
7371 |
KOTA MAKASSAR |
7372 |
KOTA PARE PARE |
7373 |
KOTA PALOPO |
7401 |
KAB. KOLAKA |
7402 |
KAB. KONAWE |
7403 |
KAB. MUNA |
7404 |
KAB. BUTON |
7405 |
KAB. KONAWE SELATAN |
7406 |
KAB. BOMBANA |
7407 |
KAB. WAKATOBI |
7408 |
KAB. KOLAKA UTARA |
7409 |
KAB. KONAWE UTARA |
7410 |
KAB. BUTON UTARA |
7411 |
KAB. KOLAKA TIMUR |
7412 |
KAB. KONAWE KEPULAUAN |
7413 |
KAB. MUNA BARAT |
7414 |
KAB. BUTON TENGAH |
7415 |
KAB. BUTON SELATAN |
7471 |
KOTA KENDARI |
7472 |
KOTA BAU BAU |
7501 |
KAB. GORONTALO |
7502 |
KAB. BOALEMO |
7503 |
KAB. BONE BOLANGO |
7504 |
KAB. PAHUWATO |
7505 |
KAB. GORONTALO UTARA |
7571 |
KOTA GORONTALO |
7601 |
KAB. MAMUJU UTARA |
7602 |
KAB. MAMUJU |
7603 |
KAB. MAMASA |
7604 |
KAB. POLEWALI MANDAR |
7605 |
KAB. MAJENE |
7606 |
KAB. MAMUJU TENGAH |
8101 |
KAB. MALUKU TENGAH |
8102 |
KAB. MALUKU TENGGARA |
8103 |
KAB MALUKU TENGGARA |
8104 |
KAB. BURU |
8105 |
KAB. SERAM BAGIAN TIMUR |
8106 |
KAB. SERAM BAGIAN BARAT |
8107 |
KAB. KEPULAUAN ARU |
8108 |
KAB. MALUKU BARAT DAYA |
8109 |
KAB. BURU SELATAN |
8171 |
KOTA AMBON |
8172 |
KOTA TUAL |
8201 |
KAB. HALMAHERA BARAT |
8202 |
KAB. HALMAHERA TENGAH |
8203 |
KAB. HALMAHERA UTARA |
8204 |
KAB. HALMAHERA SELATAN |
8205 |
KAB. KEPULAUAN SULA |
8206 |
KAB. HALMAHERA TIMUR |
8207 |
KAB. PULAU MOROTAI |
8208 |
KAB. PULAU TALIABU |
8271 |
KOTA TERNATE |
8272 |
KOTA TIDORE KEPULAUAN |
9101 |
KAB. MERAUKE |
9102 |
KAB. JAYAWIJAYA |
9103 |
KAB. JAYAPURA |
9104 |
KAB. NABIRE |
9105 |
KAB. KEPULAUAN YAPEN |
9106 |
KAB. BIAK NUMFOR |
9107 |
KAB. PUNCAK JAYA |
9108 |
KAB. PANIAI |
9109 |
KAB. MIMIKA |
9110 |
KAB. SARMI |
9111 |
KAB. KEEROM |
9112 |
KAB PEGUNUNGAN BINTANG |
9113 |
KAB. YAHUKIMO |
9114 |
KAB. TOLIKARA |
9115 |
KAB. WAROPEN |
9116 |
KAB. BOVEN DIGOEL |
9117 |
KAB. MAPPI |
9118 |
KAB. ASMAT |
9119 |
KAB. SUPIORI |
9120 |
KAB. MAMBERAMO RAYA |
9121 |
KAB. MAMBERAMO TENGAH |
9122 |
KAB. YALIMO |
9123 |
KAB. LANNY JAYA |
9124 |
KAB. NDUGA |
9125 |
KAB. PUNCAK |
9126 |
KAB. DOGIYAI |
9127 |
KAB. INTAN JAYA |
9128 |
KAB. DEIYAI |
9171 |
KOTA JAYAPURA |
9201 |
KAB. SORONG |
9202 |
KAB. MANOKWARI |
9203 |
KAB. FAK FAK |
9204 |
KAB. SORONG SELATAN |
9205 |
KAB. RAJA AMPAT |
9206 |
KAB. TELUK BINTUNI |
9207 |
KAB. TELUK WONDAMA |
9208 |
KAB. KAIMANA |
9209 |
KAB. TAMBRAUW |
9210 |
KAB. MAYBRAT |
9211 |
KAB. MANOKWARI SELATAN |
9212 |
KAB. PEGUNUNGAN ARFAK |
9271 |
KOTA SORONG |
Error Codes
Http Code | Code | Description | Type |
---|---|---|---|
422 | AMAL |
Above Maximum Amount Limit is an error caused by your submitted transaction amount is above maximum limit | FT |
422 | BMA |
Below Minimum Amount is an error caused by your submitted transaction amount below IDR 10,000 | All |
422 | BNF |
Bank Not Found is an error caused by your submitted bank parameter not yet supported | All |
422 | BPNF |
Bank Product Not Found is an error caused by bank not supported for specific VA type | VA |
422 | BRA |
Blocked Recipient Account is an error caused by recipient account is blocked by bank | FT |
422 | CANF |
Client Account Not Found is an error caused by your submitted invalid "client_account_number" | All |
422 | CTRAE |
Client Trans Reference Already Exist is an error caused by your submitted same client reference with previous transaction | All |
422 | IFCA |
Insufficient Fund on Client Account is an error caused by your balance is not sufficient for the transaction | FT |
422 | IRA |
Inactive Recipient Account is an error caused by transaction rejected by DMT Bank Partner due recipient account inactive | FT |
422 | IRAN |
Invalid Recipient Account or Name is an error caused by transaction rejected by DMT Bank Partner due invalid recipient name | FT |
422 | IRBD |
Invalid Recipient Birth Date is an error caused by your submitted invalid "recipient.birth.date" | FT |
422 | IRIT |
Invalid Recipient Identity Type is an error caused by your submitted invalid "sender.identity.type" | FT |
422 | IRN |
Invalid Recipient Name is an error caused by your submitted recipient name is not matched with recipient name result from bank. Current threshold is 30%, mean that if the name is similar to the equal or above 30%, we will consider the name is matched. | FT |
422 | ISBD |
Invalid Sender Birth Date is an error caused by your submitted invalid "sender.birth.date" | FT |
422 | ISIT |
Invalid Sender Identity Type is an error caused by your submitted invalid "sender.identity.type" | FT |
422 | ITA |
Invalid Transaction Amount is an error caused by your submitted invalid "amount" format | FT |
422 | PNF |
Product Not Found is an error caused by your submitted invalid "type" | All |
422 | RCRNF |
Recipient City/Regency Not Found is an error caused by your submitted invalid "recipient.cityregency_code" | FT |
422 | SCNF |
Sender Country Not Found is an error caused by your submitted invalid "sender.country_code" | FT |
422 | SCRNF |
Sender City/Regency Not Found is an error caused by your submitted invalid "sender.cityregency_code" | FT |
422 | TNF |
Transaction Not Found is an error caused by transaction that you search is not found | FT |
422 | URA |
Unregistered Recipient Account is an error caused by the recipient account is not found at the beneficiary bank. Possibility caused by typos in recipient account number or wrong bank code | FT |
422 | VAD |
VA Number Already Deleted | VA |
422 | VAE |
VA Number Already Expired | VA |
422 | VAP |
VA Number Already Paid | VA |
422 | VNF |
VA Number Not Found | VA |
500 | CCNF |
Client Configuration Not Found is an error caused by specific configuration not active | All |
500 | CGV |
Cannot Generate VA is an error caused by our service get disruption when get VA Number | VA |
500 | CUNF |
Customer Not Found is an error caused by cannot find VA Customer data | VA |
500 | DM |
Duplicate Transmission is an error caused by transaction rejected by DMT Bank Partners due duplicate unique ID | FT |
500 | IANA |
IP Address Not Allowed is an error caused by transaction rejected by DMT Bank Partner due invalid IP Address | VA |
500 | ICAS |
Invalid Charge Amount Settings is an error caused by invalid charge amount settings | FT |
500 | IPN |
Invalid Phone Number is an error caused by transaction rejected by DMT Bank Partner due invalid phone number | FT |
500 | IPR |
Invalid Parameter Request is an error caused by transaction rejected by DMT Bank Partner due invalid parameter | VA |
500 | ISE |
Internal System Error is an error caused by our service get unhandled exception | All |
500 | NRBP |
No Route to Bank Partner is an error caused by DMT partners route not set | FT |
500 | SM |
System Malfunction is an error caused by get unhandled response from DMT bank partners | All |
500 | ST |
Suspect Transaction is an error caused by transaction is mark as suspect by DMT bank partners. Consider to wait recociliation by next working days | FT |
500 | TFC |
Transaction Force Credit is an error caused by transaction is mark as force credit by DMT bank partners. Transaction will be consider as success by next working days as long as recipient account is active | FT |
500 | TOSH |
Transaction is Out of Service Hour is an error caused by transaction rejected by DMT bank partner due out of service hour | FT |
500 | TRS |
Transaction Rejected by Switching is a general error response from our bank partners, possibility caused by End of Day or there is an error on sender bank, interbank switcher or recipient bank. You should retry the transaction if this error occurred in a few minutes or a few hours later | FT |
500 | TTP |
Transaction Timeout on Partner is an error caused by DMT bank partners get timeout when sent transaction to swiching | FT |
500 | UPE |
Undefined Partner Error is an error caused by unmapped response code from DMT partners | All |
500 | UPR |
Unable to Process Request is an error caused by DMT bank partner cannot process transaction | FT |
503 | ISD |
Internal Service Down is an error caused by one of our service is down | All |
503 | PSD |
Partner Service is Down is an error caused by our bank partner didn’t response our request | All |
504 | TO |
Timeout is an error caused by DMT bank partners service communitation getting timeout | VA |
Notes :
- FT : Fund Transfer
- VA : Virtual Account
- Qris
- All : VA, FT & Qris
Changelog
Aug 24, 2021
- Update "required" and "description" all parameters on FT Create Transaction.
Jul 06, 2021
- Update description of "type" param on FT Create Transaction.
- Add new param "allow_next_workingday" on FT Create Transaction.
May 07, 2021
- Add new param "nm_threshold" on FT Create Transaction.
Apr 07, 2021
- Update Error Codes.
- Separate "HTTP Status Response" into "Successful HTTP Status" & "Failed HTTP Status".
- Add example response of HTTP Status 401 Unauthorized.
- Add example response of HTTP Status 403 Forbidden.
- Add more example response of HTTP Status 422 Unprocessable Entity.
Mar 18, 2021
- Add new bank of VA: Sinarmas.
Mar 12, 2021
- Update range amount of Disbursement SKN to "50,000,001" - "500,000,000".
- Update range amount of Disbursement Online to "10,000" - "100,000,000".
- Update range amount of Disbursement RTGS to "100,000,001" - "9,999,999,999".
- Update description of "recipient_account_number" param on FT Inquiry & FT Create Transaction (only valid for numeric 0 - 9).
Feb 24, 2021
- Add new 2 banks of VA: Permata & BSS.
Feb 15, 2021
- Change va type param from "va_open" to "va_open_min".
Jan 13, 2021
- Add features to disable & enable VA.
Nov 30, 2020
- Add va type param "va_open_max".
- Add new bank of VA: Mandiri.
Nov 13, 2020
- Update range amount of Disbursement Online to "10,000" - "50,000,000".
Sep 04, 2020
- Update range amount of Disbursement SKN to "50,000,001" - "500,000,000".
Jun 11, 2020
- Typo correction on Get Token url to "/authorization/v1/token".
- Add dark box on content type of Payment Notification.
- Typo correction on "application/application/json" to "application/json".
- Typo correction on FT Create transaction url "/v1/fund-transfer" to "/fund-transfer/v1".
- Typo correction on FT Transaction Callback param "secure_code" to "security_code".
May 27, 2020
- Add new transaction status of FT: "Force Credit".
- Remove status "onprocess" on FT Transaction Callback.
May 08, 2020
- Change url on API examples, from "http://" to "https://".
- Typo correction: add character "\" on all example requests.
Apr 14, 2020
- Update maxlength of "recipient_account_number" to 20 digits.
- Update maxlength of "sender.countryCode" to 3 characters.
Apr 23, 2020
- Change api "VA History" to "Payment History".
- Change http method of FT Transaction Callback from "PATCH" to "POST".
Feb 23, 2020
- Initial release.
March 11, 2022
- Initial Qris Api release.