Skip to main content

Deliver Prepaid Statements

Overview

This page explains how to generate a statement for consumer prepaid card products. For credit card statements, see Deliver Credit Statements.

In the prepaid context, there is no concept of an "amount due" or "amount owing" -- this is not a "billing" statement -- as funds must be preloaded onto the account. You can show card holders the remaining balance of those funds by adding periodPurchasesAmount { value } to the request.

As with credit statements, use the appropriate statement snapshot based on your card product configuration to access transaction or balance details:

Period dates

The period start and end dates occur at midnight Eastern Time (EST or EDT) and are presented in the API response in Coordinated Universal Time (UTC), for example, 12am EST => 5am UTC.

FieldInternal Date (EST)API Response (UTC)
Period Start2025-06-26 00:00:002025-06-26 05:00:00
Period End2025-07-26 00:00:002025-07-26 05:00:00

Generate current prepaid statement

Use the following query to generate the current prepaid statement for an account holder:

FindFinancialAccount
Query
fragment statement on ConsumerPrepaidCardFinancialAccountStatement {
id
__typename
periodStart
periodEnd
openedAt
closedAt
createdAt
updatedAt
primaryLedger {
id
name
normalBalance
creditBalance {
value
}
debitBalance {
value
}
}
startingPrimaryCreditBalance {
value
}
startingPrimaryDebitBalance {
value
}
endingPrimaryCreditBalance {
value
}
endingPrimaryDebitBalance {
value
}
secondaryLedger {
id
name
normalBalance
creditBalance {
value
}
debitBalance {
value
}
}
startingSecondaryCreditBalance {
value
}
startingSecondaryDebitBalance {
value
}
endingSecondaryCreditBalance {
value
}
endingSecondaryDebitBalance {
value
}
}
query FindFinancialAccount($id: ID!) {
node(id: $id) {
... on FinancialAccount {
id
statementSnapshot {
... on ConsumerPrepaidCardFinancialAccountStatementSnapshot {
asOf
currentOpenStatement {
...statement
}
latestClosedStatement {
...statement
}
}
}
}
}
}
Variables
{
  "id": "ac_c02215bf2edade754e0586df0cc407f2285f"
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"node": {
"id": "ac_c02215bf2edade754e0586df0cc407f2285f",
"statementSnapshot": {
"asOf": "2025-08-27T15:26:04.095Z",
"currentOpenStatement": {
"id": "si_0a34111cd18243d0bb4718ff2f635275",
"__typename": "ConsumerPrepaidCardFinancialAccountStatement",
"periodStart": "2025-08-27T15:25:08.395Z",
"periodEnd": "2025-09-27T15:25:08.395Z",
"openedAt": "2025-08-27T15:26:03.368Z",
"closedAt": null,
"createdAt": "2025-08-27T12:23:10.058Z",
"updatedAt": "2025-08-27T15:26:04.053Z",
"primaryLedger": {
"id": "ac_c02215bf2edade754e0586df0cc407f2285f_a003",
"name": "CASH",
"normalBalance": "DEBIT",
"creditBalance": {
"value": 0
},
"debitBalance": {
"value": 71000
}
},
"startingPrimaryCreditBalance": {
"value": 0
},
"startingPrimaryDebitBalance": {
"value": 71000
},
"endingPrimaryCreditBalance": {
"value": 0
},
"endingPrimaryDebitBalance": {
"value": 0
},
"secondaryLedger": {
"id": "ac_c02215bf2edade754e0586df0cc407f2285f_a030",
"name": "AVAILABLE_CREDIT",
"normalBalance": "CREDIT",
"creditBalance": {
"value": 0
},
"debitBalance": {
"value": 0
}
},
"startingSecondaryCreditBalance": {
"value": 0
},
"startingSecondaryDebitBalance": {
"value": 0
},
"endingSecondaryCreditBalance": {
"value": 0
},
"endingSecondaryDebitBalance": {
"value": 0
}
},
"latestClosedStatement": {
"id": "si_2f2b73e7c2dc465eb7f926103f67225e",
"__typename": "ConsumerPrepaidCardFinancialAccountStatement",
"periodStart": "2025-08-27T12:19:48.368Z",
"periodEnd": "2025-08-27T15:25:08.395Z",
"openedAt": "2025-08-27T12:23:09.790Z",
"closedAt": "2025-08-27T15:26:03.368Z",
"createdAt": "2025-08-27T12:18:32.116Z",
"updatedAt": "2025-08-27T15:26:04.053Z",
"primaryLedger": {
"id": "ac_c02215bf2edade754e0586df0cc407f2285f_a003",
"name": "CASH",
"normalBalance": "DEBIT",
"creditBalance": {
"value": 0
},
"debitBalance": {
"value": 71000
}
},
"startingPrimaryCreditBalance": {
"value": 0
},
"startingPrimaryDebitBalance": {
"value": 88000
},
"endingPrimaryCreditBalance": {
"value": 0
},
"endingPrimaryDebitBalance": {
"value": 71000
},
"secondaryLedger": {
"id": "ac_c02215bf2edade754e0586df0cc407f2285f_a030",
"name": "AVAILABLE_CREDIT",
"normalBalance": "CREDIT",
"creditBalance": {
"value": 0
},
"debitBalance": {
"value": 0
}
},
"startingSecondaryCreditBalance": {
"value": 0
},
"startingSecondaryDebitBalance": {
"value": 0
},
"endingSecondaryCreditBalance": {
"value": 0
},
"endingSecondaryDebitBalance": {
"value": 0
}
}
}
}
},
"extensions": {
"requestId": "569e6a0b-d14e-9a40-85c6-6f4a1e038883",
"rateLimit": {
"cost": 32,
"limit": 60060,
"remaining": 60028,
"asOf": "2025-08-27T15:30:47.262Z",
"complexity": {
"limit": 60060,
"remaining": 60028,
"cost": 32
},
"count": {
"limit": 60060,
"remaining": 60059,
"cost": 1
}
}
}
}

