Settlement API

Learn about reports for transaction settlements

Lithic's Settlement API enables you to reconcile daily cash movements from your settlement account against your transactions, as well as view interchange and network fees. The Settlement Summary endpoint shows the aggregate gross settlement by report date while the Settlement Details endpoint breaks down the gross settlement by transaction.

The Settlement API is intended for use in reconciliation, transaction inspection, and other data analysis. Customers managing their own settlements with the card network are encouraged to reference settlement advisement reports sent directly by the network, in lieu of the Settlement API, when facilitating actual cash movements.

Settlement Summaries update over time to account for new data delivered by the card networks. When the is_complete flag on a Settlement Summary is false, additional updates are expected for the given report date. When the is_complete flag is true, all data for a given report date has been reconciled and is available.

Settlement Summaries generally become available at a consistent time every day, but some variation in timing may occur due to multiple operational factors, such as when Lithic receives settlement information from the networks.

This feature is only available in your production environment.

📘

Settlement API is an Enterprise product. Please contact [email protected] if you are interested in using our settlement reporting.

Settlement Summary Schema

{
  "currency": String,
  "settled_net_amount": Integer,
  "transactions_gross_amount": Integer, 
  "interchange_gross_amount": Integer,
  "disputes_gross_amount": Integer,
  "other_fees_gross_amount": Integer,
  "details": [
    {
      "currency": String,
      "network": NETWORK.ENUM,
      "institution": String,
      "settled_net_amount": Integer,
      "transactions_gross_amount": Integer,
      "interchange_gross_amount": Integer,
      "disputes_gross_amount": Integer,
      "other_fees_gross_amount": Integer
    }
  ],
  "is_complete": Boolean,
  "report_date": String,
  "created": String,
  "updated": String
}

See Network and Fee Type enumerations below for a list of possible values.

currencyThree-digit alphabetic ISO 4217 code
settled_net_amountThe total net amount of cash moved. (net value of settled_gross_amount, interchange, fees)
transactions_gross_amountThe total amount of settlement impacting transactions (excluding interchange, fees, and disputes).
interchange_gross_amountTotal gross amount of interchange. Interchange data is available from 2023-05-04 onwards.
disputes_gross_amountTotal gross amount of disputes settlements.
other_fees_gross_amountTotal gross amount of other fees besides interchange.
detailsA JSON response that contains a breakdown by network and institution. Institution is the most granular ID the network settles with (e.g., ICA for Mastercard, FTSRE for Visa).
See Network enumerations below.
is_completeAll transaction-level data has been processed and reconciliation is complete. This will generally occur at a consistent time daily but may vary sometimes within a given day due to various operational factors.
createdTimestamp of when the report was first generated; in UTC timezone.
Example: 2023-06-01T00:00:00
updatedTimestamp of when the report was updated; in UTC timezone
Example: 2023-06-01T00:00:00
report_dateDate of when the report was first generated

Settlement Details Schema

