Overview
As of November 2021, Bank Indonesia has launched the National Payment API Standard (SNAP) as the national standard for API-based payment services. Winpay as a payment gateway that has been registered with Bank Indonesia, has supported SNAP API to facilitate the integration process with merchants.
What is the SNAP API?
SNAP API is a national standard for API-based payment services issued by Bank Indonesia. The SNAP API enables merchants to integrate payment services into their applications more easily and quickly.
Sequence Diagram
The following sections will explain about the technical details of each process in this service.
Description:
No | Process | Related documents | Description |
---|---|---|---|
1 | Generate Signature | Signature Generation | Before you make an API Create VA request, you are required to generate a signature for authentication needs in the Create VA API. |
2 | Assign Signature to X-Signature Header | Generated signatures can be placed in the X-Signature header when creating a VA. | |
3 | Completing Header & Body Request Create VA | Header & Body | You can complete the Header & Body before creating the VA |
4 | Request Create VA | Akun Virtual | In this step, you can request the Create VA API to get a virtual account number. |
5 | Response Virtual Account Number | After creating a VA, you will get a VA number to be paid to the relevant bank. | |
6 | Payment (User) | The user makes a payment at the relevant bank. | |
7 | Payment (Bank) | The bank sends a payment order to Winpay. | |
8 | Response Success (Payment Bank) | Winpay responds to successful payments at the bank. | |
9 | Response Success (Payment User) | The bank responds to the user's successful payment. | |
10 | Sending Payment Notification | Payment Callback | After the payment process from the user to the bank and the bank to Winpay is complete, Winpay will send a payment notification to the merchant to notify the merchant that the payment at the VA has been successful. |
Supported payment methods
The SNAP API supports a variety of payment methods, such as:
Channel Code | Metode Pembayaran | Kategori API |
---|---|---|
QRIS | QRIS | QRIS |
SC | Speedcash | eWallet |
OVO | OVO | eWallet |
DANA | DANA | eWallet |
SPAY | ShopeePay | eWallet |
INDOMARET | Indomaret | Virtual Account |
ALFAMART | Alfamart / DAN+DAN / Lawson | Virtual Account |
BRI | Bank Rakyat Indonesia | Virtual Account |
BNI | Bank Negara Indonesia | Virtual Account |
BCA | Bank Central Asia | Virtual Account |
MANDIRI | Bank Mandiri | Virtual Account |
PERMATA | Bank Permata | Virtual Account |
BSI | Bank Syariah Indonesia | Virtual Account |
CIMB | Bank CIMB Niaga | Virtual Account |
SINARMAS | Bank Sinarmas | Virtual Account |
BNC | Bank Neo Commerce | Virtual Account |
BCAPC | BCA (Payment Code) | Virtual Account |
MANDIRIPC | Mandiri (Payment Code) | Virtual Account |
Transaction Security Standards
To ensure transaction security, SNAP API uses security standards set by Bank Indonesia, namely by using signature and encryption. Winpay uses the type Asymmetric Without Get Token
to generate signatures, so merchants do not need to request get tokens first to create signatures. The signature is sent via the X-Signature
header at the time of request.
In addition to X-Signature, the mandatory headers that must be sent at the time of request are:
Header Name | Description |
---|---|
X-TIMESTAMP | Timestamp when request is made |
X-SIGNATURE | Signature generated from merchant |
X-PARTNER-ID | Merchant client key |
X-EXTERNAL-ID | External merchant ID (cannot be the same on the same day) |
CHANNEL-ID | Channel ID merchant |