Skip to main content

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.

"Sequence Diagram"

Description:

NoProcessRelated documentsDescription
1Generate SignatureSignature GenerationBefore you make an API Create VA request, you are required to generate a signature for authentication needs in the Create VA API.
2Assign Signature to X-Signature HeaderGenerated signatures can be placed in the X-Signature header when creating a VA.
3Completing Header & Body Request Create VAHeader & BodyYou can complete the Header & Body before creating the VA
4Request Create VAAkun VirtualIn this step, you can request the Create VA API to get a virtual account number.
5Response Virtual Account NumberAfter creating a VA, you will get a VA number to be paid to the relevant bank.
6Payment (User)The user makes a payment at the relevant bank.
7Payment (Bank)The bank sends a payment order to Winpay.
8Response Success (Payment Bank)Winpay responds to successful payments at the bank.
9Response Success (Payment User)The bank responds to the user's successful payment.
10Sending Payment NotificationPayment CallbackAfter 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 CodeMetode PembayaranKategori API
QRISQRISQRIS
SCSpeedcasheWallet
OVOOVOeWallet
DANADANAeWallet
SPAYShopeePayeWallet
INDOMARETIndomaretVirtual Account
ALFAMARTAlfamart / DAN+DAN / LawsonVirtual Account
BRIBank Rakyat IndonesiaVirtual Account
BNIBank Negara IndonesiaVirtual Account
BCABank Central AsiaVirtual Account
MANDIRIBank MandiriVirtual Account
PERMATABank PermataVirtual Account
BSIBank Syariah IndonesiaVirtual Account
CIMBBank CIMB NiagaVirtual Account
SINARMASBank SinarmasVirtual Account
BNCBank Neo CommerceVirtual Account
BCAPCBCA (Payment Code)Virtual Account
MANDIRIPCMandiri (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 NameDescription
X-TIMESTAMPTimestamp when request is made
X-SIGNATURESignature generated from merchant
X-PARTNER-IDMerchant client key
X-EXTERNAL-IDExternal merchant ID (cannot be the same on the same day)
CHANNEL-IDChannel ID merchant