Statements

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 Creating Statements from the RDFs 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 Galileo system time.
  • Galileo stores your statement data for two years.
  • An account must be in status: N for Galileo to generate a statement for it.

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 Get Access Token call:

  • accountNo — Use the 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 CV environment. For Production change the cv in the URL to pd.

https://asset-[clientname].cv.gpsrv.com/asset/statement/account?token=[token]&config=[config]&date=[mmyy]&statementType=[type]&output=json

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
  • outputjson
Example HTTP call
https://asset-clientname.cv.gpsrv.com/asset/statement/account?token=qXWUhQL8zwi3uJTykXuInGw7JbVoGf30bhPMNJLlc_nZekwvAQ&config=test&date=0118&statementType=G&output=json

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_noalphanumeric12 (PRN)
16 (PAN)
Either the Galileo PRN (savings) or a masked PAN with the format "XXXXXXXXXXXX9999"
addr1alphanumericAccount holder address, line 1. Example: "93713 Garfield Dr"
addr2alphanumericAccount holder address, line 2. Example: "Apt 814"
apy_perioddecimalSavings only. The APY for the period.
bal_idintegerBalance 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 Galileo system time. This is the total of all posted transactions, without pending transactions subtracted out. Example: "$1498.21"
begin_datelong dateThe first day of the reporting period. Example: "November 01, 2023"
business_nameVARCHAR2Name on the business account. Example: "K&L Nursery"
cancel_dateYYYY-MM-DDT00:00:00Cancelation date and time.
cityalphanumericThe 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 Galileo system time. This is the total of all posted transactions, without pending transactions subtracted out. Example: "$10928.14"
end_datelong dateThe last day of the reporting period. Example: "November 30, 2023"
fullnamealphanumericThe account holder's first name followed by the account holder's last name. Example: "Lucy Lovelace"
has_interestBooleanSavings only. Whether this is an interest-bearing account.
interest_accrued$decimalSavings ony. Amount of interest that has accrued during the billing period.
interest_paid$decimalSavings only. Amount of interest paid into the account during the period.
is_business_prodalphabetic1Whether the prod_id is a business product: Y (business product) or N (not a business product. Example: N
mmyyinteger4The 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_yearalphanumericThe 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$decimalNot savings. Overdraft fees for the period. Always a negative number. Example: "-$5.00"
od_ytd_fees$decimalNot savings. Year-to-date overdraft fees. Always a negative number. "-$10.00"
per_beg_dtYYYY-MM-DDThh:mm:ssBeginning date for the statement period in Galileo system time.
per_end_dtYYYY-MM-DDThh:mm:ssEnding date for the statement period in Galileo system time.
period_fees$decimalFees paid during the period. Always a negative number. Example: "-$22.50"
prnstring12The PRN of the account. Example: "777777777777"
prod_idintegerThe number Galileo assigns to the product for this account. Example: 4444
prog_namealphanumericThe 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$decimalNot savings. Direct deposit fees for the period. Example: "3.50"
ri_ytd_fees$decimalNot savings. Year-to-date direct deposit fees. Example: "38.50"
savidfloatSavings only. The interest rate value that is displayed for bank compliance, as contained in the SAVID product parameter.
savirfloatSavings only. The interest rate that has been set for the account, as contained in the SAVIR product parameter
start_balance$decimalThe available balance as of 00:00 on the first day of the statement period. Example: "$245.67"
statealphanumeric2 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_titlealphanumericDefault title: "Account Statement". A custom title can be added to the config file to override this.
stmt_typealphabetic1Type of statement: D (debit account), S (savings account)
suppress_odBooleanWhether overdraft is suppressed: true or false
transactionslist0–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"
zipalphanumericThe 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_typealphabetic2See Activity Type 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_dtYYYY-MM-DDThh:mm:ssThe date-time the transaction posted or settled in Galileo system time. Example: "2023-11-01T13:22:45"
otypealphanumeric4See Transaction Types for possible values. Example: "W"
running_balance$decimalThe available balance after this transaction took place. Example: "$75.00"
source_idintegerIdentifier that maps back to the original transaction, such as authorization ID, payment ID, adjustment ID or ACH transaction ID. Example: 23944
trans_descalphanumericTransaction 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_dtMM/DD/YYYY10Transaction date. The date the transaction posted or settled in Galileo system time. Example: "11/01/2023"

Example JSON statements

Debit account statement

{
  "acct_no": "777777777777",
  "addr1": "70359 Forest Ave",
  "addr2": "Apt 472",
  "adjustments": "152.34",
  "begin_balance": "831.12",
  "begin_date": "November 01, 2023",
  "city": "BUNKER HILL",
  "deposits": "4350.12",
  "end_balance": "4719.03",
  "end_date": "November 30, 2023",
  "fees": "-3.43",
  "fullname": "Katie Carrillo",
  "mmyy": "1123",
  "month_year": "November 2023",
  "prn": "777777777777",
  "prog_name": "Balance Financial by Galileo",
  "purchases": "-442.34",
  "state": "MA",
  "transactions": [
    {
      "amt": "-442.34",
      "trans_desc": "All Terrain Vehicles, Inc. Boston, MA",
      "trans_dt": "11/01/2023",
      "trans_type": "Visa settle"    
},
    {
      "amt": "4350.12",
      "trans_desc": "Payroll Deposit",
      "trans_dt": "11/02/2023",
      "trans_type": "Payment"    
},
    {
      "amt": "-3.43",
      "trans_desc": "Card-to-card fee",
      "trans_dt": "11/03/2023",
      "trans_type": "Fee"    
},
    {
      "amt": "-168.78",
      "trans_desc": "ATM Withdrawal, LEXINGTON, MA US",
      "trans_dt": "11/03/2023",
      "trans_type": "Visa settle"
    },
    {
      "amt": "152.34",
      "trans_desc": "Loyalty Program Cashback",
      "trans_dt": "11/04/2023",
      "trans_type": "Adjustment"
    }
  ],
  "transfers": "0.00",
  "withdrawals": "-168.78",
  "ytd_fees": "3.43",
  "zip": "02056"
}

Savings account statement

{
  "acct_no": "555555555555",
  "addr1": "",
  "addr2": "",
  "apy_period": "2.03",
  "bal_id": 202155,
  "begin_balance": "$20.03",
  "begin_date": "January 01, 2024",
  "business_name": null,
  "cancel_date": null,
  "city": "",
  "deposits": "$1113.03",
  "end_balance": "$615.06",
  "end_date": "January 31, 2024",
  "fullname": "Ezio Calabria",
  "has_interest": true,
  "interest_accrued": "$0.25",
  "interest_paid": "$0.03",
  "is_business_prod": "N",
  "mmyy": "0124",
  "month_year": "January 2024",
  "per_beg_dt": "2024-01-01T00:00:00",
  "per_end_dt": "2024-01-31T23:59:59",
  "period_fees": "$0.00",
  "prn": "555555555555",
  "prod_id": 3091,
  "prog_name": "Goalsetter Banking",
  "purchases": "$518.00",
  "savid": "2.01",
  "savir": "2.00",
  "start_balance": "$20.03",
  "state": "",
  "statement_title": "Savings Statement Title",
  "stmt_type": "S",
  "suppress_od": true,
  "transactions": [
    {
      "act_type": "PM",
      "amt": "$0.03",
      "otrans_dt": "2024-01-01T00:00:00",
      "otype": "MZ",
      "running_balance": "$20.06",
      "source_id": 143700,
      "trans_desc": "Interest Posting",
      "trans_dt": "01/01/2024"
    },
    {
      "act_type": "AD",
      "amt": "-$5.00",
      "otrans_dt": "2024-01-03T00:00:00",
      "otype": "M",
      "running_balance": "$15.06",
      "source_id": 140783,
      "trans_desc": "Transfer ",
      "trans_dt": "01/03/2024"
    },
    {
      "act_type": "PM",
      "amt": "$600.00",
      "otrans_dt": "2024-01-03T00:00:00",
      "otype": "RL",
      "running_balance": "$615.06",
      "source_id": 156056,
      "trans_desc": "Retail Load",
      "trans_dt": "01/03/2024"
    },
    {
      "act_type": "AD",
      "amt": "-$513.00",
      "otrans_dt": "2024-01-03T00:00:00",
      "otype": "M",
      "running_balance": "$102.06",
      "source_id": 140784,
      "trans_desc": "Transfer",
      "trans_dt": "01/03/2024"
    },
    {
      "act_type": "PM",
      "amt": "$513.00",
      "otrans_dt": "2024-01-05T00:00:00",
      "otype": "C2",
      "running_balance": "$615.06",
      "source_id": 157673,
      "trans_desc": "Account-to-Account Transfer",
      "trans_dt": "01/05/2024"
    }
  ],
  "ytd_fees": "$0.00",
  "zip": ""
}

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.