Find prepaid statement history

To filter data, search by periodStart or periodEnd of the period. If there is no data for a specific period, the query returns no results. You can look up past statements for up to 24 months.

FindFinancialAccount
Query
fragment statement on ConsumerPrepaidCardFinancialAccountStatement {
id
__typename
periodStart
periodEnd
openedAt
closedAt
createdAt
updatedAt
primaryLedger {
id
name
normalBalance
creditBalance {
value
}
debitBalance {
value
}
}
startingPrimaryCreditBalance {
value
}
startingPrimaryDebitBalance {
value
}
endingPrimaryCreditBalance {
value
}
endingPrimaryDebitBalance {
value
}
secondaryLedger {
id
name
normalBalance
creditBalance {
value
}
debitBalance {
value
}
}
startingSecondaryCreditBalance {
value
}
startingSecondaryDebitBalance {
value
}
endingSecondaryCreditBalance {
value
}
endingSecondaryDebitBalance {
value
}
}
query FindFinancialAccount($id: ID!) {
node(id: $id) {
... on FinancialAccount {
id
createdAt
statements(first: 10) {
edges {
node {
...statement
}
cursor
}
pageInfo {
hasNextPage
hasPreviousPage
startCursor
endCursor
}
}
}
}
}
Variables
{
  "id": "FINANCIAL_ACCOUNT_ID"
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"node": {
"id": "ac_c02215bf2edade754e0586df0cc407f2285f",
"createdAt": "2025-08-27T12:12:03.733Z",
"statements": {
"edges": [
{
"node": {
"id": "si_2f2b73e7c2dc465eb7f926103f67225e",
"__typename": "ConsumerPrepaidCardFinancialAccountStatement",
"periodStart": "2025-08-27T12:19:48.368Z",
"periodEnd": "2025-08-27T15:25:08.395Z",
"openedAt": "2025-08-27T12:23:09.790Z",
"closedAt": "2025-08-27T15:26:03.368Z",
"createdAt": "2025-08-27T12:18:32.116Z",
"updatedAt": "2025-08-27T15:26:04.053Z",
"primaryLedger": {
"id": "ac_c02215bf2edade754e0586df0cc407f2285f_a003",
"name": "CASH",
"normalBalance": "DEBIT",
"creditBalance": {
"value": 0
},
"debitBalance": {
"value": 71000
}
},
"startingPrimaryCreditBalance": {
"value": 0
},
"startingPrimaryDebitBalance": {
"value": 88000
},
"endingPrimaryCreditBalance": {
"value": 0
},
"endingPrimaryDebitBalance": {
"value": 71000
},
"secondaryLedger": {
"id": "ac_c02215bf2edade754e0586df0cc407f2285f_a030",
"name": "AVAILABLE_CREDIT",
"normalBalance": "CREDIT",
"creditBalance": {
"value": 0
},
"debitBalance": {
"value": 0
}
},
"startingSecondaryCreditBalance": {
"value": 0
},
"startingSecondaryDebitBalance": {
"value": 0
},
"endingSecondaryCreditBalance": {
"value": 0
},
"endingSecondaryDebitBalance": {
"value": 0
}
},
"cursor": "cursor_value"
}
],
"pageInfo": {
"hasNextPage": false,
"hasPreviousPage": false,
"startCursor": "start_cursor",
"endCursor": "end_cursor"
}
}
}
}
}

