A statement is an official summary of financial transactions that occurred within a given period for a bank account held by a person or business. Statements are commonly used by account holders to monitor cash flow, check for possible fraudulent transactions, and perform bank reconciliations. Most Galileo clients deliver statements electronically, with some offering a paper option. Issuers in the United States are typically required to send a statement for an account only if one transaction has been made on the account during the statement period.

## What's in a statement?

Because a statement is a report of account activity, statements should display activity summaries (debits, credits, fees) as well the details of each transaction that took place during the statement period. Statements should also display the account balance as of the statement date, fee totals, and any interest with the interest rate.

### Statement options

As a Galileo client you have these options to provide statements:

  • **Create statements from the RDFs** — Use this option if you want to customize your statements beyond what Galileo offers or to provide statements for credit accounts. See <a href="doc:creating-statements-from-the-rdfs" target="_blank">Creating Statements from the RDFs</a> for guidelines.

  • **Obtain JSON statement data from Galileo** — Use this option if you want to create basic statements for debit accounts using JSON files. Continue reading for instructions.

## Obtaining statements from Galileo

Galileo currently offers statement data for these account types:

  • DDA plus overdraft

  • Savings

  • GPR

If account holders have all three account types, for example, then Galileo would generate three statements per month for them.

Keep the following in mind:

  • Amounts shown are always in the currency in which the account is based, not the currency at the point of sale.

  • Statement periods begin at midnight on the first day of the statement cycle and end at 23:59:59 on the last day according to <a href="ref:galileo-system-time" target="_blank">Galileo system time</a>.

  • Galileo stores your statement data for two years.

### Retrieving statements on-demand

You can retrieve individual account statement data in your interface by calling Get Access Token and then assembling an HTTP call.

#### Get Access Token call

These parameters are required for the <a href="ref:post_getaccesstoken" target="_blank">Get Access Token</a> call:

  • `accountNo` — Use the <<glossary:PRN>> of the account.

  • `type` — Pass `1` (account)

Galileo returns these values:

  • `token` — A case-sensitive alphanumeric string, for example, `hpSVyayQScHmhJS6_MVXT1WlsFRQoDJrRu_fi_JlX2Jo2dgg5p`

  • `expires` — The date/time the token expires, formatted as `YYYY-MM-DD hh:mm:ss` The default expiry is 300 seconds and/or 3 attempts. You can change default token-expiry parameters with the TSECV and TUSEC product parameters.

#### HTTP request for the statement

With the token assemble an HTTP call to retrieve the statement data, as shown in the example. The URL in the example is for an AWS instance that Galileo provisions for each client. If you do not already have an AWS URL, request one from Galileo This example is for the <<glossary:CV>> environment. For <<glossary:Production>> change the `cv` in the URL to `pd`.



where:

  • `clientname` — The name of your tenanted AWS instance

  • `token` — The token returned by Get Access Token

  • `config` — A value provided by Galileo

  • `date` — Statement date in MMYY format. The month corresponds to the first day of the statement period.

  • `statementType` — Type of statement to return:

    • `G` — GPR

    • `D` — DDA, including overdraft

    • `S` — Savings

  • `output``json` <!--Legacy clients can use `pdf`, and for those who want both JSON and PDF versions, pass `json%2Bpdf`. -->

##### Example HTTP call


Galileo returns a JSON of the statement data, which you can present electronically or [merge into a PDF template](🔗). You can print the PDFs on paper for those account holders who have opted out of electronic statements.

Each JSON file name has this format, `stmt_PRN_mmyy[_esign].json`, where:

  • `PRN` — The account's payment reference number

  • `mmyy` — The month and year of the starting date of the statement

  • `_esign` — Appended when the account holder has opted in to electronic statements

## JSON fields

