Skip to main content

Kartu Kredit

SNAP API

Integrasi Kartu Kredit

Metode pembayaran Kartu Kredit (Credit Card) dari Winpay mendukung transaksi kartu kredit/debit online secara aman, cepat, dan real-time menggunakan standar SNAP BI via SNAP API.

Transaksi Kartu Kredit

1. Payment (Create Kartu Kredit Payment)

POST/v1.0/debit/payment-host-to-hostService Code: 54

Service ini digunakan untuk membuat transaksi pembayaran Kartu Kredit.

Payload Request

Nama FieldTipe DataWajibDeskripsi
partnerReferenceNoStringYNomor transaksi
Length: 5-50
Karakter yang Diizinkan: huruf (a-z, A-Z), angka (0-9), garis bawah (_) dan tanda hubung (-)
amountObjectYObject amount
amount.valueStringYNilai transaksi
Length: 1-12
Allowed Chars: 0-9
amount.currencyStringYKode mata uang
Length: 3
Allowed Value: IDR
urlParamArrayYArray url
urlParam.urlStringYUrl callback
urlParam.typeStringYTipe callback
Allowed Value: PAY_NOTIFY dan PAY_RETURN
urlParam.isDeeplinkStringYFlag untuk menentukan apakah url callback merupakan deeplink atau tidak
Allowed Value: N
validUpToStringYWaktu transaksi berakhir
Format: YYYY-MM-DDTHH:mm:ssZ (ISO8601)
Harus lebih dari 1 menit dan maksimal 3 bulan dari waktu request
additionalInfoObjectYObject additionalInfo
additionalInfo.channelStringYChannel Kartu Kredit
Allowed Value: CC
additionalInfo.customerPhoneStringYNomor telepon customer
additionalInfo.customerNameStringYNama customer
Lenght: 5-25
Karakter yang diizinkan: huruf (a-z, A-Z), angka (0-9), tanda hubung (-), dan spasi (\s)
{
"partnerReferenceNo": "WP-TESTING-KK-002",
"amount": {
"value": "10000",
"currency": "IDR"
},
"urlParam": [
{
"url": "https://test1.bi.go.id/v1/test",
"type": "PAY_NOTIFY",
"isDeeplink": "N"
},
{
"url": "https://test1.bi.go.id/v1/test",
"type": "PAY_RETURN",
"isDeeplink": "N"
}
],
"validUpTo": "2024-11-14T14:59:11+07:00",
"additionalInfo": {
"channel": "CC",
"customerPhone": "0895633156874",
"customerName": "Delina Prasetya"
}
}

Response Payload

ParameterTipe DataDeskripsi
responseCodeStringKode response
responseMessageStringPesan response
partnerReferenceNoStringNomor transaksi
appRedirectUrlStringUrl deeplink
webRedirectUrlStringUrl redirect
additionalInfoObjectObject response
contractIdStringNomor identifikasi transaksi yang dihasilkan di sistem Winpay
expiredTimeStringKartu Kredit expiration in ISO8601 format
channelStringChannel Kartu Kredit
instructionsArrayArray of payment instructions
{
"responseCode": "2005400",
"responseMessage": "Success",
"partnerReferenceNo": "WP-TESTING-KK-002",
"appRedirectUrl": "",
"webRedirectUrl": "https://sandbox-cc.bmstaging.id/inv/1de9025ad363fceba004e89b46687c2f67a4cc57f2fd1a72680b4357a08e06c3",
"additionalInfo": {
"contractId": "cc78f3c08e-b051-4db7-bd94-a958a7d69c5b",
"expiredTime": "2024-11-14T14:59:11+07:00",
"channel": "CC",
"instructions": []
}
}

List Response Codes