Fetch prepaid statement by ID

You can search for details on a prepaid statement using a statement ID. Prepaid statement details include:

  • Information from financial events during the statement period
  • Summary-level balances

Use the following query to fetch statement details by ID:

LookupStatement
Query
fragment statement on ConsumerPrepaidCardFinancialAccountStatement {
id
__typename
periodStart
periodEnd
openedAt
closedAt
periodPurchasesAmount {
value
}
periodRefundsAndPaymentsAmount {
value
}

primaryLedger {
id
name
normalBalance
creditBalance {
value
}
debitBalance {
value
}
}
startingPrimaryCreditBalance {
value
currencyCode
}
startingPrimaryDebitBalance {
value
currencyCode
}
endingPrimaryCreditBalance {
value
currencyCode
}
endingPrimaryDebitBalance {
value
currencyCode
}
secondaryLedger {
id
name
normalBalance
creditBalance {
value
}
debitBalance {
value
}
}
startingSecondaryCreditBalance {
value
}
startingSecondaryDebitBalance {
value
}
endingSecondaryCreditBalance {
value
}
endingSecondaryDebitBalance {
value
}
statementEntries(first: 20, filterBy: $filterBy) {
edges {
node {
__typename
postDate
creditAmount {
value
}
debitAmount {
value
}
primaryCreditBalance {
value
}
primaryDebitBalance {
value
}
ledgerEntry {
...ledgerEntry
}
}
cursor
}
pageInfo {
hasNextPage
hasPreviousPage
startCursor
endCursor
}
}
}
fragment ledgerEntry on LedgerEntry {
__typename
id
memo
creditBalanceAtLedgerEntry {
value
currencyCode
}
debitBalanceAtLedgerEntry {
value
currencyCode
}
amount {
value
currencyCode
}
financialEvent {
... on ClearingEvent {
id
approvedAmount {
value
currencyCode
}
}
... on FeeTransferEvent {
id
feeTransfer {
__typename
... on ChargedFeeTransfer {
feeActivityType
feeAmount {
value
currencyCode
}
}
... on ReversedFeeTransfer {
feeTransferAmount {
value
currencyCode
}
}
}
}
}
}
query LookupStatement(
$id: ID!
$filterBy: FinancialAccountStatementEntriesFilterInput
) {
node(id: $id) {
...statement
}
}
Variables
{
  "id": "STATEMENT_ID"
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"node": {
"id": "si_2f2b73e7c2dc465eb7f926103f67225e",
"__typename": "ConsumerPrepaidCardFinancialAccountStatement",
"periodStart": "2025-08-27T12:19:48.368Z",
"periodEnd": "2025-08-27T15:25:08.395Z",
"openedAt": "2025-08-27T12:23:09.790Z",
"closedAt": "2025-08-27T15:26:03.368Z",
"periodPurchasesAmount": {
"value": 19500
},
"periodRefundsAndPaymentsAmount": {
"value": 2500
},
"primaryLedger": {
"id": "ac_c02215bf2edade754e0586df0cc407f2285f_a003",
"name": "CASH",
"normalBalance": "DEBIT",
"creditBalance": {
"value": 0
},
"debitBalance": {
"value": 71000
}
},
"startingPrimaryCreditBalance": {
"value": 0,
"currencyCode": "USD"
},
"startingPrimaryDebitBalance": {
"value": 88000,
"currencyCode": "USD"
},
"endingPrimaryCreditBalance": {
"value": 0,
"currencyCode": "USD"
},
"endingPrimaryDebitBalance": {
"value": 71000,
"currencyCode": "USD"
},
"secondaryLedger": {
"id": "ac_c02215bf2edade754e0586df0cc407f2285f_a030",
"name": "AVAILABLE_CREDIT",
"normalBalance": "CREDIT",
"creditBalance": {
"value": 0
},
"debitBalance": {
"value": 0
}
},
"startingSecondaryCreditBalance": {
"value": 0
},
"startingSecondaryDebitBalance": {
"value": 0
},
"endingSecondaryCreditBalance": {
"value": 0
},
"endingSecondaryDebitBalance": {
"value": 0
},
"statementEntries": {
"edges": [],
"pageInfo": {
"hasNextPage": false,
"hasPreviousPage": false,
"startCursor": null,
"endCursor": null
}
}
}
}
}