The JSON file that Galileo returns for each statement contains a subset of the fields in the table below. Most of the data are formatted as strings (enclosed in double quotation marks), and within those strings are these data types:

  • **alphanumeric** — A–Z, a–z, and 0–9

  • **$decimal** – $999999999.99. Up to nine digits plus two decimal places and a dollar sign, making 11 digits total. Specified as (11, 2). No comma separation for thousands. $1000 is formatted as `$1000.00` instead of `$1,000.00`, and a negative value is `-$1000.00`.

  • **float** — Decimal number without a dollar sign.

  • **integer** — Whole number with no decimal.

  • **list** — Nested JSON list. **long date** — A date with the month spelled out and the four-digit year: `November 01, 2023` or `November 2023`.

Field nameTypeLengthDescription
`acct_no`alphanumeric12 (PRN)<br>16 (PAN)Either the Galileo PRN (savings) or a masked PAN with the format "XXXXXXXXXXXX9999"
`addr1`alphanumeric
Account holder address, line 1. Example: `"93713 Garfield Dr"`
`addr2`alphanumeric
Account holder address, line 2. Example: `"Apt 814"`
`apy_period`decimal
_Savings only_. The <<glossary:APY>> for the period.
`bal_id`integer
Balance ID (Galileo account number). The identifier for the account that was transacted on. Example: `3556`
`begin_balance`$decimal(11, 2)The account balance at midnight on the first day of the reporting period in <a href="ref:galileo-system-time" target="_blank">Galileo system time</a>. This is the total of all posted transactions, without pending transactions subtracted out. Example: `"$1498.21"`
`begin_date`long date
The first day of the reporting period. Example: `"November 01, 2023"`
`business_name`VARCHAR2
Name on the business account. Example: `"K&L Nursery"`
`cancel_date`YYYY-MM-DDT00:00:00
Cancelation date and time.
`city`alphanumeric
The account holder city of residence. Example: `"Silent Hill"`
`deposits`$decimal(11, 2)The sum of all deposits (payments) made during the statement period. Always a positive number. Example: `"$1220.18"`
`end_balance`$decimal(11, 2)The account balance at 23:59:59 on the last day of the reporting period in <a href="ref:galileo-system-time" target="_blank">Galileo system time</a>. This is the total of all posted transactions, without pending transactions subtracted out. Example: `"$10928.14"`
`end_date`long date
The last day of the reporting period. Example: `"November 30, 2023"`
`fullname`alphanumeric
The account holder's first name followed by the account holder's last name. Example: `"Lucy Lovelace"`
`has_interest`Boolean
_Savings only_. Whether this is an interest-bearing account.
`interest_accrued`$decimal
_Savings ony_. Amount of interest that has accrued during the billing period.
`interest_paid`$decimal
_Savings only_. Amount of interest paid into the account during the period.
`is_business_prod`alphabetic1Whether the `prod_id` is a business product: `Y` (business product) or `N` (not a business product. Example: `N`
`mmyy`integer4The abbreviated month and year for the statement. For cycle-date statements that span a month boundary, it is the month when the period begins. For example, if the cycle billing period goes from November 5 through December 4, 2023, the value is `"1123"`, not `"1223"`.
`month_year`alphanumeric
The written-out month and year for the statement. Like the `mmyy` field, it is the month that begins the period when the cycle period spans a month boundary. Example: `"November 2023"`
`od_per_fees`$decimal
_Not savings_. Overdraft fees for the period. Always a negative number. Example: `"-$5.00"`
`od_ytd_fees`$decimal
_Not savings_. Year-to-date overdraft fees. Always a negative number. `"-$10.00"`
`per_beg_dt`YYYY-MM-DDThh:mm:ss
Beginning date for the statement period in <a href="ref:galileo-system-time" target="_blank">Galileo system time</a>.
`per_end_dt`YYYY-MM-DDThh:mm:ss
Ending date for the statement period in <a href="ref:galileo-system-time" target="_blank">Galileo system time</a>.
`period_fees`$decimal
Fees paid during the period. Always a negative number. Example: `"-$22.50"`
`prn`string12The <<glossary:PRN>> of the account. Example: `"777777777777"`
`prod_id`integer
The number Galileo assigns to the product for this account. Example: `4444`
`prog_name`alphanumeric
The account program description. Example: `"Balance Financial by Galileo"`
`purchases`$decimal(11, 2)The sum of all point-of-sale purchases made during the statement period. Always a negative number. Example: `"-$19010.17”`
`ri_per_fees`$decimal
_Not savings_. Direct deposit fees for the period. Example: `"3.50"`
`ri_ytd_fees`$decimal
_Not savings_. Year-to-date direct deposit fees. Example: `"38.50"`
`savid`float
_Savings only_. The interest rate value that is displayed for bank compliance, as contained in the SAVID product parameter.
`savir`float
_Savings only_. The interest rate that has been set for the account, as contained in the SAVIR product parameter
`start_balance`$decimal
The available balance as of 00:00 on the first day of the statement period. Example: `"$245.67"`
`state`alphanumeric2 or 3The two-letter abbreviation of the account holder state of residence (in the U.S.) or the two-letter country abbreviation. Example: `"OH"` for Ohio
`statement_title`alphanumeric
Default title: `"Account Statement"`. A custom title can be added to the config file to override this.
`stmt_type`alphabetic1Type of statement: `D` (debit account), `S` (savings account)
`suppress_od`Boolean
Whether overdraft is suppressed: `true` or `false`
`transactions`list0–n itemsA list of transactions. See the [`transactions fields`](🔗) table. If there are no transactions during the reporting period, this list is not populated.
`ytd_fees`$decimal(11, 2)Year-to-date fees. The sum of all fees charged from January 1 through the end of the statement period. Always a negative number. For cycle periods that span a year boundary (Dec to Jan), this field includes only those fees charged from January 1 through the period end date. Example: `"-$100.09"`
`zip`alphanumeric
The account holder postal code. If there is no postal code on file, this will be an empty string. Example: `"84122"`

### `transactions` fields

These fields are nested in the `transactions` object for each transaction, when transactions are present.

Field nameTypeLengthDescription
`act_type`alphabetic2See <a href="ref:api-reference-activity-type" target="_blank">Activity Type</a> for possible values. Example: `"VI"`
`amt`$decimal(11, 2)Transaction amount. Can be a positive or negative number, depending on the type of transaction. Example: `"-$482.79"`
`otrans_dt`YYYY-MM-DDThh:mm:ss
The date-time the transaction posted or settled in <a href="ref:galileo-system-time" target="_blank">Galileo system time</a>. Example: `"2023-11-01T13:22:45"`
`otype`alphanumeric4See <a href="ref:api-reference-transaction-types" target="_blank">Transaction Types</a> for possible values. Example: `"W"`
`running_balance`$decimal
The available balance after this transaction took place. Example: `"$75.00"`
`source_id`integer
Identifier that maps back to the original transaction, such as authorization ID, payment ID, adjustment ID or ACH transaction ID. Example: `23944`
`trans_desc`alphanumeric
Transaction description. For card transactions this is DE043, and for others it corresponds to the `act_type`. Example: `"Smokey Kitchens Bakery, Fireweed, GA"` or `"Retail Load"`
`trans_dt`MM/DD/YYYY10Transaction date. The date the transaction posted or settled in <a href="ref:galileo-system-time" target="_blank">Galileo system time</a>. Example: `"11/01/2023"`

### Example JSON statements

#### Debit account statement



#### Savings account statement



## Converting JSONs to PDFs

One way to convert JSON data to PDFs is to follow these steps:

  1. Convert the JSON into a format that can be used by an HTML Jinja template.

  2. Convert the Jinja template into raw HTML.

  3. Use a third-party tool to convert the HTML to PDF.

You may find other ways to port JSON data to a PDF template as suits your use case.

Note

You must ensure that the JSON-to-PDF conversion includes the following elements: header, footer, and legal disclaimers.