Kode ResponPesan ResponDeskripsi
2005400Success
4005400Bad RequestKegagalan request umum, termasuk kegagalan saat memproses pesan
4005401Invalid field format { field name }
4005402Invalid mandatory field {field name}
4015400Invalid signatureX-Signature salah
4045416Partner not foundX-Partner-ID tidak terdaftar
4095400Cannot use same X-EXTERNAL-ID in same dayX-External-ID sudah pernah digunakan di hari yang sama
4095401Duplicate partnerReferenceNopartnerReferenceNo sudah pernah digunakan
5005400General ErrorKesalahan umum
5005401Internal Server ErrorKegagalan internal server yang tidak dikenal. Silakan coba prosesnya kembali

2. Payment Status

POST/v1.0/debit/statusService Code: 55

Service ini digunakan untuk cek status pembayaran dari Kartu Kredit.

Payload Request

Nama FieldTipe DataWajibDeskripsi
originalPartnerReferenceNoStringYNomor transaksi sesuai dengan field partnerReferenceNo pada saat create payment
Length: 5-50
Karakter yang Diizinkan: huruf (a-z, A-Z), angka (0-9), garis bawah (_) dan tanda hubung (-)
additionalInfoObjectYObject additionalInfo
additionalInfo.contractIdStringYNomor identifikasi transaksi yang dihasilkan di sistem Winpay
additionalInfo.channelStringYChannel Kartu Kredit
{
"originalPartnerReferenceNo": "WP-TESTING-KK-002",
"additionalInfo": {
"contractId": "cc78f3c08e-b051-4db7-bd94-a958a7d69c5b",
"channel": "CC"
}
}

Response Payload

ParameterTipe DataDeskripsi
responseCodeStringKode response
responseMessageStringPesan response
originalPartnerReferenceNoStringNomor transaksi
serviceCodeStringKode service
latestTransactionStatusStringStatus transaksi, transaksi berhasil atau tidak berdasarkan status ini
Length: 2
Values:
00 => Pembayaran Diterima
07 => Belum Terbayar
additionalInfoObjectObject response
contractIdStringNomor identifikasi transaksi yang dihasilkan di sistem Winpay
{
"responseCode": "2005500",
"responseMessage": "Successful",
"originalPartnerReferenceNo": "WP-TESTING-KK-002",
"serviceCode": "54",
"latestTransactionStatus": "07",
"additionalInfo": {
"channel": "CC",
"contractId": "cc78f3c08e-b051-4db7-bd94-a958a7d69c5b"
}
}

List Response Codes

Kode ResponPesan ResponDeskripsi
2005500Success
4005500Bad RequestKegagalan request umum, termasuk kegagalan saat memproses pesan
4005501Invalid field format { field name }
4005502Invalid mandatory field {field name}
4015500Invalid signatureX-Signature salah
4045501Transaction not foundpartnerReferenceNo dan contractId tidak ditemukan
4045516Partner not foundX-Partner-ID tidak terdaftar
4095500Cannot use same X-EXTERNAL-ID in same dayX-External-ID sudah pernah digunakan di hari yang sama
5005500General ErrorKesalahan umum
5005501Internal Server ErrorKegagalan internal server yang tidak dikenal. Silakan coba prosesnya kembali
5005502reqbill not foundcontractId tidak ditemukan

3. Payment Cancel

POST/v1.0/debit/cancelService Code: 57

Service ini digunakan untuk membatalkan transaksi pembayaran Kartu Kredit. Transaksi yg bisa dibatalkan hanya transaksi yang belum terbayar.

Payload Request

Nama FieldTipe DataWajibDeskripsi
originalPartnerReferenceNoStringYNomor transaksi sesuai dengan field partnerReferenceNo pada saat create payment
Length: 5-50
Karakter yang Diizinkan: huruf (a-z, A-Z), angka (0-9), garis bawah (_) dan tanda hubung (-)
reasonStringYAlasan pembatalan transaksi
additionalInfoObjectYObject additionalInfo
contractIdStringYNomor identifikasi transaksi yang dihasilkan di sistem Winpay
channelStringYChannel Kartu Kredit
{
"originalPartnerReferenceNo": "WP-TESTING-KK-002",
"reason": "Network timeout",
"additionalInfo": {
"contractId": "cc78f3c08e-b051-4db7-bd94-a958a7d69c5b",
"channel": "CC"
}
}

