Bulk Cash In
Bulk Cash In
Kirim sekumpulan instruksi cash-in; hasil settlement datang sebagai notifikasi masuk, bukan response sinkron.
resp, err := transfercredit.SubmitBulkCashIn(ctx, transport, hb, transfercredit.SubmitBulkCashInRequest{
TransactionDate: "2026-09-14T10:00:00+07:00",
})
if err != nil {
// errors.Is(err, snap.ErrBadRequest), snap.ErrUnauthorized, etc.
}SubmitBulkCashIn
Memanggil endpoint SNAP Submit Bulk Cash In (Service Code 40, path …/{version}/emoney/bulk-cashin-payment). hb harus sudah membawa setiap field yang dibutuhkan snap.HeaderBuilder kecuali Body, yang diatur sendiri oleh SubmitBulkCashIn agar byte hasil marshal yang sama persis dipakai untuk signing dan wire body.
Tidak idempotent dan package ini tidak melakukan retry. Bila memanggil ulang setelah gagal/timeout, gunakan X-EXTERNAL-ID yang sama — deteksi duplikat di server mengacu pada header ini.
func SubmitBulkCashIn(ctx context.Context, t *snap.Transport, hb snap.HeaderBuilder, req SubmitBulkCashInRequest) (SubmitBulkCashInResponse, error)Request — SubmitBulkCashInRequest
TransactionDate satu-satunya field wajib di level atas.
| Field | Type | Presence |
|---|---|---|
partnerBulkId | string | Opsional |
transactionDate | string | Wajib |
currency | string | Opsional |
bulkObject | []BulkCashInItem | Opsional |
feeType | string | Opsional |
additionalInfo | json.RawMessage | Opsional |
Field BulkCashInItem
Satu entri dalam array bulkObject[] pada request Submit Bulk Cash In. AccountNumber dan PartnerReferenceNo wajib.
| Field | Type | Presence |
|---|---|---|
accountNumber | string | Wajib |
accountName | string | Opsional |
amount | *snap.Money | Opsional |
partnerReferenceNo | string | Wajib |
additionalInfo | json.RawMessage | Opsional |
Response — SubmitBulkCashInResponse
Perhatikan field-nya bulkid (huruf d kecil) — kemungkinan salah ketik di standar, tapi package ini mengikuti casing yang terdokumentasi apa adanya karena tidak ada contoh yang mengoreksinya. Response Notify Bulk Cash In di bawah memakai camelCase normal bulkId.
| Field | Type | Presence |
|---|---|---|
responseCode | string | Wajib |
responseMessage | string | Wajib |
bulkid | string | Wajib |
partnerBulkId | string | Opsional |
Notify Bulk Cash In
NotifyBulkCashInRequest setelah memverifikasinya dengan snap.ServerVerifier (lihat Verifying inbound requests), lalu balas dengan bentuk di bawah.Diterima — NotifyBulkCashInRequest
Ini adalah callback settlement yang diterima PJP, bukan panggilan dari package ini — buat HTTP handler sendiri untuk path ini, autentikasi dengan ServerVerifier.VerifyTransactionRequest, lalu json.Unmarshal body ke tipe ini. BulkID dan PartnerBulkID wajib.
| Field | Type | Presence |
|---|---|---|
bulkId | string | Wajib |
partnerBulkId | string | Wajib |
bulkObject | []BulkCashInNotificationItem | Wajib |
Field BulkCashInNotificationItem
Satu entri dalam array bulkObject[] notifikasi ini — bentuk hasil settlement, berbeda dari bentuk instruksi transfer BulkCashInItem. CustomerNumber, ReferenceNo, PartnerReferenceNo, ResponseCode, dan ResponseMessage semuanya wajib.
| Field | Type | Presence |
|---|---|---|
customerNumber | string | Wajib |
customerName | string | Opsional |
amount | *snap.Money | Opsional |
referenceNo | string | Wajib |
partnerReferenceNo | string | Wajib |
responseCode | string | Wajib |
responseMessage | string | Wajib |
additionalInfo | json.RawMessage | Opsional |
Handler Anda membalas dengan — NotifyBulkCashInResponse
BulkID dan PartnerBulkID wajib. Field bulkId-nya camelCase normal — beda dari bulkid huruf kecil pada SubmitBulkCashInResponse di atas.
| Field | Type | Presence |
|---|---|---|
responseCode | string | Wajib |
responseMessage | string | Wajib |
bulkId | string | Wajib |
partnerBulkId | string | Wajib |