Skip to content
Riwayat Transaksi

Riwayat Transaksi

Riwayat Transaksi

Pencarian list, detail, dan statement atas transaksi yang sudah settle — package transactionhistory (Service Code 12-14).

resp, err := transactionhistory.TransactionHistoryList(ctx, transport, hb, transactionhistory.TransactionHistoryListRequest{
	PartnerReferenceNo: "2020102900000000000001",
	FromDateTime: "2026-09-14T10:00:00+07:00",
	ToDateTime: "2026-09-14T10:00:00+07:00",
})
if err != nil {
	// errors.Is(err, snap.ErrBadRequest), snap.ErrUnauthorized, etc.
}

TransactionHistoryList

Menampilkan daftar transaksi lampau dalam rentang tanggal (Service Code 12).

func TransactionHistoryList(ctx context.Context, t *snap.Transport, hb snap.HeaderBuilder, req TransactionHistoryListRequest) (TransactionHistoryListResponse, error)

Request — TransactionHistoryListRequest

pageSize dan pageNumber bertipe string, bukan int — standarnya mengirim keduanya sebagai angka berkutip di wire (contoh: "10").

FieldTypePresence
partnerReferenceNostringOpsional
fromDateTimestringOpsional
toDateTimestringOpsional
pageSizestringOpsional
pageNumberstringOpsional
additionalInfojson.RawMessageOpsional

Response — TransactionHistoryListResponse

Body response-nya.

FieldTypePresence
responseCodestringWajib
responseMessagestringWajib
referenceNostringOpsional
partnerReferenceNostringOpsional
detailData[]TransactionDetailOpsional
additionalInfojson.RawMessageOpsional
TransactionDetail fields

Satu entri di detailData.

FieldTypePresence
dateTimestringOpsional
amount*snap.MoneyOpsional
remarkstringOpsional
sourceOfFunds[]SourceOfFundOpsional
statusstringWajib
typestringWajib
additionalInfojson.RawMessageOpsional
SourceOfFund fields

Mendeskripsikan satu sumber dana yang dipakai untuk sebuah transaksi. source bersifat Wajib; amount berupa pointer karena hanya value/currency miliknya sendiri yang Wajib, bukan objek pembungkusnya.

FieldTypePresence
sourcestringWajib
amount*snap.MoneyOpsional

TransactionHistoryDetail

Mengambil detail lengkap satu transaksi (Service Code 13).

func TransactionHistoryDetail(ctx context.Context, t *snap.Transport, hb snap.HeaderBuilder, req TransactionHistoryDetailRequest) (TransactionHistoryDetailResponse, error)

Request — TransactionHistoryDetailRequest

FieldTypePresence
originalPartnerReferenceNostringWajib
additionalInfojson.RawMessageOpsional

Response — TransactionHistoryDetailResponse

amount dan refundAmount berupa pointer karena objek pembungkusnya sendiri Opsional, meskipun value/currency milik Money Wajib.

FieldTypePresence
responseCodestringWajib
responseMessagestringWajib
referenceNostringOpsional
partnerReferenceNostringOpsional
amount*snap.MoneyOpsional
cancelledTimestringOpsional
dateTimestringWajib
refundAmount*snap.MoneyOpsional
remarkstringOpsional
sourceOfFunds[]SourceOfFundOpsional
statusstringWajib
typestringWajib
additionalInfojson.RawMessageOpsional
SourceOfFund fields

Mendeskripsikan satu sumber dana yang dipakai untuk sebuah transaksi. source bersifat Wajib; amount berupa pointer karena hanya value/currency miliknya sendiri yang Wajib, bukan objek pembungkusnya.

FieldTypePresence
sourcestringWajib
amount*snap.MoneyOpsional

BankStatement

Mengambil daftar transaksi bergaya rekening koran (bank statement) lengkap dengan saldo berjalan (Service Code 14).

func BankStatement(ctx context.Context, t *snap.Transport, hb snap.HeaderBuilder, req BankStatementRequest) (BankStatementResponse, error)

Request — BankStatementRequest

bankCardToken dan accountNo saling eksklusif — isi tepat salah satu. Package ini tidak memaksakan aturan itu; servernya yang melakukan.

FieldTypePresence
partnerReferenceNostringOpsional
bankCardTokenstringOpsional
accountNostringOpsional
fromDateTimestringOpsional
toDateTimestringOpsional
additionalInfojson.RawMessageOpsional

Response — BankStatementResponse

Body response-nya.

FieldTypePresence
responseCodestringWajib
responseMessagestringWajib
referenceNostringOpsional
partnerReferenceNostringOpsional
balance[]BankStatementBalanceOpsional
totalCreditEntries*BankStatementEntryTotalOpsional
totalDebitEntries*BankStatementEntryTotalOpsional
hasMorestringOpsional
lastRecordDateTimestringOpsional
detailData[]BankStatementDetailOpsional
additionalInfojson.RawMessageOpsional
BankStatementBalance fields

Satu entri di balance: saldo berjalan sebelum/sesudah periode statement. Memakai BankStatementBalanceAmount, bukan Money polos, karena juga membawa dateTime.

FieldTypePresence
amountBankStatementBalanceAmountWajib
startingBalanceBankStatementBalanceAmountWajib
endingBalanceBankStatementBalanceAmountWajib
BankStatementBalanceAmount fields

Bentuk {value, currency, dateTime} yang dipakai BankStatementBalance — seperti Money, ditambah timestamp.

FieldTypePresence
valuestringWajib
currencystringWajib
dateTimestringWajib
BankStatementEntryTotal fields

Bentuk yang dipakai bersama oleh totalCreditEntries dan totalDebitEntries. numberOfEntries bertipe string, bukan int — alasannya sama seperti pageSize/pageNumber di atas.

FieldTypePresence
numberOfEntriesstringOpsional
amountsnap.MoneyWajib
BankStatementDetail fields

Satu entri di detailData: satu baris transaksi.

FieldTypePresence
detailBalance*BankStatementDetailBalanceOpsional
amount*snap.MoneyOpsional
originAmount*snap.MoneyOpsional
transactionDatestringWajib
remarkstringWajib
transactionIdstringOpsional
typestringWajib
transactionDetailStatusstringOpsional
detailInfojson.RawMessageOpsional
BankStatementDetailBalance fields

Saldo tepat sebelum (startAmount) dan sesudah (endAmount) satu transaksi.

FieldTypePresence
startAmount[]BankStatementDetailBalanceEntryOpsional
endAmount[]BankStatementDetailBalanceEntryOpsional
BankStatementDetailBalanceEntry fields

Satu entri di startAmount/endAmount.

FieldTypePresence
amount*snap.MoneyOpsional