List loan statements
/loan-statementscurl -X GET https://api.tst.au.apgpay.dev/loan-statements \
-H "Authorization: Bearer $API_KEY"Return a page of loan statements. Without q, a query with no loanId, referenceStatementId or date bound reads the statements created in the last 90 days, and an upper bound alone reads the 90 days ending there. A q search covers all of the borrower's statements, as far as the caller's delegate loan access allows, so an old statement is found by its reference. GET /filter-catalogues/loan-statements lists the filters this caller can use. A cursor continues only the walk that issued it: sent with different filters, q or sort, it is refused with 400.
Permissions
loanStatements:queryRequires the `query` action on `loanStatements` for the supplied runtime context
Query parameters
qstringSearch. Matches a statement id, the id of its loan, or the reference statement id. An id, an email address, a phone number and any value listed as matched exactly match exactly; any other term matches without regard to case from the start of a value (or of any word in it, beside a longer word of the term), or anywhere in it from three characters, every word of it somewhere; a term that matches nothing so is read again with typos tolerated. Closest matches come first unless sort is given.
pageinteger (int32)Offset pagination: 1-based page number. Mutually exclusive with the cursor parameters.
startingAfterstringCursor pagination, moving forward: the id of the last item on the current page. Mutually exclusive with page.
endingBeforestringCursor pagination, moving backward: the id of the first item on the current page. Mutually exclusive with page.
limitinteger (int32)Maximum items per page.
sortarray of LstmtSortFields to sort by, comma-delimited, in priority order. Prefix a field with - for descending.
columnsarray of LstmtColumnColumns to include, in order, when asking for text/csv. Omit for all of them. Sending it with application/json is a 400.
statusone of LstmtStatus, array of LstmtStatusOnly loan statements whose status is one of these. Repeat the parameter to give several.
statusNotone of LstmtStatus, array of LstmtStatusLeave out loan statements whose status is one of these. Repeat the parameter to give several.
loanIdone of array of string, stringOnly loan statements whose loan is one of these. Repeat the parameter to give several.
loanIdNotone of array of string, stringLeave out loan statements whose loan is one of these. Repeat the parameter to give several.
merchantIdone of array of string, stringOnly loan statements whose borrowing merchant is one of these. Repeat the parameter to give several.
merchantIdNotone of array of string, stringLeave out loan statements whose borrowing merchant is one of these. Repeat the parameter to give several.
customerIdone of array of string, stringOnly loan statements whose borrowing customer is one of these. Repeat the parameter to give several.
customerIdNotone of array of string, stringLeave out loan statements whose borrowing customer is one of these. Repeat the parameter to give several.
customerIdAbsentbooleantrue for only loan statements with no borrowing customer, false for only those with one.
referenceStatementIdstringFind a statement by the platform's own reference.
currencyone of IsoCurrency, array of IsoCurrencyOnly loan statements whose currency is one of these. Repeat the parameter to give several.
currencyNotone of IsoCurrency, array of IsoCurrencyLeave out loan statements whose currency is one of these. Repeat the parameter to give several.
dueFromstring (date)Only loan statements whose due date is at or after this ISO-8601 date.
dueTostring (date)Only loan statements whose due date is at or before this ISO-8601 date.
createdAfterstring (date-time)Only loan statements whose cut time is at or after this ISO-8601 timestamp.
createdBeforestring (date-time)Only loan statements whose cut time is before, and not at, this ISO-8601 timestamp.
Responses
The response is a tagged shape: type is always "LstmtPageAttributes". Switch on it; subtypes can be added, and a client that already reads it will not break.
typetype = "LstmtPageAttributes"typeenumrequiredLstmtViewAttributesloanStatementIdLstmtIdrequiredIdentifier of a loan statement.
Example lstmt_9f2Kd8QpLzXw
loanIdLoanIdrequiredIdentifier of a loan.
Example loan_9f2Kd8QpLzXw
referenceStatementIdstringrequiredThe platform's own reference for this statement, which is what appears on a remittance.
Example your-own-reference
merchantIdMchtIdrequiredThe merchant the borrower trades with.
Example mcht_9f2Kd8QpLzXw
customerIdCustIdThe borrowing customer, on a trading-account loan.
Example cust_9f2Kd8QpLzXw
statusLstmtStatusrequiredDraftOutstandingDueOverduePaidDefaultedCancelledUnknownperiodStartstring (date)requiredFirst day of the period this statement covers.
Example 2026-08-19
periodEndstring (date)requiredLast day of the period this statement covers.
Example 2026-08-19
billingDatestring (date)requiredThe day the statement was cut.
Example 2026-08-19
dueDatestring (date)requiredThe day payment falls due.
Example 2026-08-19
The cycle this statement was cut on.
typeA statement each day. Carries no issue day, because every day is one.
A statement each day. Carries no issue day, because every day is one.
A statement every second week, issued on this day of the week.
issueDayOfWeekLprodDayOfWeekrequiredMondayTuesdayWednesdayThursdayFridayUnknownA statement each month, issued on this day of the month.
issueDayOfMonthinteger (int32)requiredExample 6
A statement each week, issued on this day of the week.
issueDayOfWeekLprodDayOfWeekrequiredMondayTuesdayWednesdayThursdayFridayUnknownThe amounts on a loan statement. All are in the single currency given here.
typeenumrequiredLstmtAmountsAttributescurrencyIsoCurrencyrequiredAFNDZDARSAMDAWGAUDAZNBSDBHDTHB+156 moreShow fewer
PAB, BBD, BYR, BZD, BMD, VEF, BOB, BRL, BND, BGN, BIF, CAD, CVE, KYD, XOF, XAF, XPF, CLP, COP, KMF, CDF, BAM, NIO, CRC, HRK, CUP, CZK, GMD, DKK, MKD, DJF, STD, DOP, VND, XCD, EGP, SVC, ETB, EUR, FKP, FJD, HUF, GHS, GIP, HTG, PYG, GNF, GYD, HKD, UAH, ISK, INR, IRR, IQD, JMD, JOD, KES, PGK, LAK, KWD, MWK, AOA, MMK, GEL, LBP, ALL, HNL, SLL, LRD, LYD, SZL, LSL, MGA, MYR, MUR, MXN, MXV, MDL, MAD, MZN, BOV, NGN, ERN, NAD, NPR, ANG, ILS, TWD, NZD, BTN, KPW, NOK, PEN, MRU, PKR, MOP, TOP, CUC, UYU, PHP, GBP, BWP, QAR, GTQ, ZAR, OMR, KHR, RON, MVR, IDR, RUB, RWF, SHP, SAR, RSD, SCR, SGD, SBD, KGS, SOS, TJS, SSP, LKR, SDG, SRD, SEK, CHF, SYP, BDT, WST, TZS, KZT, TTD, MNT, TND, TRY, TMT, AED, UGX, COU, CLF, UYI, USD, USN, USS, UZS, VUV, CHE, CHW, KRW, YER, JPY, CNY, ZMW, ZWL, PLN
netMinorUnitsrequiredEverything but insurance, before tax.
Example 1250
insuranceMinorUnitsrequiredInsurance entries, before tax.
Example 1250
taxMinorUnitsrequiredTax over every entry.
Example 1250
billedMinorUnitsrequiredTotal due on the statement, excluding late fees.
Example 1250
feesMinorUnitsFees on the statement, including tax on them.
Example 1250
paidMinorUnitsPaid towards the statement so far.
Example 1250
outstandingMinorUnitsrequiredStill to be paid, including late fees. Negative means the statement is in credit.
Example 1250
creditedMinorUnitsWhere a statement ended in credit, how much of that credit has gone to other statements.
Example 1250
typeenumrequiredLstmtEntryAttributesentryTypeLtxnEntryTyperequiredWhat kind of line this is.
ChargeRefundDisputeDisputeFeeInsuranceAnnualFeeImplementationFeePremiumAccountFeeExtendedPaymentTermsFeeCustomerTransactionFee+5 moreShow fewer
LatePaymentFee, BankFee, ThirdPartyServiceFee, ManualAdjustment, Unknown
descriptionstringrequiredA statement line's total and the tax within it. Both are in the single currency given here.
typeenumrequiredLstmtEntryAmountsAttributescurrencyIsoCurrencyrequiredAFNDZDARSAMDAWGAUDAZNBSDBHDTHB+156 moreShow fewer
PAB, BBD, BYR, BZD, BMD, VEF, BOB, BRL, BND, BGN, BIF, CAD, CVE, KYD, XOF, XAF, XPF, CLP, COP, KMF, CDF, BAM, NIO, CRC, HRK, CUP, CZK, GMD, DKK, MKD, DJF, STD, DOP, VND, XCD, EGP, SVC, ETB, EUR, FKP, FJD, HUF, GHS, GIP, HTG, PYG, GNF, GYD, HKD, UAH, ISK, INR, IRR, IQD, JMD, JOD, KES, PGK, LAK, KWD, MWK, AOA, MMK, GEL, LBP, ALL, HNL, SLL, LRD, LYD, SZL, LSL, MGA, MYR, MUR, MXN, MXV, MDL, MAD, MZN, BOV, NGN, ERN, NAD, NPR, ANG, ILS, TWD, NZD, BTN, KPW, NOK, PEN, MRU, PKR, MOP, TOP, CUC, UYU, PHP, GBP, BWP, QAR, GTQ, ZAR, OMR, KHR, RON, MVR, IDR, RUB, RWF, SHP, SAR, RSD, SCR, SGD, SBD, KGS, SOS, TJS, SSP, LKR, SDG, SRD, SEK, CHF, SYP, BDT, WST, TZS, KZT, TTD, MNT, TND, TRY, TMT, AED, UGX, COU, CLF, UYI, USD, USN, USS, UZS, VUV, CHE, CHW, KRW, YER, JPY, CNY, ZMW, ZWL, PLN
totalMinorUnitsrequiredThe line's total, tax included.
Example 1250
taxMinorUnitsrequiredThe tax within the total.
Example 1250
netMinorUnitsrequiredThe total before tax. total − tax.
Example 1250
taxRatenumberThe rate the tax was charged at, as a decimal, 0.1 is 10%.
Example 0.9412
taxTypestringWhat the tax is called, GST.
The amount before currency conversion, where the movement was converted. Genuinely in another currency, so it carries its own.
typeenumrequiredIsoCurrencyAmountminorCurrencyUnitsinteger (int64)requiredThe amount in minor currency units (e.g. cents for AUD).
Example 1250
currencyIsoCurrencyrequiredThe currency of the given amount as a 3 letter ISO code.
AFNDZDARSAMDAWGAUDAZNBSDBHDTHB+156 moreShow fewer
PAB, BBD, BYR, BZD, BMD, VEF, BOB, BRL, BND, BGN, BIF, CAD, CVE, KYD, XOF, XAF, XPF, CLP, COP, KMF, CDF, BAM, NIO, CRC, HRK, CUP, CZK, GMD, DKK, MKD, DJF, STD, DOP, VND, XCD, EGP, SVC, ETB, EUR, FKP, FJD, HUF, GHS, GIP, HTG, PYG, GNF, GYD, HKD, UAH, ISK, INR, IRR, IQD, JMD, JOD, KES, PGK, LAK, KWD, MWK, AOA, MMK, GEL, LBP, ALL, HNL, SLL, LRD, LYD, SZL, LSL, MGA, MYR, MUR, MXN, MXV, MDL, MAD, MZN, BOV, NGN, ERN, NAD, NPR, ANG, ILS, TWD, NZD, BTN, KPW, NOK, PEN, MRU, PKR, MOP, TOP, CUC, UYU, PHP, GBP, BWP, QAR, GTQ, ZAR, OMR, KHR, RON, MVR, IDR, RUB, RWF, SHP, SAR, RSD, SCR, SGD, SBD, KGS, SOS, TJS, SSP, LKR, SDG, SRD, SEK, CHF, SYP, BDT, WST, TZS, KZT, TTD, MNT, TND, TRY, TMT, AED, UGX, COU, CLF, UYI, USD, USN, USS, UZS, VUV, CHE, CHW, KRW, YER, JPY, CNY, ZMW, ZWL, PLN
loanTransactionIdLtxnIdThe movement this line came from, where a line has one. Generated fees do not.
Example ltxn_9f2Kd8QpLzXw
entryAtstring (date-time)requiredWhen the movement this line records happened.
Example 2026-08-19T04:21:07Z
The late-payment fee charged on this statement, where one has been.
typeenumrequiredLstmtLateFeeAttributesA statement line's total and the tax within it. Both are in the single currency given here.
typeenumrequiredLstmtEntryAmountsAttributescurrencyIsoCurrencyrequiredAFNDZDARSAMDAWGAUDAZNBSDBHDTHB+156 moreShow fewer
PAB, BBD, BYR, BZD, BMD, VEF, BOB, BRL, BND, BGN, BIF, CAD, CVE, KYD, XOF, XAF, XPF, CLP, COP, KMF, CDF, BAM, NIO, CRC, HRK, CUP, CZK, GMD, DKK, MKD, DJF, STD, DOP, VND, XCD, EGP, SVC, ETB, EUR, FKP, FJD, HUF, GHS, GIP, HTG, PYG, GNF, GYD, HKD, UAH, ISK, INR, IRR, IQD, JMD, JOD, KES, PGK, LAK, KWD, MWK, AOA, MMK, GEL, LBP, ALL, HNL, SLL, LRD, LYD, SZL, LSL, MGA, MYR, MUR, MXN, MXV, MDL, MAD, MZN, BOV, NGN, ERN, NAD, NPR, ANG, ILS, TWD, NZD, BTN, KPW, NOK, PEN, MRU, PKR, MOP, TOP, CUC, UYU, PHP, GBP, BWP, QAR, GTQ, ZAR, OMR, KHR, RON, MVR, IDR, RUB, RWF, SHP, SAR, RSD, SCR, SGD, SBD, KGS, SOS, TJS, SSP, LKR, SDG, SRD, SEK, CHF, SYP, BDT, WST, TZS, KZT, TTD, MNT, TND, TRY, TMT, AED, UGX, COU, CLF, UYI, USD, USN, USS, UZS, VUV, CHE, CHW, KRW, YER, JPY, CNY, ZMW, ZWL, PLN
totalMinorUnitsrequiredThe line's total, tax included.
Example 1250
taxMinorUnitsrequiredThe tax within the total.
Example 1250
netMinorUnitsrequiredThe total before tax. total − tax.
Example 1250
calculatedTostring (date)The date the fee has been calculated up to. It grows until the statement is paid.
Example 2026-08-19
narrativestringAn internal note on how the fee was worked out.
linkedStatementIdLstmtIdFor a statement that exists because of another, a late-fee invoice, the statement it relates to.
Example lstmt_9f2Kd8QpLzXw
narrativestringAn internal note about this statement.
createdAtstring (date-time)requiredExample 2026-08-19T04:21:07Z
updatedAtstring (date-time)requiredExample 2026-08-19T04:21:07Z
hasMorebooleanrequiredWhether further items exist after this page.
Example true
nextStartingAfterstringId to pass as startingAfter to fetch the next page. Present in cursor mode only.
totalCountinteger (int64)Total items matching the query.
Example 42
pageinteger (int32)The 1-based page returned. Present in offset mode only.
Example 1250
totalPagesinteger (int32)Total pages available. Present in offset mode only.
Example 1250
{
"type": "LstmtPageAttributes",
"data": [
{
"type": "LstmtViewAttributes",
"loanStatementId": "lstmt_9f2Kd8QpLzXw",
"loanId": "loan_9f2Kd8QpLzXw",
"referenceStatementId": "your-own-reference",
"merchantId": "mcht_9f2Kd8QpLzXw",
"customerId": "cust_9f2Kd8QpLzXw",
"status": "Draft",
"periodStart": "2026-08-19",
"periodEnd": "2026-08-19",
"billingDate": "2026-08-19",
"dueDate": "2026-08-19",
"statementFrequency": {
"type": "LprodFrequencyDaily"
},
"amounts": {
"type": "LstmtAmountsAttributes",
"currency": "AUD",
"net": 1250,
"insurance": 1250,
"tax": 1250,
"billed": 1250,
"fees": 1250,
"paid": 1250,
"outstanding": 1250,
"credited": 1250
},
"entries": [
{
"type": "LstmtEntryAttributes",
"entryType": "Charge",
"description": "string",
"amounts": {
"type": "LstmtEntryAmountsAttributes",
"currency": "AUD",
"total": 1250,
"tax": 1250,
"net": 1250
},
"taxRate": 0.9412,
"taxType": "string",
"originalAmount": {
"type": "IsoCurrencyAmount",
"minorCurrencyUnits": 1250,
"currency": "AUD"
},
"loanTransactionId": "ltxn_9f2Kd8QpLzXw",
"entryAt": "2026-08-19T04:21:07Z"
}
],
"lateFee": {
"type": "LstmtLateFeeAttributes",
"amounts": {
"type": "LstmtEntryAmountsAttributes",
"currency": "AUD",
"total": 1250,
"tax": 1250,
"net": 1250
},
"calculatedTo": "2026-08-19",
"narrative": "string"
},
"linkedStatementId": "lstmt_9f2Kd8QpLzXw",
"narrative": "string",
"createdAt": "2026-08-19T04:21:07Z",
"updatedAt": "2026-08-19T04:21:07Z"
}
],
"hasMore": true,
"nextStartingAfter": "string",
"totalCount": 42,
"page": 1250,
"totalPages": 1250
}Error responses
statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}statusCodeinteger (int32)requiredHTTP status code for this error
errorCodestringrequiredAn APG Pay code providing a brief explanation of the underlying error. Use this if you wish to provide custom behaviour based on the error type.
messagestringrequiredHuman readable description of the error
tracerstringAn unique identifier for the request. Provide this to the support team if you wish to query a particular error.
detailstringOptional additional details for the error.
errorTypeDescriptionstringA description of the category of errors for the given statusCode.
metadataobjectOptional key value list of metadata
{
"statusCode": 100,
"errorCode": "string",
"message": "string",
"tracer": "string",
"detail": "string",
"errorTypeDescription": "string"
}