Statements

Introduction

Statements are machine-generated CSV files that provide a list of transactions within different periods, organized by the effective time of each transaction. There are 3 statement types:

  • Fiat pay-in
  • Crypto pay-in
  • Offramp

There are two methods for retrieving statements: either by manually downloading them from the Breeze dashboard or by programmatically accessing them through the API.

Dashboard

Navigate to https://dashboard.breeze.cash/reports and download the files you want(crypto pay-in statements will be available in dashboard soon)

Pay-In Statements

Currrent Balance: the total balance to be settled, it may be greater than Settlement Amount Due because some transactions may not be payable in the upcomming settlement, due to the settlement period & delay settings.

Settlement Date: The due date for the upcoming settlement to be finished.

Settlement Amount Due: the amount to be transferred to the merchant in the upcomming settlement.

Pay-out statements

Balance: the available balance in the escrow wallet.

API access

3 steps are required for downloading statements by API:

  1. Get the list of latest statements.
  2. Get temporary download URL for one statement.
  3. Download the csv file by the URL.

Fetch latest statements

curl --location 'https://api.breeze.cash/v1/reports/statements?type=daily&accountType=payIn&limit=5&offset=0' \
--header "Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

This API will return the most recent statements, order by the time they were created.

Parameters

  • type: the date period type of the statements, allowed values: daily/weekly/montly.
  • accountType: the logical account type for the transactions, available values:
    • payIn: fiat pay-in
    • cryptoPayIn: crypto pay-in
    • payOut: crypto offramp
  • limit(optional): max page size, maximum allowed value is 100.
  • offset(optional): offset of the record number.

Sample response:

{
  "status": "SUCCEEDED",
  "data": {
    "count": 512,
    "results": [
      {
        "merchantId": "mch_fffffffffffff",
        "accountType": "payIn",
        "type": "daily",
        "maxEffectiveAt": 1755648000000,
        "minEffectiveAt": 1755561600000,
        "createdAt": 1755676978261,
        "id": "stm_ec50ecf8bf5317c9",
        "status": "skipped",
        "updatedAt": 1755676978916
      },
      {
        "merchantId": "mch_fffffffffffff",
        "accountType": "payIn",
        "type": "daily",
        "maxEffectiveAt": 1755561600000,
        "minEffectiveAt": 1755475200000,
        "createdAt": 1755590586151,
        "id": "stm_dfcd0fa4df749330",
        "status": "skipped",
        "updatedAt": 1755590589442
      }
    ]
  }
}
  • The statement is ready for download if the status is ready.
  • If the status is skipped, it means there're no transactions in the date range between [minEffectiveAt, maxEffectiveAt)

Fetch download URL

# stm_0000000001 comes from the response of the previous API call(the id field) 
curl --location 'https://api.breeze.cash/v1/reports/statements/stm_0000000001/download' \
--header 'Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

If the id is correct and the statement is ready for download(status is ready) the API response will be like below:

{
  "status": "SUCCEEDED",
  "url": "public-url-for-the-csv-file"
}

This url is publicly accessible but will expire after 10 minutes. It is strongly recommended to download the file immediately and store the contents in your own database or file storage system.

Report format

Pay-in reports

NOTICE: This report may contain 3 different transaction types: payment / settlement / refund, each transaction type has its own valid fields(see supported transaction types), so it's normal to see empty values.

FieldDescriptionSupported transaction types
IdUnique ID for this transaction, equivalent to pageId when it is a payment transaction.payment / settlement /refund
TimeTime when this transaction is done.payment / settlement / refund
TypeTransaction type, see transaction typespayment / settlement /refund
Amount_ChangeAmount change to the total balance.payment / settlement /refund
BalanceTotal payable balance before this transaction.payment / settlement / refund
Page_Client_Reference_IdClient Reference ID(If current row is a payment record)payment / refund
Page_Presentment_AmountThe amount displayed on the page.payment / refund
Page_Presentment_CurrencyThe currency for the page's amount display.payment / refund
Page_Settlement_AmountThe amount to be settled with the merchant.payment / refund
Page_Settlement_CurrencyThe currency used in settlement.payment / refund
Page_Fee_AmountThe fee amount.payment / refund
Page_Fee_CurrencyThe fee currency.payment / refund
Page_Exchange_RateThe exchange rate applied when the tx is happened, can ignore it for now.N/A
Page_Creation_TimeTimestamp when this page is created.payment / refund
Page_Settlement_IdSettlement ID for this payment. The settlement recordpayment
Settlement_TransactionTransaction hash for this settlement, if it was done by crypto.settlement
Settlement_Descriptionsettlement
Refund_OperatorThe email of the personnel who initiated this refund.refund
Refund_Page_IdThe Page ID that has been refunded by this transaction.refund
Refund_Reasonrefund

Transaction types

  • card payment
  • refund
  • settlement: settlement from Breeze to merchant.

These types are only used in crypto pay-in reports.

  • evm_deposit: Crypto payments by transferring to an EVM Blockchain address allocated for the customer
  • solana_deposit: Crypto payments by transferring to a Solana address allocated for the customer
  • evm_wallet: Crypto payments made by wallet apps like Metamask.
  • solana_wallet: Crypto payments made by Solana wallet apps like Phantom.

These types are only used in offramp reports.

  • offramp: An offramp request
  • deposit: Top-up transaction to the merchant’s account for offramp