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, provided that each account has its own balance ID.
- If you generate a statement for a primary account that shares a balance with secondary accounts, all of the secondary-account transactions are included in the same statement.
- When you generate a statement for a secondary account that does not share a balance with the primary account, only the secondary-account transactions are included.
Criteria for generating statements
- 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
(active, normal) for Galileo to generate a statement. - For accounts in
status: C
(canceled), the cancel date must be later than the statement period start date. - A statement record for the statement period and statement type must not already exist in the Galileo system. This prevents duplicate statements in the case of a processing error.
- The account must be associated with a product ID.
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
— Pass1
(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 asYYYY-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 instancetoken
— The token returned by Get Access Tokenconfig
— A value provided by Galileodate
— Statement date in MMYY format. The month corresponds to the first day of the statement period.statementType
— Type of statement to return:G
— GPRD
— DDA, including overdraftS
— Savings
output
—json
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 numbermmyy
— 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
orNovember 2023
.
Field name | Type | Length | Description |
---|---|---|---|
acct_no | alphanumeric | 12 (PRN) 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 APY for the period where the apy_period is the APYE for the statement reporting 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 Galileo system time. 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 Galileo system time. 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 only. 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 | alphabetic | 1 | Whether the prod_id is a business product: Y (business product) or N (not a business product. Example: "N" |
mmyy | integer | 4 | The 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 | Non-savings. Total amount of overdraft fees assessed for the period. This is a sum of debits that always shows as a positive number. Example: "$5.00" | |
od_ytd_fees | $decimal | Non-savings. Total amount of overdraft fees assessed year-to-date. This is a sum of debits that always shows as a positive number. Example: "$10.00" | |
per_beg_dt | YYYY-MM-DDThh:mm:ss | Beginning date for the statement period in Galileo system time. | |
per_end_dt | YYYY-MM-DDThh:mm:ss | Ending date for the statement period in Galileo system time. | |
period_fees | $decimal | Total amount of fees assessed during the period. This is a sum of debits that always shows as a positive number. Example: "$22.50" | |
prn | string | 12 | The 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. This is a sum of debits that always shows as a positive number. Example: "$19010.17” |
ri_per_fees | $decimal | Non-savings. Direct deposit fees for the period. Example: "$3.50" | |
ri_ytd_fees | $decimal | Non-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 | alphanumeric | 2 or 3 | The 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 | alphabetic | 1 | Type of statement: D (debit account), S (savings account) |
suppress_od | Boolean | Whether overdraft is suppressed: true or false | |
transactions | list | 0–n items | A 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 assessed from January 1 through the end of the statement period. This is a sum of debits that always shows as a positive number. For cycle periods that span a year boundary (Dec to Jan), this field includes only those fees assessed 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
transactions
fieldsThese fields are nested in the transactions
object for each transaction, when transactions are present.
Field name | Type | Length | Description |
---|---|---|---|
act_type | alphabetic | 2 | See 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_dt | YYYY-MM-DDThh:mm:ss | The date-time the transaction was authorized in Galileo system time. Example: "2023-11-01T13:22:45" | |
otype | alphanumeric | 4 | See Transaction Types for possible values. Example: "W" |
post_ts | MM/DD/YYYY | 10 | The date the transaction settled in Galileo system time. Example: "11/01/2023" |
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 otype description. Example: "Smokey Kitchens Bakery, Fireweed, GA" or "Retail Load" | |
trans_dt | MM/DD/YYYY | 10 | Transaction 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",
"bal_id": 202155,
"begin_balance": "$0.00",
"begin_date": "June 11, 2024",
"business_name": null,
"cancel_date": null,
"city": "BUNKER HILL",
"deposits": "$1049.00",
"end_balance": "$455.30",
"end_date": "June 30, 2024",
"fullname": "Katie Carrillo",
"is_business_prod": "N",
"mmyy": "0624",
"month_year": "June 2024",
"od_per_fees": "$0.00",
"od_ytd_fees": "$0.00",
"per_beg_dt": "2024-06-01T00:00:00",
"per_end_dt": "2024-06-30T23:59:59",
"period_fees": "$26.36",
"prn": "777777777777",
"prod_id": 4444,
"prog_name": "Balance Financial by Galileo",
"purchases": "$593.70",
"ri_per_fees": "$0.00",
"ri_ytd_fees": "$0.00",
"start_balance": "$0.00",
"state": "MA",
"statement_title": "Account Statement",
"stmt_type": "D",
"suppress_od": false,
"transactions": [
{
"act_type": "PM",
"amt": "$500.00",
"otrans_dt": "06/14/2024 14:12:38",
"otype": "IQ",
"post_ts": "06/14/2024",
"running_balance": "$500.00",
"source_id": 21891,
"trans_desc": "CASH LOAD SERVICE",
"trans_dt": "06/14/2024"
},
{
"act_type": "SE",
"amt": "-$9.34",
"otrans_dt": "06/18/2024 09:33:21",
"otype": "5",
"post_ts": "06/18/2024",
"running_balance": "$490.66",
"source_id": 1027413,
"trans_desc": "Pizza Planet",
"trans_dt": "06/18/2024"
},
{
"act_type": "FE",
"amt": "-$1.99",
"otrans_dt": "06/25/2024 10:14:54",
"otype": "0219",
"post_ts": "06/25/2024",
"running_balance": "$488.67",
"source_id": 15741,
"trans_desc": "CASH LOAD SERVICE FEE",
"trans_dt": "06/25/2024"
},
{
"act_type": "FE",
"amt": "-$0.50",
"otrans_dt": "06/25/2024 10:22:08",
"otype": "3535",
"post_ts": "06/25/2024",
"running_balance": "$488.17",
"source_id": 15742,
"trans_desc": "Send a card service fee",
"trans_dt": "06/25/2024"
},
{
"act_type": "PM",
"amt": "$25.00",
"otrans_dt": "06/25/2024 14:10:34",
"otype": "IQ",
"post_ts": "06/25/2024",
"running_balance": "$513.17",
"source_id": 22131,
"trans_desc": "CASH LOAD SERVICE",
"trans_dt": "06/25/2024"
}
],
"ytd_fees": "$26.36",
"zip": "84121"
}
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:
- Convert the JSON into a format that can be used by an HTML Jinja template.
- Convert the Jinja template into raw HTML.
- 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.
Updated about 2 months ago