Dokumentasi API

Integrasikan layanan RemitCepat dengan mudah menggunakan API kami yang andal dan lengkap.

Spesifikasi API Virtual Account
Panduan teknis untuk integrasi layanan Virtual Account RemitCepat.

1. Introduction

Secara umum terdapat 3 service API yang diperlukan untuk H2H dengan VA RemitCepat (1 untuk authentifikasi and 2 untuk transaksi):

  • AUTH (Turunan dari OAuth 2.0)
    • AUTH REQUEST: Digunakan untuk request authentication dengan mengirimkan data credential untuk mendapatkan access token. API ini harus di-hit sebelum melakukan hit inquiry dan payment.
    • AUTH RESPONSE: Field AccessToken dari response ini digunakan sebagai authentifikasi pada saat hit service INQUIRY dan PAYMENT. AccessToken ini hanya sekali pakai, dan jika tidak digunakan, maka akan expired dalam waktu 15 menit setelah direquest.
  • INQUIRY
    • INQUIRY REQUEST: Mitra me-request data tagihan ke API RemitCepat dengan mengirimkan informasi tagihan/virtual account.
    • INQUIRY RESPONSE: API RemitCepat memberikan respon yang berisi informasi tagihan/virtual account (nama tagihan, jumlah tagihan, dll).
  • PAYMENT
    • PAYMENT REQUEST: Mitra mengirimkan permintaan pembayaran ke API RemitCepat dengan mengirimkan nomor VA, jumlah pembayaran, waktu transaksi, dll.
    • PAYMENT RESPONSE: API RemitCepat bisa menerima ataupun menolak permintaan pembayaran dan mengirimkan respon pembayaran.

2. Authentication

AUTH REQUEST header

ParameterDescription
X-TIMESTAMPyyyy-MM-ddTHH:mm:ss.SSSTZD format
X-CLIENT-KEYCLIENT_ID
X-SIGNATUREopenssl_sign(CLIENT_ID + "|" + X_TIMESTAMP, SBI_PRIVATE_KEY)
Content-Typeapplication/json

Example Header

X-TIMESTAMP: 2024-12-23T20:52:00.110+07:00
X-CLIENT-KEY: {YOUR_CLIENT_ID}
X-SIGNATURE: {GENERATED_SIGNATURE}
Content-Type: application/json

AUTH Parameters

Request Parameters
grantTypeType of requestclient_credentials
Response Parameters
responseCodeResponse Code (see Appendix 1)2000000 (OK)
responseMessageMessageAuth success
accessTokenAccess Token to be used for transaction...
tokenTypeToken TypeBearerToken
expiresInExpires in (seconds from request)900

Sample Request & Response Auth

JSON Request Example

{
  "grantType": "client_credentials"
}

JSON Response Example

{
  "responseCode": "2000000",
  "responseMessage": "Auth Success",
  "accessToken": "{GENERATED_ACCESS_TOKEN}",
  "tokenType": "BearerToken",
  "expiresIn": "900"
}

3. Inquiry VA

INQUIRY REQUEST header

ParameterDescription
AuthorizationBearer {accessToken}
X-TIMESTAMPyyyy-MM-ddTHH:mm:ss.SSSTZD format
X-SIGNATUREHMAC_SHA512 (CLIENT_SECRET, stringToProcess)
X-PARTNER-IDMitra_Id
CHANNEL-ID87899
X-EXTERNAL-IDTransaction ID from SBI
Endpoint-UrlEndpoint URL PATH (without Host & Port)
Content-Typeapplication/json

stringToProcess = HTTPMethod+":"+ EndpointUrl +":"+ AccessToken+":"+ Lowercase(HexEncode(SHA-256(minify(RequestBody))))+ ":" +TimeStamp

INQUIRY Parameters

Request Parameters

ParameterDescriptionTypeExample
partnerServiceIdKODE_SBI (left padding with spaces) [M]String(8)" 1234"
customerNoCustomer Number [M]String"xxxxxxxxxxxx"
virtualAccountNopartnerServiceId + Customer Number [M]String(20)" 1234xxxxxxxxxxxx"
inquiryRequestIdInquiry Request ID (same as X-EXTERNAL-ID) [M]String3646...

Response Parameters

