Skip to main content

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

ParameterTipeMandatoriKeteranganContoh
Content-TypestringJenis mediaapplication/json
X-TIMESTAMPstringISO-8601 timestamp2022-09-16T13:00:00+07:00
X-SIGNATUREstringSignature SHA256withRSA-
X-CLIENT-KEYstringClient Key dari dashboardDXXXX

Signature Formula:

stringToSign = ClientKey + "|" + Timestamp
signature = SHA256withRSA(PrivateKey, stringToSign)

Request Body

ParameterTipeMandatoriKeteranganContoh
grantTypestringNilai harus client_credentialsclient_credentials

Response Code

CodeMessageKeterangan
2007300SuccessfulBerhasil mendapatkan access token
4007301Invalid Field Format grantTypeFormat field salah
4007302Invalid Mandatory Field grantTypeField wajib tidak ada
4007302Invalid Client Key or Timestamp or SignatureKredensial tidak valid
4017300Invalid Client KeyClient key salah
4017300Invalid SignatureSignature 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

ParameterTipeMandatoriKeterangan
Content-Typestringapplication/json
X-TIMESTAMPstringISO-8601
X-SIGNATUREstringSignature
X-EXTERNAL-IDstring(64)Request ID unik
CHANNEL-IDstringDOITPAY
AuthorizationstringBearer Token

Request Body

ParameterTipeMandatoriKeterangan
namestringNama merchant
business_namestringNama 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

ParameterTipeDefaultKeterangan
pageinteger1Nomor halaman
limitinteger10Jumlah data per halaman
searchstring-Pencarian nama merchant

Response Code Summary

CodeKeterangan
200XX00Request berhasil
400XX01Invalid field format
400XX02Missing mandatory field
401XX00Unauthorized signature
401XX01Invalid access token
500XX00Kesalahan sistem Doitpay