Merchant
Public Key dan Private Key
Buat pasangan kunci RSA untuk akses API Anda. Simpan private key dengan aman dan jangan dibagikan. Public key perlu dikirimkan ke Doitpay agar Anda dapat mengakses API.
Panjang kunci yang diwajibkan adalah 2048-bit.
Contoh pembuatan RSA Key
a. Create Private Key
openssl genrsa -out rsa_private_key.pem 2048
b. Export Public Key
openssl rsa -in rsa_private_key.pem -out rsa_public_key.pem -pubout
c. PKCS#1 Encoding
Partner harus membuat signature menggunakan pkcs1_rsa_private_key.pem. Doitpay akan menggunakan rsa_public_key.pem untuk melakukan validasi signature (dan sebaliknya).
Bearer Token
Bearer Token digunakan untuk otorisasi setiap request ke API. Token ini didapatkan melalui endpoint autentikasi dengan mekanisme client credentials.
Get Token API
Method: POST
Type: application/json
Endpoint:
- Development:
https://rest.doitpay.dev/auth/v1.0/access-token/b2b - Production:
https://api.doitpay.co/auth/v1.0/access-token/b2b
Service Code: 73
Header
| Parameter | Tipe | Mandatori | Keterangan | Contoh |
|---|---|---|---|---|
| Content-Type | string | ✓ | Jenis media | application/json |
| X-TIMESTAMP | string | ✓ | ISO-8601 timestamp | 2022-09-16T13:00:00+07:00 |
| X-SIGNATURE | string | ✓ | Signature SHA256withRSA | - |
| X-CLIENT-KEY | string | ✓ | Client Key dari dashboard | DXXXX |
Signature Formula:
stringToSign = ClientKey + "|" + Timestamp
signature = SHA256withRSA(PrivateKey, stringToSign)
Request Body
| Parameter | Tipe | Mandatori | Keterangan | Contoh |
|---|---|---|---|---|
| grantType | string | ✓ | Nilai harus client_credentials | client_credentials |
Response Code
| Code | Message | Keterangan |
|---|---|---|
| 2007300 | Successful | Berhasil mendapatkan access token |
| 4007301 | Invalid Field Format grantType | Format field salah |
| 4007302 | Invalid Mandatory Field grantType | Field wajib tidak ada |
| 4007302 | Invalid Client Key or Timestamp or Signature | Kredensial tidak valid |
| 4017300 | Invalid Client Key | Client key salah |
| 4017300 | Invalid Signature | Signature salah |
Setelah token diterima, sertakan pada setiap request menggunakan header:
Authorization: Bearer <access_token>
Create Merchant
API ini digunakan untuk membuat merchant baru.
Method: POST
Path: /api/v1.0/merchant
Service Code: 10000
Header
| Parameter | Tipe | Mandatori | Keterangan |
|---|---|---|---|
| Content-Type | string | ✓ | application/json |
| X-TIMESTAMP | string | ✓ | ISO-8601 |
| X-SIGNATURE | string | ✓ | Signature |
| X-EXTERNAL-ID | string(64) | ✓ | Request ID unik |
| CHANNEL-ID | string | DOITPAY | |
| Authorization | string | ✓ | Bearer Token |
Request Body
| Parameter | Tipe | Mandatori | Keterangan |
|---|---|---|---|
| name | string | ✓ | Nama merchant |
| business_name | string | ✓ | Nama bisnis |
Example Request
{
"name": "Test Merchant",
"business_name": "Test Business"
}
Get Merchant Detail
Mengambil detail merchant berdasarkan merchant_ref.
Method: GET
Path: /api/v1.0/merchant/{merchant_ref}
Service Code: 1011
List Merchants
Mengambil daftar merchant dengan paginasi dan pencarian.
Method: GET
Path: /api/v1.0/merchant
Service Code: 1012
Query Params
| Parameter | Tipe | Default | Keterangan |
|---|---|---|---|
| page | integer | 1 | Nomor halaman |
| limit | integer | 10 | Jumlah data per halaman |
| search | string | - | Pencarian nama merchant |
Response Code Summary
| Code | Keterangan |
|---|---|
| 200XX00 | Request berhasil |
| 400XX01 | Invalid field format |
| 400XX02 | Missing mandatory field |
| 401XX00 | Unauthorized signature |
| 401XX01 | Invalid access token |
| 500XX00 | Kesalahan sistem Doitpay |