Registrasi
OVERVIEW
API Registrasi
API Registration (Registrasi) diperlukan agar Konsumen dapat melakukan pengaitan datanya untuk melakukan layanan transaksi pembayaran atau mengakses data miliknya. Data-data yang dikaitkan ini dapat beragam tergantung kebutuhan, seperti data kartu debit, kartu kredit, atau rekening.
SKENARIO PENGGUNAAN API REGISTRATION
Use Case Diagram API Card Registration (via PJP PIAS)
Use Case Diagram API Card Registration (Direct Integration)
Use Case Diagram API Account Registration
Merujuk pada use case diagram, Konsumen sebagai pemilik rekening atau kartu, dapat melakukan penautan rekening atau kartunya pada Non-PJP Pengguna Layanan, PJP AIns, dan/atau PJP PIAS untuk digunakan sebagai sumber dana dalam bertransaksi dan/atau untuk mengakses layanan lainnya seperti pengecekan saldo dan/atau pengecekan histori transaksi.
API Registrasi dapat digunakan dalam sejumlah skema sebagai berikut:
Skema 1: Indirect Integration (Konsumen – Non-PJP Pengguna Layanan / PJP AIns / PJP PIAS – PJP AIS)
Pada skema indirect integration, proses card registration dilakukan dengan cara PJP PIAS menginisiasi pembayaran sejumlah nominal tertentu. Apabila proses otorisasi yang dilakukan PJP AIS kepada Konsumen berhasil maka dapat diyakini kebenaran informasi detail kartu dan pemiliknya, sehingga dapat dilakukan card registration pada Non-PJP Pengguna Layanan, PJP AIns, dan/atau PJP PIAS. Selanjutnya, PJP PIAS menginisiasi pengembalian dana atas pembayaran (refund).
Skema 2: Direct Integration (Konsumen – Non-PJP Pengguna Layanan / PJP AIns / PJP PIAS – PJP AIS)
Pada skema direct integration, proses card registration dan account registration dilakukan dengan cara Non-PJP Pengguna Layanan, PJP AIns, atau PJP PIAS melakukan inisiasi validasi atas informasi kartu/rekening dan pemiliknya ke PJP AIS selaku penerbit kartu dan/atau rekening. Apabila proses validasi dan otorisasi yang dilakukan PJP AIS pada Konsumen berhasil, maka dapat diyakini kebenaran informasi detail kartu/rekening dan pemiliknya, sehingga dapat dilakukan card registration atau account registration pada Non-PJP Pengguna Layanan, PJP AIns, atau PJP PIAS.
Sejumlah API yang digunakan dalam skema-skema tersebut antara lain:
API Card Registration adalah layanan yang digunakan untuk mendaftarkan data kartu milik Konsumen pada Non-PJP Pengguna Layanan, PJP AIns, atau PJP PIAS. Kartu milik Konsumen tersebut diterbitkan oleh PJP AIS dan menjadi sumber dana Konsumen dalam bertransaksi dan/atau untuk mengakses layanan lainnya. API ini dapat disediakan oleh PJP yang melakukan registrasi kartu. Dalam hubungan bisnisB2Cdiperlukan proses verifikasi untuk memastikan kebenaran data konsumen.
Dalam rangka melakukan validasi, dapat menggunakan mekanisme 3D Secure atau mekanisme validasi lainnya yang ditetapkan oleh penerbit kartu.
API Card Registration Inquiry dapat digunakan untuk menampilkan data kartu yang sudah diregistrasikan pada Non-PJP Pengguna Layanan, PJP AIns, atau PJP PIAS. Inquiry dapat dilakukan dengan memberikan informasi pengenal Konsumen.
API Verify OTP merupakan API yang digunakan untuk melakukan verifikasi OTP baik untuk registrasi kartu. Verifikasi OTP ini dilakukan khususnya untuk hubungan yang melibatkan Konsumen untuk memastikan kebenaran data Konsumen yang melakukan registrasi. API ini dapat disediakan oleh PJP AIS yang menerbitkan kartu. API Verify OTP juga bisa digunakan untuk API Pembayaran yang menggunakan sequence OTP.
API Card Registration Unbinding digunakan untuk melakukan penghapusan data kartu milik Konsumen yang telah diregistrasikan pada Non-PJP Pengguna Layanan, PJP AIns, atau PJP PIAS. Penghapusan data kartu dilakukan dengan memasukkan data kartu yang akan dihapuskan penautannya.
API Account Creation dapat digunakan oleh Konsumen untuk pembuatan akun pada PJP AIS melalui PJP AIns, PJP PIAS, dan/atau Non-PJP Pengguna Layanan. API ini digunakan dalam hubungan B2C (Business to Customer).
API Account Binding adalah layanan yang digunakan untuk mendaftarkan data akun yang diterbitkan oleh PJP AIS yang menjadi sumber dana transaksi atau dalam rangka mengakses layanan lainnya oleh Konsumen pada PJP AIns dan/atau PJP PIAS. API ini digunakan dalam B2C (Business to Customer). Dalam hubungan bisnisB2Cdiperlukan proses verifikasi/otentikasi untuk memastikan kebenaran data Konsumen.
API Account Binding Inquiry dapat digunakan untuk menampilkan data rekening yang sudah diregistrasikan pada Non-PJP Pengguna Layanan, PJP AIns, dan/atau PJP PIAS. Inquiry dapat dilakukan dengan memberikan informasi pengenal konsumen.
API Account Unbinding digunakan untuk melakukan penghapusan data rekening milik Konsumen yang telah diregistrasikan pada Non-PJP Pengguna Layanan, PJP AIns, atau PJP PIAS. Penghapusan data rekening dilakukan dengan memasukkan data rekening yang akan dihapuskan penautannya.
Penyelenggaraan layanan pembayaran berbasis kartu termasuk pengelolaan datanya tunduk pada ketentuan yang diberlakukan oleh Penerbit/Prinsipal Kartu (seperti PCIDSS).
Sequence Diagram API Card Registration (via PJP PIAS)
Sequence Diagram API Card Registration (Direct Integration)
Informasi Umum
Service Code | 01 |
---|---|
Name | API Card Registration |
Version | 1.0 |
HTTP Method | POST |
Path | …/{version}/registration-card-bind |
Informasi Umum
Service Code | 02 |
---|---|
Name | API Card Registration – Set Limit |
Version | 1.0 |
HTTP Method | POST |
Path | …/{version}/registration/card-bind-limit |
Sequence Diagram API Card Registration Inquiry
Informasi Umum
Service Code | 03 |
---|---|
Name | API Card Registration Inquiry |
Version | 1.0 |
HTTP Method | GET |
Path | …/{version}/registration-card-inquiry |
Sequence Diagram API OTP Validation (Direct Integration)
Informasi Umum
Service Code | 04 |
---|---|
Name | API Verify OTP (Direct Integration) |
Version | 1.0 |
HTTP Method | POST |
Path | …/{version}/otp-verification |
Sequence Diagram API Card Registration Unbinding
Informasi Umum
Service Code | 05 |
---|---|
Name | API Card Registration Unbinding |
Version | 1.0 |
HTTP Method | POST |
Path | …/{version}/registration-card-unbind |
Sequence Diagram API Account Creation
Informasi Umum
Service Code | 06 |
---|---|
Name | API Account Creation |
Version | 1.0 |
HTTP Method | POST |
Path | .../{version}/registration-account-creation |
Sequence Diagram API Account Binding
Informasi Umum
Service Code | 07 |
---|---|
Name | API Account Binding |
Version | 1.0 |
HTTP Method | POST |
Path | .../{version}/registration-account-binding |
Sequence Diagram API Account binding inquiry
Informasi Umum
Service Code | 08 |
---|---|
Name | API Account Binding Inquiry |
Version | 1.0 |
HTTP Method | POST |
Path | .../{version}/registration-account-inquiry |
Sequence Diagram API Account Unbinding
Informasi Umum
Service Code | 09 |
---|---|
Name | API Account Unbinding |
Version | 1.0 |
HTTP Method | POST |
Path | .../{version}/registration-account-unbinding |
Informasi Umum
Service Code | 10 |
---|---|
Name | API Get Oauth URL |
Version | 1.0 |
HTTP Method | GET |
Path | ../{version}/get-auth-code |
Sequence Diagram API OTP
Informasi Umum
Service Code | 81 |
---|---|
Name | API OTP |
Version | 1.0 |
HTTP Method | POST |
Path | .../{version}/otp |
GUIDES
Spesifikasi Parameter Header dan Body API Registrasi
Request Body
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
partnerReferenceNo | String | O | 64 | Transaction identifier on partner system |
accountName | String | O | 128 | Customer’s |
full name. | ||||
cardData | Encrypted Object | Refer to Standard Symmetric Encryption on Security Standard Document section 2.1.9 | ||
bankAccountNo | String | O | 32 | Account number |
bankCardNo | String | M | 19 | Card number |
bankCardType | String | O | 2 | Type of the |
card (D – | ||||
Debit, C – | ||||
Credit, UE – Uang Electronik). | ||||
dateOfBirth | String | O | 8 | Customer’s |
date of birth | ||||
(YYYYMMD | ||||
D). | ||||
String | O | 254 | RFC 3696 Length 254 after “<” and “>” | |
expiredDatetime | Datetime | O | Format: ISO 8601 | Expiry date |
expiryDate | String | O | 4 | Card expiry date. |
Format: MMYY | ||||
identificationNo | String | O | 64 | Customer’s |
ID number | ||||
identificationType | String | O | 2 | Type of ID |
(01 - | ||||
passport, 02 – | ||||
eKTP&KTP, | ||||
03-TKTP, 04- | ||||
SIM (Driver | ||||
License), 99 – | ||||
Others) | ||||
custIdMerchant | String | M | 18 | Merchant’s customer ID |
isBindAndPay | String | O | 1 | Landing Page this value is always ‘N’ |
merchantId | String | O | 64 | Merchant identifier that is |
unique per each merchant | ||||
terminalId | String | O | 16 | identifier that is unique per |
each merchant | ||||
journeyId | String | O | 32 | An identifier to uniquly identify a journey. On the first request of the journey, this must be equal to the X-EXTERNAL-ID. |
subMerchantId | String | O | 32 | Sub merchant ID |
externalStoreId | String | O | 64 | Exkternal Store ID |
limit | decimal | O | 17,3 | Daily transaction limit |
merchantLogoUrl | String | O | 300 | Merchant’s logo URL for webview |
phoneNo | String | O | 16 | Customer’s phone number |
Format: 62xxxxxxxxxxxxx | ||||
sendOtpFlag | String | O | 3 | "YES" or "NO" to use OTP from PJSP |
type | String | O | 20 | Action type |
additionalInfo | Object | O | Additional information |
Response Body
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
responseCode | String | M | 7 | Response code |
responseMessage | String | M | 150 | Response description |
referenceNo | String | O | 64 | Transaction identifier on service provider system. |
Must be filled upon successful transaction | ||||
partnerReferenceNo | String | O | 64 | Transaction identifier on service consumer system |
bankCardToken | String | M | 128 | Card token |
for payment. | ||||
chargeToken | String | O | 40 | string code for verification OTP |
randomString | String | O | 16 | Random String to generate validation for webview |
tokenExpiryTime | String | O | 25 | Time when |
the token will be expired. Time when | ||||
the token will | ||||
be expired. | ||||
Format: ISO-8601 | ||||
additionalInfo | Object | O | Additional information |
Request Body
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
partnerReferenceNo | String | O | 64 | Transaction identifier on partner system |
bankAccountNo | String | O | 32 | Account number |
bankCardNo | String | O | 19 | Card number |
limit | decimal | O | 17,3 | Daily transaction limit |
bankCardToken | String | M | 128 | Card token |
for payment. | ||||
otp | String | O | 8 | OTP Code / Passcode |
additionalInfo | Object | O | Additional information |
Response Body
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
responseCode | String | M | 7 | Response code |
responseMessage | String | M | 150 | Response description |
referenceNo | String | O | 64 | Transaction identifier on service provider system. |
Must be filled upon successful transaction | ||||
partnerReferenceNo | String | O | 64 | Transaction identifier on service consumer system |
additionalInfo | Object | O | Additional information |
Request Body
Parameter | Parameter Type | Data Type | Mandatory | Length | Description |
---|---|---|---|---|---|
custIdMerchant | Path param | String | M | 18 | Merchant’s customer ID |
Response Body
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
responseCode | String | M | 7 | Response code |
responseMessage | String | M | 150 | Response description |
accountList | Array of Objects | - | ||
accountData | Object | - | ||
accountId | String | O | 16 | Account ID |
createdDate | String | O | 26 | Creation date |
credentialNo | String | O | 16 | Credential number |
credentialType | String | O | 2 | Credential type |
maxLimit | String | O | 6 | Maximum limit |
status | String | O | 4 | status |
additionalInfo | Object | O | Additional information |
Request Body
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
originalPartnerReferenceNo | String | O | 64 | Transaction identifier on service consumer system |
originalReferenceNo | String | O | 64 | Transaction identifier on service provider system |
action | String | O | 10 | action |
merchantId | String | O | 64 | Merchant ID |
otp | String | O | 8 | OTP Code / Passcode |
chargeToken | String | O | 40 | OTP string code that is to be verified with the passcode obtained by the user |
type | String | O | 20 | Action type |
additionalInfo | Object | O | Additional information |
Response Body
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
responseCode | String | M | 7 | Response code |
responseMessage | String | M | 150 | Response description |
originalReferenceNo | String | O | 64 | Transaction identifier on service provider system that echo from request. |
originalPartnerReferenceNo | String | O | 64 | Transaction identifier on service consumer system |
accountNo | String | O | 11 | Customer’s account number |
bankCardToken | String | O | 128 | Card token |
for payment | ||||
cardPan | String | O | 16 | Card number |
customerId | String | O | 45 | Customer’s identification |
String | O | 254 | RFC 3696 Length 254 after “<” and “>” | |
expiredDatetime | String | O | 25 | Expired time |
expiryDate | String | O | 4 | Card expiry date. |
Format: MMYY | ||||
identificationNo | String | O | 64 | registered national id number on bank account |
linkageToken | String | O | 204 | Token used for |
PIN redirection | ||||
API | ||||
phoneNo | String | O | 16 | Customer’s phone number. |
Format: 62xxxxxxxxxxxxx | ||||
qParamsURL | String | O | 100 | Webview URL to set PIN |
process | ||||
qParams | Object | O | - | Params used to |
set PIN | ||||
identification | ||||
action | String | O | 10 | Action type OTP |
sendOtpFlag | String | O | 3 | Flag of using PJSP’s OTP or not. (“YES” or “NO”) |
subscribeDatetime | String | O | 25 | Subscription time |
tokenExpiryTime | String | O | 25 | Time when |
the token will | ||||
be expired. | ||||
transactionTimestamp | String | O | 25 | Random String to generate validation for webview |
additionalInfo | Object | O | Additional information |
Request Body
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
partnerReferenceNo | String | O | 64 | Transaction identifier on service consumer system |
token | String | M | 128 | This is an alphanumeric field which contains the |
payment token used in a transaction. This field is used during setting token daily limit, purchase, and delete token. | ||||
This token represent token number of card or token. | ||||
bankCardNo | String | O | 19 | Card number of the cardholder |
type | String | O | 20 | Request type. |
Example: subscribe, unsubscribe, check OTP | ||||
part | String | O | 64 | Merchant identifier that is |
unique per each merchant | ||||
merchantId | String | O | 64 | Merchant identifier that is |
unique per each merchant | ||||
subMerchantId | String | O | 32 | Sub merchant ID |
terminalId | String | O | 16 | identifier that is unique per |
each merchant | ||||
tokenRequestorId | String | O | 15 | An identifier to uniquely identify the token requestor. |
journeyID | String | O | 32 | An identifier to uniquly identify a journey. On the first request of the journey, this must be equal to the X-EXTERNAL-ID. |
transactionDate | Int | O | 8 | date of |
transaction. | ||||
Format: YYYYMMDD | ||||
ISO 8601 | ||||
additionalInfo | Object | O | Additional information |
Response Body
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
responseCode | String | M | 7 | Response code |
responseMessage | String | M | 150 | Response description |
referenceNo | String | O | 64 | Transaction identifier on service provider system. Must be filled upon successful transaction |
partnerReferenceNo | String | O | 64 | Transaction identifier on service consumer system |
message | String | O | 255 | Response message |
customerId | String | O | 45 | Customer ID |
unsubscribeDate | Datetime | O | Unsubscribe date. | |
Format: ISO 8601 | ||||
additionalInfo | Object | O | Additional information |
Request Body
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
partnerReferenceNo | String | O | 64 | Transaction identifier on service consumer system |
countryCode | String | O | 2 | Requestor’s country code |
customerId | String | O | 45 | account ID of the customer |
deviceInfo | Object | O | - | |
os | String | O | 40 | Device’s OS |
osVersion | String | O | 40 | Device’s OS version |
model | String | O | 40 | Device’s model |
manufacturer | String | O | 40 | Device’s manufacturer |
String | O | 254 | RFC 3696 Length 254 after “<” and “>” | |
lang | String | O | 8 | language support parameter |
locale | String | O | 5 | Locale and language that customer selected in app |
name | String | O | 128 | User’s name |
onboardingPartner | String | O | 8 | Onboarding partner of the customer |
phoneNo | String | O | 16 | User’s phone number. |
Format: 62xxxxxxxxxxxxx | ||||
redirectUrl | String | O | 2048 | Merchant call back URL |
scopes | String | O | 256 | The scopes of the authorization |
seamlessData | String | O | 512 | the structure for the mobile and verification information,the value should be URLencoded. |
seamlessSign | String | O | 512 | the signature data for the seamleassData, the value should be URLencoded |
state | String | O | 32 | state |
merchantId | String | O | 64 | Merchant identifier that is |
unique per each merchant | ||||
subMerchantId | String | O | 32 | Sub merchant ID |
terminalType | Object | O | 32 | Indicates the source terminal type and how the redirect will happen |
additionalInfo | Object | O | Additional information |
Response Body
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
responseCode | String | M | 7 | Response code |
responseMessage | String | M | 150 | Response description |
referenceNo | String | C | 64 | Transaction identifier on service provider system. Must be filled upon successful transaction |
partnerReferenceNo | String | O | 64 | Transaction identifier on service consumer system |
authCode | String | O | 64 | the auth code used to get accessToken and agreementToken |
apiKey | Numeric | O | N/A | Customer ID |
accountId | String | O | 32 | User’s account id |
state | String | O | 32 | state |
additionalInfo | Object | O | Additional information |
Request Body
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
partnerReferenceNo | String | O | 64 | Transaction identifier on service consumer system |
action | String | O | 10 | Action type for OTP |
additionalData | Object | O | - | |
userId | String | O | 20 | User ID of the card holder |
String | O | 254 | RFC 3696 Length 254 after “<” and “>” | |
postalAddress | String | O | 99 | Postal address of the user |
authCode | String | O | 64 | An authorization code which the caller can used to obtain an access token. |
grantType | String | O | 64 | The accessToken could be granted by authCode or refreshToken. |
isBindAndPay | String | O | 1 | Landing Page this value is always ‘N’ |
lang | String | O | 8 | Initiate language |
locale | String | O | 5 | Locale and language that customer selected in app |
merchantId | String | M | 64 | Merchant identifier that is |
unique per each merchant | ||||
subMerchantId | String | O | 32 | Sub merchant ID |
msisdn | String | O | 15 | Phone number to be binded |
otp | String | O | 8 | OTP Value |
phoneNo | String | O | 16 | User’s phone number. |
Format: 62xxxxxxxxxxxxx | ||||
platformType | String | O | 4 | Merchant |
platform type | ||||
(App, PC, or | ||||
mobile web) | ||||
redirectUrl | String | O | 2048 | Redirect URL |
For Agreement | ||||
page or PIN | ||||
page | ||||
referenceId | String | O | 36 | Reference Id |
from previous | ||||
Generate OTP | ||||
refreshToken | String | O | 64 | Refresh token, which is used to refresh the access token. |
successParams | Object | O | - | |
accountId | string | O | 36 | account ID given to the user |
terminalId | String | O | 16 | Terminal identifier |
tokenRequestorId | String | O | 15 | Token Requestor ID |
additionalInfo | Object | O | Additional information |
Response Body
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
responseCode | String | M | 7 | Response code |
responseMessage | String | M | 150 | Response description |
referenceNo | String | C | 64 | Transaction identifier on service provider system. Must be filled upon successful transaction |
partnerReferenceNo | String | O | 64 | Transaction identifier on service consumer system |
accountToken | String | O | 128 | Account Token for Payment |
accessTokenInfo | Object | O | - | |
accessToken | String | O | 32 | Access token |
expiresIn | String | O | 25 | Datetime of token expiration. |
Format: ISO 8601 | ||||
refreshToken | String | O | 64 | Refresh token, which is used to refresh the access token. |
reExpiresIn | String | O | 25 | Datetime of refresh token expiration. |
Format: ISO 8601 | ||||
tokenStatus | String | O | 25 | Status of token |
linkId | String | O | 24 | Identifier provided at the time of linking |
nextAction | String | O | 255 | redirect the user to this url forauthentication |
linkageToken | String | O | 204 | Token used for |
PIN redirection | ||||
API | ||||
params | Object | O | - | Params used for |
set PIN | ||||
identification | ||||
action | String | O | 10 | Action type OTP |
pinWebViewUrl | String | O | 100 | URL for set PIN |
process | ||||
redirectToDeeplink | String | O | 255 | redirect the user to this deeplink in app for authentication. This is only valid in case of App Redirection Flow |
redirectUrl | String | O | 2048 | Redirect URL |
for | ||||
Agreement | ||||
page or PIN | ||||
page | ||||
userInfo | Object | O | - | |
publicUserId | String | O | 20 | User ID |
additionalInfo | Object | O | Additional information |
Request Body
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
partnerReferenceNo | String | O | 64 | Transaction identifier on service consumer system |
additionalInfo | Object | O | Additional information |
Response Body
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
responseCode | String | M | 7 | Response code |
responseMessage | String | M | 150 | Response description |
referenceNo | String | C | 64 | Transaction identifier on service provider system. Must be filled upon successful transaction |
partnerReferenceNo | String | O | 64 | Transaction identifier on service consumer system |
accountCurrency | String | O | 3 | Currency of registered Account |
accountName | String | O | 50 | Registered account name |
accountNo | String | O | 13 | Registered account number |
accountTransactionLimit | Numeric | O | 19,2 | Max debit amount |
endDatePeriod | String | O | 10 | Binding end period. |
Format: YYYY-MM-DD | ||||
startDatePeriod | String | O | 10 | Binding start period. |
Format: YYYY-MM-DD | ||||
additionalInfo | Object | O | Additional information |
Request Body
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
partnerReferenceNo | String | O | 64 | Transaction identifier on service consumer system |
linkId | String | O | 24 | Identifier provided at the time of linking |
merchantId | String | M | 64 | Merchant identifier that is |
unique per each merchant | ||||
subMerchantId | String | O | 32 | Sub merchant ID |
tokenId | String | O | 128 | Access Token |
ID | ||||
additionalInfo | Object | O | Additional information |
Response Body
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
responseCode | String | M | 7 | Response code |
responseMessage | String | M | 150 | Response description |
referenceNo | String | C O | 64 | Transaction identifier on service provider system. Must be filled upon successful transaction |
partnerReferenceNo | String | O | 64 | Transaction identifier on service consumer system |
merchantId | String | O | 64 | Merchant identifier that is |
unique per each merchant | ||||
subMerchantId | String | O | 32 | Sub merchant ID |
linkId | String | O | 24 | Identifier provided at the time of linking |
unlinkResult | String | O | 64 | Result of unlinking process |
additionalInfo | Object | O | Additional information |
Request Body
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
redirectUrl | String | M | 256 | URL yang digunakan sebagai callback setelah proses getAuthCode berhasil. |
scopes | List |
M | 256 | Scope akses dari authorization yang di inginkan. |
state | String | M | 32 | Random string untuk keperluan perlindungan terhadap CSRF |
merchantId | String | O | 64 | Merchant identifier that is |
unique per each merchant | ||||
subMerchantId | String | O | 32 | Sub merchant ID |
lang | String | O | 2 | Kode Bahasa yang layanan. ISO 639-1 |
allowRegistration | Boolean | O | If value equals true, provider may enable registration process during binding. | |
Default true. | ||||
seamlessData | String | O | 512 | Data yang diperuntukan untuk mempercepat proses otentikasi |
mobileNumber | String | O | 18 | Nomor telpon pengguna, apabila field ini terisi maka user wajin login dengan nomor yang sudah disertakan |
verifiedTime | String | O | ISO-8601 | Value yang menyatakan bahwa nomor ponsel yang sudah disertakan dalam seamless data sudah diverifikasi kepemilikannya dan tidak memerlukan verifikasi OTP oleh pihak penyedia. Validitas dari verifikasi ini hanya 10 menit. |
externalUid | String | O | 32 | ID milik user pada aplikasi partner |
deviceId | String | O | 32 | Device ID milik User |
seamlessSign | String | C | 512 | Signature dari seamless data yang disertakan. |
Cara menyertakan seamless data:
seamlessData = URLEncode({“mobileNumber”=”62822999999”})
Cara menyertakan seamlessSign
seamlessSign = URLEncode(sign(seamlessData))
- Partner menggukan private key untuk membuat seamless sign, sedangakan pihak penyedia akan menggukan publick key milik partner untuk proses verifikasi.
- Jika proses verifikasi gagal, maka seamless data akan diabaikan.
- Charset dari URL Encode menggunakan UTF-8
Konstruksi URL:
../{version}/get-auth-code?state=<RANDOM_UNIQUE>&scopes=QUERY_BALANCE,PUBLIC_ID&redirectUrl=<MERCHANT_OAUTH_CALLBACK_URL>&seamlessData=<SEAMLESS_DATA>&seamlessSign=<SIGNATURE>
Response Body
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
responseCode | String | M | 7 | Response code |
responseMessage | String | M | 150 | Response description |
authCode | S | M | 256 | Authcode yang dapat ditukarkan dengan access token pada API account binding |
state | String | ME | 32 | Random string untuk keperluan perlindungan terhadap CSRF |
Request Body
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
partnerReferenceNo | String | O | 64 | Transaction identifier on partner system |
journeyID | String | M | 32 | An identifier to uniquly identify a journey. On the first request of the journey, this must be equal to the X-EXTERNAL-ID. |
merchantId | String | O | 64 | Merchant ID |
subMerchant | String | O | 32 | Sub merchant ID |
externalStoreId | String | O | 64 | External Store ID |
trxDateTime | Date | O | 25 | PJP internal system datetime with timezone, which follows the ISO-8601 standard |
bankCardToken | String | M | 128 | Card token |
for payment. | ||||
otpTrxCode | String | 2 | ||
otpReasonCode | String | O | 2 | |
otpReasonMessage | String | O | 30 | |
additionalInfo | Object | O | Additional information |
Response Body
Parameter | Data Type | Mandatory | Length | Description |
---|---|---|---|---|
responseCode | String | M | 7 | Response code |
responseMessage | String | M | 150 | Response description |
referenceNo | String | O | 64 | Transaction identifier on service provider system. |
partnerReferenceNo | String | O | 64 | Transaction identifier on service consumer system |
chargeToken | String | M | 40 | string code for verification OTP |
additionalInfo | Object | O | Additional information |
CODE SNIPPETS
Code Snippets API Registrasi
Sample Request
POST …/v1.0/registration-card-bind HTTP/1.2
Content-type: application/json
Authorization: Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a"
X-TIMESTAMP: 2020-12-17T10:55:00+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
ORIGIN: www.hostname.com
X-PARTNER-ID: 82150823919040624621823174737537
X-EXTERNAL-ID: 41807553358950093184162180797837
X-IP-ADDRESS: 172.24.281.24
X-DEVICE-ID: 09864ADCASA
X-LATITUDE: -6.1617169
X-LONGITUDE: 106.6643946
CHANNEL-ID: 95221
{
"partnerReferenceNo":"2020102900000000000001",
"accountName":"John Doe",
"cardData":"UIdFgZi9BhWx9Scbz/YK+JiMsPiKyhAFDaIRQe0wxMZYhu1rn73cQfgRGllEJjZlsoevALAzajD6qm2mG47kwsjN9tcArzlVAYS/jVflUn+zkiaMKuIxWQYJbB6MpET8Y0PjYB4aEkCvgxjP1wBcQMTVisCt5J7NCHetYAY64ucgxhBNCpCC6cG+3nCIuGqriq8/7EwhjpZ11YcDWecJ8glecZSv4HfjYZIFVXlwZD9rROd6xPgdKuVYVAAH8Y0pMH/x45FouvcuTuNIYOG26/btaUIRRnpkZsfzB4LPAk6CIQ/xia0rrWBwy479iXcV58q90u1ic1j0tuultFRCPmobf4N6AF5XXoERr3TOb7bJyjwodTpeQy+myzCDDidQmkKwNWOliQJdSjI+vHSi37ZfY1jlygnmaD1vQmblIj4= [SA(1] ",
"custIdMerchant":"0012345679504",
"isBindAndPay":"N",
"merchantId":"00007100010926 ",
"terminalId":"72001126",
"journeyId":"20190329175623MTISTORE",
"subMerchantId":"310928924949487",
"externalStoreId":"000183004658",
"limit":"1000000",
"merchantLogoUrl":"https://bilba.test.com/dist/img/merchant-logo.png",
"phoneNo":"08238748728423",
"sendOtpFlag":"YES",
"type":"subcribe",
"additionalInfo":{
"deviceId":"12345679237",
"channel":"mobilephone"
}
}
Sample Response
Content-type: application/json
X-TIMESTAMP: 2020-12-17T10:55:06+07:00
{
"responseCode":"2000100",
"responseMessage":"Request has been processed successfully",
"referenceNo":"2020102977770000000009",
"partnerReferenceNo":"2020102900000000000001",
"bankCardToken":"6d7963617264746f6b656e",
"chargeToken":"abcd63617264746f6b656e",
"randomString":"g4BoEz43jfjVvAvN",
"tokenExpiryTime":"2020-12-17T11:00:00+07:00",
"additionalInfo":{
"deviceId":"12345679237",
"channel":"mobilephone"
}
}
Sample Request
POST …/v1.0/registration-card-inquiry HTTP/1.2
Content-type: application/json
Authorization: Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a"
X-TIMESTAMP: 2020-12-17T10:55:00+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
ORIGIN: www.hostname.com
X-PARTNER-ID: 82150823919040624621823174737537
X-EXTERNAL-ID: 41807553358950093184162180797837
X-IP-ADDRESS: 172.24.281.24
X-DEVICE-ID: 09864ADCASA
X-LATITUDE: -6.1617169
X-LONGITUDE: 106.6643946
CHANNEL-ID: 95221
{
"partnerReferenceNo":"2020102900000000000001",
"bankAccountNo":"93802938408123",
"bankCardNo":"3984029384023984",
"limit":"1000000",
"bankCardToken":"6d7963617264746f6b656e",
"otp":"12345678",
"additionalInfo":{
"deviceId":"12345679237",
"channel":"mobilephone"
}
}
Sample Response
Content-type: application/json
X-TIMESTAMP: 2020-12-17T10:55:06+07:00
{
"responseCode":"2000200",
"responseMessage":"Request has been processed successfully",
"referenceNo":"2020102977770000000009",
"partnerReferenceNo":"2020102900000000000001",
"additionalInfo":{
"deviceId":"12345679237",
"channel":"mobilephone"
}
}
Sample Request
GET …/v1.0/registration-card-inquiry/custIdMerchant/8a95f0026d2860f301 HTTP/1.2
Content-type: application/json
Authorization: Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a"
X-TIMESTAMP: 2020-12-17T11:43:00+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
ORIGIN: www.hostname.com
X-PARTNER-ID: 82150823919040624621823174737537
X-EXTERNAL-ID: 41807553358950093184162180797837
X-IP-ADDRESS: 172.24.281.24
X-DEVICE-ID: 09864ADCASA
X-LATITUDE: -6.1617169
X-LONGITUDE: 106.6643946
CHANNEL-ID: 95221
Sample Response
Content-type: application/json
X-TIMESTAMP: 2020-12-17T11:43:03+07:00
{
"responseCode":"2000300",
"responseMessage":"Request has been processed successfully",
"accountList":[
{
"accountData":{
"accountId":"F8FP2WQWEATXFP8K",
"createdDate":"2018-12-17T11:59:06+07:00",
"credentialNo":"************0750",
"credentialType":"DC",
"maxLimit":"800000",
"status":"ACT"
}
}
],
"additionalInfo":{
"deviceId":"12345679237",
"channel":"mobilephone"
}
}
Sample Request
POST …/v1.0/otp-verification HTTP/1.2
Content-type: application/json
Authorization: Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a"
X-TIMESTAMP: 2020-12-17T13:20:00+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
ORIGIN: www.hostname.com
X-PARTNER-ID: 82150823919040624621823174737537
X-EXTERNAL-ID: 41807553358950093184162180797837
X-IP-ADDRESS: 172.24.281.24
X-DEVICE-ID: 09864ADCASA
X-LATITUDE: -6.1617169
X-LONGITUDE: 106.6643946
CHANNEL-ID: 95221
{
"originalPartnerReferenceNo":"2020102900000000000001",
"originalReferenceNo":"2020102977770000000009",
"action":"otpLinkage",
"merchantId":"00001",
"otp":"12345678",
"chargeToken":"TOK_TKNCPPPHUVL3IJVAXZI5GG4WBEC77YZ6::ADVQ",
"type":"Subscribe",
"additionalInfo":{
"deviceId":"12345679237",
"channel":"mobilephone",
"phoneNo":"081275647382"
}
}
Sample Response
Content-type: application/json
X-TIMESTAMP: 2020-12-17T13:20:04+07:00
{
"responseCode":"2000400",
"responseMessage":"Request has been processed successfully",
"originalReferenceNo":"2020102977770000000009",
"originalPartnerReferenceNo":"2020102900000000000001",
"accountNo":"12345678910",
"bankCardToken":"6d7963617264746f6b656e",
"cardPan":"2123123123125356",
"customerId":"afhw6d7963617264746f6b656e963617264746f6b656e",
"email":"john.doe@email.com",
"expiredDatetime":"2019-02-24T14:12:25.871+07:00",
"expiryDate":"1219",
"identificationNo":"2020102020202000011001",
"linkageToken":"xswe56",
"phoneNo":"0899345678864332",
"qParamsURL":"https://setPin",
"qParams":{
"action":"otpLinkage"
},
"sendOtpFlag":"YES",
"subscribeDatetime":"2017-02-24T14:12:25.871+07:00",
"tokenExpiryTime":"2017-02-24T14:12:25.871+07:00",
"transactionTimestamp":"g4BoEz43jfjVvAvN",
"additionalInfo":{
"deviceId":"12345679237",
"channel":"mobilephone"
}
}
Sample Request
POST …/v1.0/registration-card-unbind HTTP/1.2
Content-type: application/json
Authorization: Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a"
X-TIMESTAMP: 2020-12-17T13:50:00+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
ORIGIN: www.hostname.com
X-PARTNER-ID: 82150823919040624621823174737537
X-EXTERNAL-ID: 41807553358950093184162180797837
X-IP-ADDRESS: 172.24.281.24
X-DEVICE-ID: 09864ADCASA
X-LATITUDE: -6.1617169
X-LONGITUDE: 106.6643946
CHANNEL-ID: 95221
{
"partnerReferenceNo":"2020102900000000000001",
"token":"g4JeIz43jfjVvAvNxswe56g4JeIz43jfjVvAvNxswe56g4JeIz43jfjVvAvNxswe56g4JeIz43jfjVvAvNxswe56g4JeIz43jfjVvAvNxswe56g4Jg4JeIz43jfdsEga",
"bankCardNo":"2123123123125356",
"type":"Unsubscribe",
"part":"00007100010926",
"merchantId":"00007100010926",
"subMerchantId":"23489182303312",
"terminalId":"310928924949487",
"tokenRequestorId":"7127425327776087324915228",
"journeyID":"20190329175623MTISTORE",
"transactionDate":"2020-12-17T13:50:00+07:00",
"additionalInfo":{
"deviceId":"12345679237",
"channel":"mobilephone"
}
}
Sample Response
Content-type: application/json
X-TIMESTAMP: 2020-12-17T13:50:04+07:00
{
"responseCode":"2000500",
"responseMessage":"Request has been processed successfully",
"referenceNo":"2020102977770000000009",
"partnerReferenceNo":"2020102900000000000001",
"customerId":"ae75e364134cdb2c7a4159106e38ca6b761983859dbv1",
"unsubscribeDate":"2020-12-17T13:50:04+07:00",
"additionalInfo":{
"deviceId":"12345679237",
"channel":"mobilephone"
}
}
Sample Request
POST …/v1.0/registration-account-creation HTTP/1.2
Content-type: application/json
Authorization: Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a"
X-TIMESTAMP: 2020-12-17T14:49:00+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
ORIGIN: www.hostname.com
X-PARTNER-ID: 82150823919040624621823174737537
X-EXTERNAL-ID: 41807553358950093184162180797837
X-IP-ADDRESS: 172.24.281.24
X-DEVICE-ID: 09864ADCASA
X-LATITUDE: -6.1617169
X-LONGITUDE: 106.6643946
CHANNEL-ID: 95221
{
"partnerReferenceNo":"2020102900000000000001",
"countryCode":"ID",
"customerId":"00-abcdefghijklmnopqrstuvwxyz0123456789-11",
"deviceInfo":{
"os":"IOS",
"osVersion":"1",
"model":"Iphone",
"manufacture":"Apple"
},
"email":"john.doe@email.com",
"lang":"ID",
"locale":"en_ID",
"name":"John doe",
"onboardingPartner":"GOJEKXXX",
"phoneNo":"0899345678864332",
"redirectUrl":"https://merchant.site.com/apptoken",
"scopes":"QUERY_BALANCE,QUERY_PROFILE",
"seamlessData": "{\"mobile\":\"62-882345678\",\"verifiedTime\":\"2001-07-04T12:08:56+05:30\",\"externalUid\":\"TIXxxxxxUID\",\"reqTime\":\"2001-07-04T12:08:56+05:30\",\"riskData\":{\"fuzzyDeviceId\":\"k+OrCqw7QMNxlrT3qU2m0TRYTucd+nrMH2izjtltJgLqNI2XZgEAAA\",\"terminalType\":\"APP\",\"riskFlag\":\"00110\",\"realIp\":\"123.23.12.111\"}}",
"seamlessSign" "URLEncode(BASE64(sigin( "{\"mobile\":\"62-882345678\",\"verifiedTime\":\"2001-07-04T12:08:56+05:30\",\"externalUid\":\"TIXxxxxxUID\",\"reqTime\":\"2001-07-04T12:08:56+05:30\",\"riskData\":{\"fuzzyDeviceId\":\"k+OrCqw7QMNxlrT3qU2m0TRYTucd+nrMH2izjtltJgLqNI2XZgEAAA::\",\"terminalType\":\"APP\",\"riskFlag\":\"00110\",\" realIp\":\"123.23.12.111\"}}" )))",
"state":"12345556666",
"merchantId":"00007100010926",
"subMerchantId":"310928924949487",
"terminalType":"SYSTEM",
"additionalInfo":{
"deviceId":"12345679237",
"channel":"mobilephone"
}
}
Sample Response
Content-type: application/json
X-TIMESTAMP: 2020-12-17T13:50:04+07:00
{
"responseCode":"2000600",
"responseMessage":"Request has been processed successfully",
"referenceNo":"2020102977770000000009",
"partnerReferenceNo":"2020102900000000000001",
"authCode":"g4JeIz43jfjVvAvNxswe56g4JeIz43jfjVvAvNxswe56g4JeIz43jfjVvAvNxswe56g4JeIz43jfjVvAvNxswe56g4JeIz43jfjVvAvNxswe56g4Jg4JeIz43jfdsEga",
"apiKey":"AB12-CD34-EFGHIJ567890",
"accountId":"ABCD1234-EF56-GH78-IJ90-KLMNOP123456",
"state":"12345556666",
"additionalInfo":{
"deviceId":"12345679237",
"channel":"mobilephone"
}
}
Sample Request
POST …/v1.0/registration-account-binding HTTP/1.2
Content-type: application/json
Authorization: Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a"
X-TIMESTAMP: 2020-12-18T13:43:31+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
ORIGIN: www.hostname.com
X-PARTNER-ID: 82150823919040624621823174737537
X-EXTERNAL-ID: 41807553358950093184162180797837
X-IP-ADDRESS: 172.24.281.24
X-DEVICE-ID: 09864ADCASA
X-LATITUDE: -6.1617169
X-LONGITUDE: 106.6643946
CHANNEL-ID: 95221
{
"partnerReferenceNo":"2020102900000000000001",
"action":"otpLinkage",
"additionalData":{
"userId":"John Doe",
"email":"john.doe@email.com",
"postalAddress":"134346"
},
"authCode":"4b203fe6c11548bcabd8da5bb087a83b",
"grantType":"AUTHORIZATION_CODE",
"isBindAndPay":"N",
"lang":"EN",
"locale":"en_ID",
"merchantId":"00007100010926",
"subMerchantId":"310928924949487",
"msisdn":"+62812345678901",
"otp":"34564367",
"phoneNo":"0899345678864332",
"platformType":"app",
"redirectUrl":"merchantapp://main_page",
"referenceId":"08400000814-08400000814",
"refreshToken":"201208134b203fe6c11548bcabd8da5bb087a83b ",
"successParams":{
"accountId":"ABCD1234-EF56-GH78-IJ90-KLMNOP123456"
},
"terminalId":"ID",
"tokenRequestorId":"e-commerceA",
"additionalInfo":{
"deviceId":"12345679237",
"channel":"mobilephone"
}
}
Sample Response
Content-type: application/json
X-TIMESTAMP: 2020-12-18T13:43:37+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
{
"responseCode":"2000700",
"responseMessage":"Request has been processed successfully",
"referenceNo":"2020102977770000000009",
"partnerReferenceNo":"2020102900000000000001",
"accountToken":"1Fhas7281han862=",
"accessTokenInfo":{
"accessToken":"ublicpBa869cad0990e4e17a57ecf7c5469a4b2",
"expiresIn":"2021-07-04T12:08:56+05:30",
"refreshToken":"201208134b203fe6c11548bcabd8da5bb087a83b",
"reExpiresIn":"2051-07-04T12:08:56+05:30",
"tokenStatus":"ACTIVE"
},
"linkId":"abcd1234efgh5678ijkl9012",
"nextAction":"https://gopayapi.com/validate/otp/abcd123456789",
"linkageToken":"xswe56",
"params":{
"action":"otpLinkage",
"pinWebViewUrl":"https://setPin",
"redirectToDeeplink":"https://gopayapi.com/redirect/gopay/abcd123456789"
},
"redirectUrl":" https://www.merchantapi.com/redirect/abcd123456789",
"userInfo":{
"publicUserId":"20180626111215830192DANAW3ID965200060630"
},
"additionalInfo":{
"deviceId":"12345679237",
"channel":"mobilephone"
}
}
Sample Request
POST …/v1.0/registration-account-inquiry HTTP/1.2
Content-type: application/json
Authorization: Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a"
X-TIMESTAMP: 2020-12-18T14:39:21+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
ORIGIN: www.hostname.com
X-PARTNER-ID: 82150823919040624621823174737537
X-EXTERNAL-ID: 41807553358950093184162180797837
X-IP-ADDRESS: 172.24.281.24
X-DEVICE-ID: 09864ADCASA
X-LATITUDE: -6.1617169
X-LONGITUDE: 106.6643946
CHANNEL-ID: 95221
{
"partnerReferenceNo":"2020102900000000000001",
"additionalInfo":{
"deviceId":"12345679237",
"channel":"mobilephone"
}
}
Sample Response
Content-type: application/json
X-TIMESTAMP: 2020-12-18T14:39:30+07:00
{
"responseCode":"2000800",
"responseMessage":"Request has been processed successfully",
"referenceNo":"2020102977770000000009",
"partnerReferenceNo":"2020102900000000000001",
"accountCurrency":"IDR",
"accountName":"Alen Miucic",
"accountNo":"11231271284140",
"accountTransactionLimit":"1000000",
"endDatePeriod":"2022-05-21",
"startDatePeriod":"2020-05-21",
"additionalInfo":{
"deviceId":"12345679237",
"channel":"mobilephone"
}
}
Sample Request
POST …/v1.0/registration-account-unbinding HTTP/1.2
Content-type: application/json
Authorization: Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CupvIJbU1Mmu4a11MNDZ7Sg5u9a”
X-TIMESTAMP: 2020-12-18T14:48:11+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
ORIGIN: www.hostname.com
X-PARTNER-ID: 82150823919040624621823174737537
X-EXTERNAL-ID: 41807553358950093184162180797837
X-IP-ADDRESS: 172.24.281.24
X-DEVICE-ID: 09864ADCASA
X-LATITUDE: -6.1617169
X-LONGITUDE: 106.6643946
CHANNEL-ID: 95221
{
"partnerReferenceNo":"2020102900000000000001",
"linkId":"abcd1234efgh5678ijkl9012",
"merchantId":"00007100010926",
"subMerchantId":"310928924949487",
"tokenId":"Aeox320xvijwefop10",
"additionalInfo":{
"deviceId":"12345679237",
"channel":"mobilephone"
}
}
Sample Response
Content-type: application/json
X-TIMESTAMP: 2020-12-18T14:48:30+07:00
{
"responseCode":"2000900",
"responseMessage":"Request has been processed successfully",
"referenceNo":"2020102977770000000009",
"partnerReferenceNo":"2020102900000000000001",
"merchantId":"00007100010926",
"subMerchantId":"310928924949487",
"linkId":"abcd1234efgh5678ijkl9012",
"unlinkResult":"success",
"additionalInfo":{
"deviceId":"12345679237",
"channel":"mobilephone"
}
}
Sample Request
GET …/v1.0/get-auth-code?state=WodkkwijSDs &scopes=QUERY_BALANCE,PUBLIC_ID&redirectUrl=https://domain.com/authSuccess.htm&seamlessData=%7B%22mobileNumber%22%3A%2262822999999999%22%7D&seamlessSign=gsfIUuC%2Bzs101rRFUhzz9753s9Dj4wg0EtwLwr8fMhZmCFybaCcwvAXGZ0RDxqzb9fJuFre%2Bmsi9JcwHICVx%2FB1onruQNldI4Y%2BUZqVQLgUVz1ynAa1qyyaTKliXOfy3t%2FbOhXd0QfZ3e1zbQT5
Content-type: application/json
Authorization: Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CupvIJbU1Mmu4a11MNDZ7Sg5u9a”
Authorization-Customer: Bearer fa8sjjEj813Y9JGoqwOeOPWbnt4CupvIJbU1Mmu4a11MNDZ7Sg5u9a”
X-TIMESTAMP: 2020-12-23T09:10:11+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
ORIGIN: www.hostname.com
X-PARTNER-ID: 82150823919040624621823174737537
X-EXTERNAL-ID: 41807553358950093184162180797837
X-IP-ADDRESS: 172.24.281.24
X-DEVICE-ID: 09864ADCASA
X-LATITUDE: -6.108841
X-LONGITUDE: 106.7782137
CHANNEL-ID: 95221
Sample Response
Content-type: application/json
X-TIMESTAMP: 2020-12-23T09:10:18+07:00
{
"responseCode":"2001000",
"responseMessage":"Request has been processed successfully",
"authCode":"a4sd5a4fsaf5d5f4df66ad85f4",
"state":"WodkkwijSDs"
}
Sample Request
POST …/v1.0/otp HTTP/1.2
Content-type: application/json
Authorization: Bearer gp9HjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a"
Authorization-Customer: Bearer fa8sjjEj813Y9JGoqwOeOPWbnt4CUpvIJbU1mMU4a11MNDZ7Sg5u9a"
X-TIMESTAMP: 2020-12-22T07:53:16+07:00
X-SIGNATURE: 85be817c55b2c135157c7e89f52499bf0c25ad6eeebe04a986e8c862561b19a5
ORIGIN: www.hostname.com
X-PARTNER-ID: 82150823919040624621823174737537
X-EXTERNAL-ID: 41807553358950093184162180797837
X-IP-ADDRESS: 172.24.281.24
X-DEVICE-ID: 09864ADCASA
X-LATITUDE: -6.1617169
X-LONGITUDE: 106.6643946
CHANNEL-ID: 95221
{
"partnerReferenceNo":"2020102900000000000001",
"journeyID":"20190329175623MTISTORE",
"merchantId":"00001",
"subMerchant":"310928924949487",
"externalStoreId":"124928924949487",
"trxDateTime":"2020-12-21T14:56:11+07:00",
"bankCardToken":"6d7963617264746f6b656e",
"otpTrxCode":"",
"otpReasonCode":"",
"otpReasonMessage":"",
"additionalInfo":{
"deviceId":"12345679237",
"channel":"mobilephone"
}
}
Sample Response
Content-type: application/json
X-TIMESTAMP: 2020-12-22T07:53:21+07:00
{
"responseCode":"2008100",
"responseMessage":"Request has been processed successfully",
"referenceNo":"2020102977770000000009",
"partnerReferenceNo":"2020102900000000000001",
"chargeToken":"abcd63617264746f6b656e",
"additionalInfo":{
"deviceId":"12345679237",
"channel":"mobilephone"
}
}
RESPONSES CODE
Response status merupakan informasi yang diberikan oleh service provider kepada service consumer pada response body, sebagai indikasi hasil dari pemrosesan request yang diterima.
Response status terdiri dari 2 komponen, yaitu kode (response code) dan deskripsinya (response message).
Komponen | Tipe Data | Length | Keterangan |
---|---|---|---|
responseCode | String | 7 | response code = HTTP status code + service code + case code |
responseMessage | String | 150 |
Daftar Response Code
Category | HTTP Code | Service Code | Case Code | Response Message | Description |
---|---|---|---|---|---|
Success | 200 | any | 00 | Successful | Successful |
Success | 202 | any | 00 | Request In Progress | Transaction still on process |
System | 400 | any | 00 | Bad Request | General request failed error, including message parsing failed. |
Message | 400 | any | 01 | Invalid Field Format {field name} | Invalid format |
Message | 400 | any | 02 | Invalid Mandatory Field {field name} | Missing or invalid format on mandatory field |
System | 401 | any | 00 | Unauthorized. [reason] | General unauthorized error (No Interface Def, API is Invalid, Oauth Failed, Verify Client Secret Fail, Client Forbidden Access API, Unknown Client, Key not Found) |
System | 401 | any | 01 | Invalid Token (B2B) | Token found in request is invalid (Access Token Not Exist, Access Token Expiry) |
System | 401 | any | 02 | Invalid Customer Token | Token found in request is invalid (Access Token Not Exist, Access Token Expiry) |
System | 401 | any | 03 | Token Not Found (B2B) | Token not found in the system. This occurs on any API that requires token as input parameter |
System | 401 | any | 04 | Customer Token Not Found | Token not found in the system. This occurs on any API that requires token as input parameter |
Business | 403 | any | 00 | Transaction Expired | Transaction expired |
System | 403 | any | 01 | Feature Not Allowed [Reason] | This merchant is not allowed to call Direct Debit APIs |
Business | 403 | any | 02 | Exceeds Transaction Amount Limit | Exceeds Transaction Amount Limit |
Business | 403 | any | 03 | Suspected Fraud | Suspected Fraud |
Business | 403 | any | 04 | Activity Count Limit Exceeded | Too many request, Exceeds Transaction Frequency Limit |
Business | 403 | any | 05 | Do Not Honor | Account or User status is abnormal |
System | 403 | any | 06 | Feature Not Allowed At This Time. [reason] | Cut off In Progress |
Business | 403 | any | 07 | Card Blocked | The payment card is blocked |
Business | 403 | any | 08 | Card Expired | The payment card is expired |
Business | 403 | any | 09 | Dormant Account | The account is dormant |
Business | 403 | any | 10 | Need To Set Token Limit | Need to set token limit |
System | 403 | any | 11 | OTP Blocked | OTP has been blocked |
System | 403 | any | 12 | OTP Lifetime Expired | OTP has been expired |
System | 403 | any | 13 | OTP Sent To Cardholer | initiates request OTP to the issuer |
Business | 403 | any | 14 | Insufficient Funds | Insufficient Funds |
Business | 403 | any | 15 | Transaction Not Permitted.[reason] | Transaction Not Permitted |
Business | 403 | any | 16 | Suspend Transaction | Suspend Transaction |
Business | 403 | any | 17 | Token Limit Exceeded | Purchase amount exceeds the token limit set prior |
Business | 403 | any | 18 | Inactive Card/Account/Customer | Indicates inactive account |
Business | 403 | any | 19 | Merchant Blacklisted | Merchant is suspended from calling any APIs |
Business | 403 | any | 20 | Merchant Limit Exceed | Merchant aggregated purchase amount on that day exceeds the agreed limit |
Business | 403 | any | 21 | Set Limit Not Allowed | Set limit not allowed on particular token |
Business | 403 | any | 22 | Token Limit Invalid | The token limit desired by the merchant is not within the agreed range between the merchant and the Issuer |
Business | 403 | any | 23 | Account Limit Exceed | Account aggregated purchase amount on that day exceeds the agreed limit |
Business | 404 | any | 00 | Invalid Transaction Status | Invalid transaction status |
Business | 404 | any | 01 | Transaction Not Found | Transaction not found |
System | 404 | any | 02 | Invalid Routing | Invalid Routing |
System | 404 | any | 03 | Bank Not Supported By Switch | Bank not supported by switch |
Business | 404 | any | 04 | Transaction Cancelled | Transaction is cancelled by customer |
Business | 404 | any | 05 | Merchant Is Not Registered For Card Registration Services | Merchant is not registered for Card Registration services |
System | 404 | any | 06 | Need To Request OTP | Need to request OTP |
System | 404 | any | 07 | Journey Not Found | The journeyID cannot be found in the system |
Business | 404 | any | 08 | Invalid Merchant | Merchant does not exist or status abnormal |
Business | 404 | any | 09 | No Issuer | No issuer |
System | 404 | any | 10 | Invalid API Transition | Invalid API transition within a journey |
Business | 404 | any | 11 | Invalid Card/Account/Customer [info]/Virtual Account | Card information may be invalid, or the card account may be blacklisted, or Virtual Account number maybe invalid. |
Business | 404 | any | 12 | Invalid Bill/Virtual Account [Reason] | The bill is blocked/ suspended/not found. |
Virtual account is suspend/not found. | |||||
Business | 404 | any | 13 | Invalid Amount | The amount doesn't match with what supposed to |
Business | 404 | any | 14 | Paid Bill | The bill has been paid |
System | 404 | any | 15 | Invalid OTP | OTP is incorrect |
Business | 404 | any | 16 | Partner Not Found | Partner number can't be found |
Business | 404 | any | 17 | Invalid Terminal | Terminal does not exist in the system |
Business | 404 | any | 18 | Inconsistent Request | Inconsistent request parameter found for the same partner reference number/transaction id |
It can be considered as failed in transfer debit, but it should be considered as success in transfer credit. | |||||
Considered as success: | |||||
- Transfer credit = (i) Intrabank transfer; (ii) Interbank transfer; (iii) RTGS transfer; (iv) SKNBI transfer; | |||||
- Virtual account = (i) Payment VA; (ii) Payment to VA; | |||||
- Transfer debit = (i) Refund payment; (ii) Void; | |||||
Considered as failed: | |||||
- Transfer credit = (i) Transfer to OTC; | |||||
- Transfer debit = (i) Direct debit payment; (ii) QR CPM payment; (iii) Auth payment; (iv) Capture; | |||||
Business | 404 | any | 19 | Invalid Bill/Virtual Account | The bill is expired. |
Virtual account is expired. | |||||
System | 405 | any | 00 | Requested Function Is Not Supported | Requested function is not supported |
Business | 405 | any | 01 | Requested Opearation Is Not Allowed | Requested operation to cancel/refund transaction Is not allowed at this time. |
System | 409 | any | 00 | Conflict | Cannot use same X-EXTERNAL-ID in same day |
System | 409 | any | 01 | Duplicate partnerReferenceNo | Transaction has previously been processed indicates the same partnerReferenceNo already success |
System | 429 | any | 00 | Too Many Requests | Maximum transaction limit exceeded |
System | 500 | any | 00 | General Error | General Error |
System | 500 | Any | 01 | Internal Server Error | Unknown Internal Server Failure, Please retry the process again |
System | 500 | Any | 02 | External Server Error | Backend system failure, etc |
System | 504 | any | 00 | Timeout | timeout from the issuer |
APLIKASI PENGUJIAN
Akses Terbatas, Mohon Sign Up untuk Dapat Mengakses Halaman Ini