Transaction Status Inquiry
Transaction Status Inquiry
Check a previously submitted transfer’s status against a bank or non-bank counterparty.
resp, err := transfercredit.TransactionStatusInquiryBank(ctx, transport, hb, transfercredit.TransactionStatusInquiryBankRequest{
ServiceCode: "...",
})
if err != nil {
// errors.Is(err, snap.ErrBadRequest), snap.ErrUnauthorized, etc.
}TransactionStatusInquiryBank
TransactionStatusInquiryBank calls the SNAP Transaction Status Inquiry Bank endpoint (Service Code 36, path …/{version}/transfer/status). hb must already carry every field snap.HeaderBuilder needs except Body, which TransactionStatusInquiryBank sets itself so the exact marshaled bytes are used for both signing and the wire body.
func TransactionStatusInquiryBank(ctx context.Context, t *snap.Transport, hb snap.HeaderBuilder, req TransactionStatusInquiryBankRequest) (TransactionStatusInquiryBankResponse, error)Request — TransactionStatusInquiryBankRequest
TransactionStatusInquiryBankRequest is the request body for API Transaction Status Inquiry Bank (Service Code 36). ServiceCode is the only mandatory field per the Guides tab — it points at the original transaction’s service code (e.g. “17” for Intrabank).
| Field | Type | Presence |
|---|---|---|
originalPartnerReferenceNo | string | Optional |
originalReferenceNo | string | Optional |
originalExternalId | string | Optional |
serviceCode | string | Mandatory |
transactionDate | string | Optional |
amount | *snap.Money | Optional |
additionalInfo | json.RawMessage | Optional |
Response — TransactionStatusInquiryBankResponse
TransactionStatusInquiryBankResponse is the response body for API Transaction Status Inquiry Bank — a flat structure, no nested data object. The original request fields are echoed back (Optional here regardless of their request cardinality). latestTransactionStatus is a 2-digit code: 00 Success, 01 Initiated, 02 Paying, 03 Pending, 04 Refunded, 05 Canceled, 06 Failed, 07 Not found.
| Field | Type | Presence |
|---|---|---|
responseCode | string | Mandatory |
responseMessage | string | Mandatory |
originalPartnerReferenceNo | string | Optional |
originalReferenceNo | string | Optional |
originalExternalId | string | Optional |
serviceCode | string | Optional |
transactionDate | string | Optional |
amount | *snap.Money | Optional |
beneficiaryAccountNo | string | Mandatory |
beneficiaryBankCode | string | Optional |
previousResponseCode | string | Optional |
referenceNumber | string | Mandatory |
sourceAccountNo | string | Mandatory |
transactionId | string | Optional |
latestTransactionStatus | string | Mandatory |
transactionStatusDesc | string | Optional |
additionalInfo | json.RawMessage | Optional |
TransactionStatusInquiryNonBank
TransactionStatusInquiryNonBank calls the SNAP Transaction Status Inquiry (non-bank) endpoint (Service Code 53, path …/{version}/qr/qr-mpm-status). Despite the shared qr/ path prefix, this is its own category, separate from QR/MPM. hb must already carry every field snap.HeaderBuilder needs except Body, which TransactionStatusInquiryNonBank sets itself so the exact marshaled bytes are used for both signing and the wire body.
This is a read-only status query and carries no non-idempotency note, matching TransactionStatusInquiryBank’s precedent.
func TransactionStatusInquiryNonBank(ctx context.Context, t *snap.Transport, hb snap.HeaderBuilder, req TransactionStatusInquiryNonBankRequest) (TransactionStatusInquiryNonBankResponse, error)Request — TransactionStatusInquiryNonBankRequest
TransactionStatusInquiryNonBankRequest is the request body for API Transaction Status Inquiry (non-bank, Service Code 53) — the same 7 base fields as TransactionStatusInquiryBankRequest above, plus OriginalResponseCode, OriginalResponseMessage, SessionID, and RequestID.
| Field | Type | Presence |
|---|---|---|
originalPartnerReferenceNo | string | Optional |
originalReferenceNo | string | Optional |
originalExternalId | string | Optional |
serviceCode | string | Mandatory |
transactionDate | string | Optional |
amount | *snap.Money | Optional |
additionalInfo | json.RawMessage | Optional |
originalResponseCode | string | Optional |
originalResponseMessage | string | Optional |
sessionId | string | Optional |
requestId | string | Optional |
Response — TransactionStatusInquiryNonBankResponse
TransactionStatusInquiryNonBankResponse is the response body for API Transaction Status Inquiry (non-bank) — field-identical to TransactionStatusInquiryBankResponse, modeled as its own type since each SNAP service code gets a distinct type even when shapes match.
| Field | Type | Presence |
|---|---|---|
responseCode | string | Mandatory |
responseMessage | string | Mandatory |
originalPartnerReferenceNo | string | Optional |
originalReferenceNo | string | Optional |
originalExternalId | string | Optional |
serviceCode | string | Optional |
transactionDate | string | Optional |
amount | *snap.Money | Optional |
beneficiaryAccountNo | string | Mandatory |
beneficiaryBankCode | string | Optional |
previousResponseCode | string | Optional |
referenceNumber | string | Mandatory |
sourceAccountNo | string | Mandatory |
transactionId | string | Optional |
latestTransactionStatus | string | Mandatory |
transactionStatusDesc | string | Optional |
additionalInfo | json.RawMessage | Optional |