Filter prepaid statement entries

Statement entries are presented in a paginated format. You can filter these entries based on their posting date.

The following query applies these filters to statement entries for a consumer prepaid card product:

LookupStatement
Query
fragment statement on ConsumerPrepaidCardFinancialAccountStatement {
id
__typename
periodStart
periodEnd
openedAt
closedAt
periodPurchasesAmount {
value
}
periodRefundsAndPaymentsAmount {
value
}

primaryLedger {
id
name
normalBalance
creditBalance {
value
}
debitBalance {
value
}
}
startingPrimaryCreditBalance {
value
currencyCode
}
startingPrimaryDebitBalance {
value
currencyCode
}
endingPrimaryCreditBalance {
value
currencyCode
}
endingPrimaryDebitBalance {
value
currencyCode
}
secondaryLedger {
id
name
normalBalance
creditBalance {
value
}
debitBalance {
value
}
}
startingSecondaryCreditBalance {
value
}
startingSecondaryDebitBalance {
value
}
endingSecondaryCreditBalance {
value
}
endingSecondaryDebitBalance {
value
}
statementEntries(first: 20, filterBy: $filterBy) {
edges {
node {
__typename
postDate
creditAmount {
value
}
debitAmount {
value
}
primaryCreditBalance {
value
}
primaryDebitBalance {
value
}
ledgerEntry {
...ledgerEntry
}
}
cursor
}
pageInfo {
hasNextPage
hasPreviousPage
startCursor
endCursor
}
}
}
fragment ledgerEntry on LedgerEntry {
__typename
id
memo
creditBalanceAtLedgerEntry {
value
currencyCode
}
debitBalanceAtLedgerEntry {
value
currencyCode
}
amount {
value
currencyCode
}
financialEvent {
... on ClearingEvent {
id
approvedAmount {
value
currencyCode
}
}
... on FeeTransferEvent {
id
feeTransfer {
__typename
... on ChargedFeeTransfer {
feeActivityType
feeAmount {
value
currencyCode
}
}
... on ReversedFeeTransfer {
feeTransferAmount {
value
currencyCode
}
}
}
}
}
}
query LookupStatement(
$id: ID!
$filterBy: FinancialAccountStatementEntriesFilterInput
) {
node(id: $id) {
...statement
}
}
Variables
{
  "id": "STATEMENT_ID",
  "filterBy": {
    "postDate": {
      "lessThan": "2026-06-07T22:21:50.108Z"
    },
    "isCredit": {
      "equals": true
    }
  }
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"node": {
"id": "si_2f2b73e7c2dc465eb7f926103f67225e",
"__typename": "ConsumerPrepaidCardFinancialAccountStatement",
"periodStart": "2025-08-27T12:19:48.368Z",
"periodEnd": "2025-08-27T15:25:08.395Z",
"openedAt": "2025-08-27T12:23:09.790Z",
"closedAt": "2025-08-27T15:26:03.368Z",
"periodPurchasesAmount": {
"value": 19500
},
"periodRefundsAndPaymentsAmount": {
"value": 2500
},
"primaryLedger": {
"id": "ac_c02215bf2edade754e0586df0cc407f2285f_a003",
"name": "CASH",
"normalBalance": "DEBIT",
"creditBalance": {
"value": 0
},
"debitBalance": {
"value": 71000
}
},
"startingPrimaryCreditBalance": {
"value": 0,
"currencyCode": "USD"
},
"startingPrimaryDebitBalance": {
"value": 88000,
"currencyCode": "USD"
},
"endingPrimaryCreditBalance": {
"value": 0,
"currencyCode": "USD"
},
"endingPrimaryDebitBalance": {
"value": 71000,
"currencyCode": "USD"
},
"secondaryLedger": {
"id": "ac_c02215bf2edade754e0586df0cc407f2285f_a030",
"name": "AVAILABLE_CREDIT",
"normalBalance": "CREDIT",
"creditBalance": {
"value": 0
},
"debitBalance": {
"value": 0
}
},
"startingSecondaryCreditBalance": {
"value": 0
},
"startingSecondaryDebitBalance": {
"value": 0
},
"endingSecondaryCreditBalance": {
"value": 0
},
"endingSecondaryDebitBalance": {
"value": 0
},
"statementEntries": {
"edges": [],
"pageInfo": {
"hasNextPage": false,
"hasPreviousPage": false,
"startCursor": null,
"endCursor": null
}
}
}
}
}