{
    "token": String,
    "institution": String,
    "account_token": String,
    "card_token": String,
    "card_program_token": String,
    "event_tokens": [String],
    "transaction_token": String,
    "currency": String,
    "network": String,
    "transactions_gross_amount": Integer,
    "disputes_gross_amount": Integer,
    "interchange_gross_amount": Integer,
    "interchange_fee_extended_precision": Integer,
    "other_fees_gross_amount": Integer,
    "other_fees_details": {
      "FEE_TYPE.ENUM": Integer
    },
    "type": String,
    "created": String,
    "updated": String,
    "settlement_date": String,
    "report_date": String
}
tokenGlobally unique identifier denoting the Settlement Detail
institutionThe most granular ID the network settles with (e.g., ICA for Mastercard, FTSRE for Visa)
account_tokenGlobally unique identifier denoting the Account associated with this settlement
card_tokenGlobally unique identifier denoting the card that the associated Transaction occurred on
card_program_tokenGlobally unique identifier denoting the card program that the associated Transaction occurred on
event_tokensGlobally unique identifiers denoting the Events associated with this settlement
transaction_tokenGlobally unique identifier denoting the associated Transaction object
currency3-digit alphabetic ISO 4217 code
networkNetwork on which this interchange was collected.
Enumerations include: VISA, MASTERCARD, MAESTRO, INTERLINK, UNKNOWN
transactions_gross_amountThe gross settled amount of this record. A positive amount indicates a debit (e.g., clearing) while a negative amount indicates a credit (e.g., refund). This will be in the currency’s smallest unit (e.g., cents for USD).
interchange_gross_amountThe gross interchange amount associated with this settled transaction
interchange_fee_extended_precisionThe gross interchange amount associated with this settled transaction in six-digit extended precision (e.g., $0.101 = 101000. The total for interchange shown in the Summary endpoint is the sum of this field for every record.
disputes_gross_amountTotal gross amount of disputes settlements.
other_fees_gross_amountTotal gross mount of other fees besides interchange.
other_fees_detailsA json response that describes the total gross amount of other fees by type. The json contains an amount and a fee type.
See Fee Type enumerations below.
fee_descriptionThe network's description of the fee. Only present if type is FEE.
typeIdentifies the type of record. See Type enumerations below.
Data available for MASTERCARD and MAESTRO records only. Others expected Q1 2024.
createdTimestamp of when the report was first generated; in UTC timezone. Example: 2023-06-01T00:00:00
updatedTimestamp of when the report was updated; in UTC timezone Example: 2023-06-01T00:00:00
settlement_dateDate of when money movement is triggered for the transaction
report_dateDate of when the report was first generated

Get Settlement Summary

GET https://api.lithic.com/v1/reports/settlement/summary/{report_date}

Sample Request

curl https://api.lithic.com/v1/reports/settlement/summary/2023-06-16 \
  -H 'AUTHORIZATION: YOUR_API_KEY'

Sample Response

{
  "currency": "USD",
  "settled_net_amount": 1893,
  "transactions_gross_amount": 1900,
  "interchange_gross_amount": -7,
  "disputes_gross_amount": 0,
  "other_fees_gross_amount": 0,
  "details": [
    {
      "network": "MASTERCARD",
      "institution": "00001",
      "settled_net_amount": 1893,
      "transactions_gross_amount": 1900,
      "interchange_gross_amount": -7,
      "disputes_gross_amount": 0,
      "other_fees_gross_amount": 0
    }
  ],
  "is_complete": true,
  "report_date": "2024-11-25",
  "created": "2024-11-25T02:07:42.591295",
  "updated": "2024-11-25T02:07:42.591295"
}

report_date (required, path parameter)Date string in YYYY-MM-DD format. Date of when the report was first generated.
String. Permitted values: Date string in the form YYYY-MM-DD.

Get Settlement Details

GET https://api.lithic.com/v1/reports/settlement/details/{report_date}

Sample Request

curl https://api.lithic.com/v1/reports/settlement/details/2023-06-16?starting_after=41820d45-95ea-4364-8b0e-4c55c7d45330&page_size=1 \
  -H 'AUTHORIZATION: YOUR_API_KEY'

Sample Response

{
  "data": [
    {
      "token": "e34a817f-119d-4976-9fb3-8b020b8bbec3",
      "institution": "00001",
      "account_token": "6c25d6a4-4ff3-46f0-8f9b-f2cbb7e20e09",
      "event_tokens": [
        "8fce9192-41ff-4a7a-8359-bd33b3e0a7c9"
      ],
      "transaction_token": "0e98152b-3753-4a17-bfe2-c6f575c83b85",
      "card_token": "047298ea-5789-46e4-95fa-154aeeab6af3",
      "card_program_token": "62135b36-324f-443a-a630-bab38fe86868",
      "currency": "USD",
      "network": "MASTERCARD",
      "transactions_gross_amount": 1900,
      "interchange_gross_amount": -7,
      "interchange_fee_extended_precision": -70000,
      "disputes_gross_amount": 0,
      "other_fees_gross_amount": 80,
      "other_fees_details": {},
      "type": "CLEARING",
      "created": "2024-11-25T02:07:42.591295",
      "updated": "2024-11-25T02:07:42.591295",
      "settlement_date": "2024-11-25",
      "report_date": "2024-11-25",
    }
  ],
  "page_size": 1,
  "has_more": true
}
report_date
(required, path parameter)
Date string in YYYY-MM-DD format. Date of when the report was first generated.
String. Permitted values: Date string in the form YYYY-MM-DD.
page_size (optional, query parameter)For cursor-based pagination - specifies the number of entries to be included on each page in the response.
Default value is 50. Integer. Permitted values: 1-1000.
starting_after (optional, query parameter)For cursor-based pagination - will return a list starting after the object whose token is passed in the parameter. Requests can only use either starting_after or ending_before.
For example, you have a list of 100 Card Transaction objects where the first entry is UUID abcd and last entry is UUID wxyz. A request of starting_after = abcd and page_size = 100 will return 99 results (abcd is excluded from the response).
String. Permitted values: 36-digit version 4 UUID (including hyphens)
ending_before (optional, query parameter)For cursor-based pagination - will return a list ending before the object whose token is passed in the parameter. Requests can only use either starting_after or ending_before.
For example, you have a list of 100 Card Transaction objects where the first entry is UUID abcd and last entry is UUID wxyz. A request of ending_before = wxyz and page_size = 100 will return the full list of 99.
String. Permitted values: 36-digit version 4 UUID (including hyphens)

Enumerations

Network Enumerations

INTERLINK
MAESTRO
MASTERCARD
UNKNOWN
VISA

Type Enumerations

CLEARINGDual Message System transaction settlement
FINANCIALSingle Message System transaction settlement
NON_FINANCIALSingle Message System message. These messages do not have a transactions_gross_amount but can have interchange_gross_amount, a common example is a card balance check.
ADJUSTMENTAdjustment issued by the network to correct a transaction, interchange, fee, or other amount
CHARGEBACKIssuer has initiated a chargeback
REPRESENTMENTMerchant response to a first chargeback
PREARBITRATIONIssuer response to a merchant's representment
ARBITRATIONFinal phase of the dispute lifecycle
FEEFee collected by the network at the ICA/FTSRE level

Fee Type Enumerations

ISAInternational Service Assessment (ISA) fees for cross-border transactions (Visa only)