ParameterDescription
responseCodeResponse Code [M]
responseMessageResponse Message [M]
virtualAccountDataJSON data, only if response is success [M]
> partnerServiceIdKODE_SBI [M]
> customerNoCustomer No [M]
> virtualAccountNoVA Number [M]
> virtualAccountNameCustomer Name [M]
> virtualAccountEmailCustomer Email [O]
> inquiryRequestIdUnique Request ID [M]
> totalAmountValue Information [M]
>> valueTotal Amount Value
>> currencyCurrency
> additionalInfoJSON additional Info [M], at least 1 item
>> labelLabel Info
>> valueValue Info

Sample Request & Response Inquiry

JSON Request Example

{
  "partnerId": "{YOUR_PARTNER_ID}",
  "customerNo": "xxxxxxxxxxxxxxxx",
  "virtualAccountNo": "xxxxxxxxxxxxxxxx",
  "inquiryRequestId": "{YOUR_REQUEST_ID}"
}

JSON Response Example

{
  "responseCode": "2002400",
  "responseMessage": "Successful",
  "virtualAccountData": {
    "virtualAccountNo": "xxxxxxxxxxxxxxxx",
    "virtualAccountName": "John Doe",
    "customerNo": "xxxxxxxxxxxxxxxx",
    "totalAmount": {
      "value": "3200000.00",
      "currency": "IDR"
    },
    ...
  }
}

Inquiry Response Codes

HTTPCodeMessageDescription
2002002400SuccessNormal Inquiry Response
4004002401Invalid Field FormatInvalid Field Format
4014012400Unauthorized AccessUnauthorized Access
4044042412Bill not foundBiller cannot find billing info
4044042414Bill already paidWhen VA already paid
5005002400General ErrorGeneral Error
5045042400TimeoutTimeout

4. Payment VA

PAYMENT REQUEST header

ParameterDescription
AuthorizationBearer {accessToken}
X-TIMESTAMPyyyy-MM-ddTHH:mm:ss.SSSTZD format
X-SIGNATUREHMAC_SHA512 (CLIENT_SECRET, stringToProcess)
X-PARTNER-IDMitra_Id
CHANNEL-ID87899
X-EXTERNAL-IDTransaction ID from SBI
Endpoint-UrlEndpoint URL PATH
Content-Typeapplication/json

PAYMENT Parameters

Request Parameters

ParameterDescription
partnerServiceIdKODE_SBI (left padding with spaces) [M]
customerNoCustomer Number [M]
trxDateTimeTransaction DateTime (same as AUTH) [M]
paidAmountPaid Amount JSON (value & currency) [M]
virtualAccountNopartnerServiceId + Customer Number [M]
paymentRequestIdPayment Request ID (same as X-EXTERNAL-ID) [M]

Response Parameters

ParameterDescription
responseCodeResponse Code [M]
responseMessageResponse Message [M]
virtualAccountDataJSON data, only if response is success [M]

Sample Request & Response Payment

JSON Request Example

{
  "partnerServiceId": "{YOUR_PARTNER_ID}",
  "paymentRequestId": "{REQUEST_ID}",
  "trxDateTime": "2024-12-24T11:18:56+07:00",
  "paidAmount": {
    "currency": "360",
    "value": "3201000"
  },
  "customerNo": "xxxxxxxxxxxxxxxx",
  "virtualAccountNo": "xxxxxxxxxxxxxxxx",
  ...
}

JSON Response Example

{
  "responseCode": "2002500",
  "responseMessage": "Successful",
  "virtualAccountData": {
    "partnerServiceId": "{YOUR_PARTNER_ID}",
    "paymentRequestId": "{REQUEST_ID}",
    "virtualAccountName": "John Doe",
    "paidAmount": "3201000",
    "customerNo": "xxxxxxxxxxxxxxxx",
    "virtualAccountNo": "xxxxxxxxxxxxxxxx",
    ...
  }
}

Payment Response Codes

HTTPCodeMessageDescription
2002002500SuccessNormal Payment Response
4004002501Invalid Field FormatInvalid Field Format
4014012500Unauthorized AccessUnauthorized Access
4044042513Payment Amount not validPayment amount is not valid
5005002500General ErrorGeneral Error
5045042500TimeoutTimeout. Fund will be suspended