Simulate shifting prepaid end period

In the Test environment, you can end a financial account's period early to simulate a statement. When performing this simulation, refer to the following guidelines:

  • Set the new period at least 60 seconds in the future.
  • If no periodBoundary is provided, the system defaults the statement’s endPeriod to 60 seconds from now.

To simulate changing a statement's end period for a consumer prepaid card, use the following mutation:

SimulateShiftCurrentStatementPeriod
Query
fragment statement on ConsumerPrepaidCardFinancialAccountStatement {
id
periodEnd
}

mutation SimulateShiftCurrentStatementPeriod(
$input: SimulateShiftCurrentFinancialAccountStatementPeriodInput!
) {
simulateShiftCurrentFinancialAccountStatementPeriod(input: $input) {
__typename
... on FinancialAccount {
id
statementSnapshot {
... on ConsumerPrepaidCardFinancialAccountStatementSnapshot {
__typename
asOf
currentOpenStatement {
...statement
}
}
}
}
... on UserError {
errors {
errorPath
code
}
}
}
}
Variables
{
  "input": {
    "financialAccountId": "FINANCIAL_ACCOUNT_ID",
    "periodBoundary": "2025-08-05T00:43:26.96"
  }
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"simulateShiftCurrentFinancialAccountStatementPeriod": {
"__typename": "FinancialAccount",
"id": "ac_c02215bf2edade754e0586df0cc407f2285f",
"statementSnapshot": {
"__typename": "ConsumerPrepaidCardFinancialAccountStatementSnapshot",
"asOf": "2025-08-27T15:24:03.557Z",
"currentOpenStatement": {
"id": "si_2f2b73e7c2dc465eb7f926103f67225e",
"periodEnd": "2025-08-27T15:25:08.395Z"
}
}
}
}
}

Simulate rolling to next prepaid cycle

As with credit cards, you can transition the statement period of a prepaid financial account to the next cycle, simulating the end of one statement cycle and the start of another.

Use the following mutation to simulate rolling over the current statement period for a consumer prepaid card, and use the ConsumerPrepaidCardFinancialAccountStatementSnapshot.

