Skip to content

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).

FieldTypePresence
originalPartnerReferenceNostringOptional
originalReferenceNostringOptional
originalExternalIdstringOptional
serviceCodestringMandatory
transactionDatestringOptional
amount*snap.MoneyOptional
additionalInfojson.RawMessageOptional

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.

FieldTypePresence
responseCodestringMandatory
responseMessagestringMandatory
originalPartnerReferenceNostringOptional
originalReferenceNostringOptional
originalExternalIdstringOptional
serviceCodestringOptional
transactionDatestringOptional
amount*snap.MoneyOptional
beneficiaryAccountNostringMandatory
beneficiaryBankCodestringOptional
previousResponseCodestringOptional
referenceNumberstringMandatory
sourceAccountNostringMandatory
transactionIdstringOptional
latestTransactionStatusstringMandatory
transactionStatusDescstringOptional
additionalInfojson.RawMessageOptional

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.

FieldTypePresence
originalPartnerReferenceNostringOptional
originalReferenceNostringOptional
originalExternalIdstringOptional
serviceCodestringMandatory
transactionDatestringOptional
amount*snap.MoneyOptional
additionalInfojson.RawMessageOptional
originalResponseCodestringOptional
originalResponseMessagestringOptional
sessionIdstringOptional
requestIdstringOptional

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.

FieldTypePresence
responseCodestringMandatory
responseMessagestringMandatory
originalPartnerReferenceNostringOptional
originalReferenceNostringOptional
originalExternalIdstringOptional
serviceCodestringOptional
transactionDatestringOptional
amount*snap.MoneyOptional
beneficiaryAccountNostringMandatory
beneficiaryBankCodestringOptional
previousResponseCodestringOptional
referenceNumberstringMandatory
sourceAccountNostringMandatory
transactionIdstringOptional
latestTransactionStatusstringMandatory
transactionStatusDescstringOptional
additionalInfojson.RawMessageOptional