Response Payload

ParameterTipe DataDeskripsi
responseCodeStringKode response
responseMessageStringPesan response
additionalInfoObjectObject response
contractIdStringNomor identifikasi transaksi yang dihasilkan di sistem Winpay
{
"responseCode": "2005700",
"responseMessage": "Successful",
"additionalInfo": {
"contractId": "cce1f74b38-e689-4747-b4bd-5dd876928349"
}
}

List Response Codes

Kode ResponPesan ResponDeskripsi
2005700Success
4005700Bad RequestKegagalan request umum, termasuk kegagalan saat memproses pesan
4005701Invalid field format { field name }
4005702Invalid mandatory field {field name}
4015700Invalid signatureX-Signature salah
4045701Transaction not foundpartnerReferenceNo dan contractId tidak ditemukan
4045716Partner not foundX-Partner-ID tidak terdaftar
4095700Cannot use same X-EXTERNAL-ID in same dayX-External-ID sudah pernah digunakan di hari yang sama
5005700General ErrorKesalahan umum
5005701Internal Server ErrorKegagalan internal server yang tidak dikenal. Silakan coba prosesnya kembali
5005702reqbill not foundcontractId tidak ditemukan

Handle Payment Callback

Setelah customer melakukan pembayaran, Winpay akan mengirimkan callback ke merchant untuk memberitahukan status pembayaran. Merchant harus mengimplementasikan service untuk menerima callback dari Winpay.

Kami akan mengirimkan callback ke merchant 3x sampai merchant meresponse dengan response yang diharapkan. Namun ketika percobaan callback pertama sudah sesuai maka kami tidak akan mengirimkan callback lagi.

Callback Info

POST{yoururl}/v1.0/debit/notifyService Code: 56

Layanan callback pembayaran Kartu Kredit yang dikirimkan oleh sistem Winpay ke server Merchant.

Struktur Header

HeaderValueDeskripsi
Content-Typeapplication/json
X-Timestamp2023-08-24T17:07:05+07:00ISO8601 String
X-Partner-ID{partnerId}
X-Signature{signature}
X-External-ID{externalId}
Channel-ID{channelId}

Callback Payload

ParameterTipe DataDeskripsi
originalPartnerReferenceNoStringNomor transaksi sesuai dengan field partnerReferenceNo pada saat create payment
originalReferenceNoStringNomor referensi pembayaran Winpay, unik pertransaksi
merchantIdStringMerchant ID
amountObjectObject amount
amount.valueStringNilai transaksi
Length: 1-12
Allowed Chars: 0-9
amount.currencyStringKode mata uang
Length: 3
Allowed Value: IDR
latestTransactionStatusStringStatus transaksi, transaksi berhasil atau tidak berdasarkan status ini
00 - Success
01 - Initiated
02 - Paying
03 - Pending
04 - Refunded
05 - Canceled
06 - Failed
07 - Not found
additionalInfoObjectObject additionalInfo
additionalInfo.channelStringChannel Kartu Kredit
additionalInfo.contractIdStringNomor identifikasi transaksi yang dihasilkan di sistem Winpay
{
"originalPartnerReferenceNo": "0000000000577",
"originalReferenceNo": "36289",
"merchantId": "170041",
"amount": {
"value": "1000",
"currency": "IDR"
},
"latestTransactionStatus": "00",
"additionalInfo": {
"channel": "CC",
"contractId": "cc1baf2f8b-451b-44f0-80fb-fb68325e9c8b"
}
}

Expected Response

Response yang diharapkan dari merchant adalah sebagai berikut:

{
"responseCode": "2005600",
"responseMessage": "Successful"
}