Direct Debit BI-FAST
Direct Debit BI-FAST
Registrasi e-mandate dan pembayaran BI-FAST, beserta tipe notifikasi masuknya.
resp, err := transferdebit.DirectDebitBIFASTPayment(ctx, transport, hb, transferdebit.DirectDebitBIFASTPaymentRequest{
PartnerReferenceNo: "2020102900000000000001",
CustomerReference: "...",
BeneficiaryAccountNo: "1234567890",
BeneficiaryAccountName: "Jane Doe",
TransactionDate: "2026-09-14T10:00:00+07:00",
BankCode: "...",
SourceAccountNo: "1234567890",
SourceAccountName: "Jane Doe",
EMandateReffID: "2026-09-14T10:00:00+07:00",
})
if err != nil {
// errors.Is(err, snap.ErrBadRequest), snap.ErrUnauthorized, etc.
}DirectDebitBIFASTEMandateRegistration
DirectDebitBIFASTEMandateRegistration memanggil endpoint SNAP Registrasi e-Mandate (Service Code 70, HTTP POST). Isi hb dengan semua field kecuali Body — DirectDebitBIFASTEMandateRegistration melakukan marshal request itu sendiri dan memakai byte yang sama persis untuk signing maupun body di wire.
Operasi ini tidak idempotent dan package ini tidak melakukan retry. Bila memanggil ulang setelah gagal atau timeout, gunakan X-EXTERNAL-ID yang sama, karena deteksi duplikat di server mengacu pada header itu.
func DirectDebitBIFASTEMandateRegistration(ctx context.Context, t *snap.Transport, hb snap.HeaderBuilder, req DirectDebitBIFASTEMandateRegistrationRequest) (DirectDebitBIFASTEMandateRegistrationResponse, error)Request — DirectDebitBIFASTEMandateRegistrationRequest
DirectDebitBIFASTEMandateRegistrationRequest adalah request body untuk Registrasi e-Mandate. bankCode, sourceAccountNo, sourceAccountName, billerId, billerName, customerId, dan expiredDatetime bersifat Wajib.
| Field | Type | Presence |
|---|---|---|
partnerReferenceNo | string | Opsional |
bankCode | string | Wajib |
sourceAccountNo | string | Wajib |
sourceAccountName | string | Wajib |
maxAmount | *snap.Money | Opsional |
billerId | string | Wajib |
billerName | string | Wajib |
customerId | string | Wajib |
expiredDatetime | string | Wajib |
additionalInfo | json.RawMessage | Opsional |
Response — DirectDebitBIFASTEMandateRegistrationResponse
DirectDebitBIFASTEMandateRegistrationResponse adalah response body untuk Registrasi e-Mandate. referenceNo bersifat Kondisional — hanya muncul saat berhasil. eMandateReffId bersifat Wajib; gunakan nilai ini pada panggilan pembayaran di bawah.
| Field | Type | Presence |
|---|---|---|
responseCode | string | Wajib |
responseMessage | string | Wajib |
referenceNo | string | Opsional |
partnerReferenceNo | string | Opsional |
eMandateReffId | string | Wajib |
additionalInfo | json.RawMessage | Opsional |
DirectDebitBIFASTPayment
DirectDebitBIFASTPayment memanggil endpoint SNAP Trigger Direct Debit Transfer / Payment (Service Code 71, HTTP POST). Isi hb dengan semua field kecuali Body — DirectDebitBIFASTPayment melakukan marshal request itu sendiri.
Operasi ini tidak idempotent dan package ini tidak melakukan retry. Bila memanggil ulang setelah gagal atau timeout, gunakan X-EXTERNAL-ID yang sama, karena deteksi duplikat di server mengacu pada header itu.
func DirectDebitBIFASTPayment(ctx context.Context, t *snap.Transport, hb snap.HeaderBuilder, req DirectDebitBIFASTPaymentRequest) (DirectDebitBIFASTPaymentResponse, error)Request — DirectDebitBIFASTPaymentRequest
DirectDebitBIFASTPaymentRequest adalah request body untuk Trigger Direct Debit Transfer / Payment. eMandateReffId berasal dari panggilan e-Mandate Registration sebelumnya.
| Field | Type | Presence |
|---|---|---|
partnerReferenceNo | string | Wajib |
currency | string | Opsional |
customerReference | string | Wajib |
feeType | string | Opsional |
remark | string | Opsional |
beneficiaryAccountNo | string | Wajib |
beneficiaryAccountName | string | Wajib |
transactionDate | string | Wajib |
bankCode | string | Wajib |
sourceAccountNo | string | Wajib |
sourceAccountName | string | Wajib |
amount | *snap.Money | Opsional |
eMandateReffId | string | Wajib |
additionalInfo | json.RawMessage | Opsional |
Response — DirectDebitBIFASTPaymentResponse
DirectDebitBIFASTPaymentResponse adalah response body untuk Trigger Direct Debit Transfer / Payment. referenceNo bersifat Kondisional — hanya muncul saat berhasil.
| Field | Type | Presence |
|---|---|---|
responseCode | string | Wajib |
responseMessage | string | Wajib |
referenceNo | string | Opsional |
partnerReferenceNo | string | Opsional |
additionalInfo | json.RawMessage | Opsional |
Direct Debit BI-FAST Notification
DirectDebitBIFASTNotificationRequest setelah memverifikasinya dengan snap.ServerVerifier (lihat Verifying inbound requests), lalu balas dengan bentuk di bawah.Diterima — DirectDebitBIFASTNotificationRequest
DirectDebitBIFASTNotificationRequest adalah request body untuk Notify (Service Code 72) — callback settlement yang diterima PJP, bukan panggilan yang dilakukan package ini. Buat HTTP handler Anda sendiri untuk path ini, autentikasi panggilan masuknya dengan ServerVerifier.VerifyTransactionRequest, lalu json.Unmarshal body ke tipe ini.
originalReferenceNo, transactionStatus, eMandateReffId, sourceAccountNo, dan sourceAccountName bersifat Wajib; field lainnya Opsional.
transactionStatus, bukan
latestTransactionStatus seperti di tempat lain pada package ini — itu
penamaan asli dari standar, dipertahankan apa adanya tanpa dinormalisasi.| Field | Type | Presence |
|---|---|---|
originalReferenceNo | string | Wajib |
originalPartnerReferenceNo | string | Opsional |
originalExternalId | string | Opsional |
transactionStatus | string | Wajib |
transactionStatusDesc | string | Opsional |
eMandateReffId | string | Wajib |
sourceAccountNo | string | Wajib |
sourceAccountName | string | Wajib |
amount | *snap.Money | Opsional |
traceNo | string | Opsional |
additionalInfo | json.RawMessage | Opsional |
Handler Anda membalas dengan — DirectDebitBIFASTNotificationResponse
DirectDebitBIFASTNotificationResponse hanya berisi envelope — cuma responseCode dan responseMessage, tidak ada field lain.
| Field | Type | Presence |
|---|---|---|
responseCode | string | Wajib |
responseMessage | string | Wajib |