SimulateRolloverCurrentStatementPeriod
Query
fragment statement on ConsumerPrepaidCardFinancialAccountStatement {
id
__typename
periodStart
periodEnd
openedAt
closedAt
primaryLedger {
id
name
normalBalance
creditBalance {
value
currencyCode
}
debitBalance {
value
currencyCode
}
}
startingPrimaryCreditBalance {
value
currencyCode
}
startingPrimaryDebitBalance {
value
currencyCode
}
endingPrimaryCreditBalance {
value
currencyCode
}
endingPrimaryDebitBalance {
value
currencyCode
}
secondaryLedger {
id
name
normalBalance
creditBalance {
value
currencyCode
}
debitBalance {
value
currencyCode
}
}
startingSecondaryCreditBalance {
value
currencyCode
}
startingSecondaryDebitBalance {
value
currencyCode
}
endingSecondaryCreditBalance {
value
currencyCode
}
endingSecondaryDebitBalance {
value
currencyCode
}
}

mutation SimulateRolloverCurrentStatementPeriod(
$input: SimulateRolloverCurrentFinancialAccountStatementPeriodInput!
) {
simulateRolloverCurrentFinancialAccountStatementPeriod(input: $input) {
__typename
... on FinancialAccount {
id
statementSnapshot {
... on ConsumerPrepaidCardFinancialAccountStatementSnapshot {
__typename
asOf
latestClosedStatement {
...statement
}
}
}
}
... on UserError {
errors {
errorPath
code
}
}
}
}
Variables
{
  "input": {
    "financialAccountId": "FINANCIAL_ACCOUNT_ID"
  }
}
⚠️ Please login to execute queries. Visit the dashboard to authenticate.
Result
{
"data": {
"simulateRolloverCurrentFinancialAccountStatementPeriod": {
"__typename": "FinancialAccount",
"id": "FINANCIAL_ACCOUNT_ID",
"statementSnapshot": {
"__typename": "ConsumerPrepaidCardFinancialAccountStatementSnapshot",
"asOf": "2025-08-27T15:26:04.095Z",
"latestClosedStatement": {
"id": "si_2f2b73e7c2dc465eb7f926103f67225e",
"__typename": "ConsumerPrepaidCardFinancialAccountStatement",
"periodStart": "2025-08-27T12:19:48.368Z",
"periodEnd": "2025-08-27T15:25:08.395Z",
"openedAt": "2025-08-27T12:23:09.790Z",
"closedAt": "2025-08-27T15:26:03.368Z",
"primaryLedger": {
"id": "ac_c02215bf2edade754e0586df0cc407f2285f_a003",
"name": "CASH",
"normalBalance": "DEBIT",
"creditBalance": {
"value": 0,
"currencyCode": "USD"
},
"debitBalance": {
"value": 71000,
"currencyCode": "USD"
}
},
"startingPrimaryCreditBalance": {
"value": 0,
"currencyCode": "USD"
},
"startingPrimaryDebitBalance": {
"value": 88000,
"currencyCode": "USD"
},
"endingPrimaryCreditBalance": {
"value": 0,
"currencyCode": "USD"
},
"endingPrimaryDebitBalance": {
"value": 71000,
"currencyCode": "USD"
},
"secondaryLedger": {
"id": "ac_c02215bf2edade754e0586df0cc407f2285f_a030",
"name": "AVAILABLE_CREDIT",
"normalBalance": "CREDIT",
"creditBalance": {
"value": 0,
"currencyCode": "USD"
},
"debitBalance": {
"value": 0,
"currencyCode": "USD"
}
},
"startingSecondaryCreditBalance": {
"value": 0,
"currencyCode": "USD"
},
"startingSecondaryDebitBalance": {
"value": 0,
"currencyCode": "USD"
},
"endingSecondaryCreditBalance": {
"value": 0,
"currencyCode": "USD"
},
"endingSecondaryDebitBalance": {
"value": 0,
"currencyCode": "USD"
}
}
}
}
}
}