Request and access settlement reports

Login, request and access consolidated settlement reports via your SFTP connection.

In order to access your consolidated settlement files, you will need to:

  1. Generate a merchant user login
  2. Request a consolidated file via API
  3. Access settlement files

Merchant user login

Make a POST to log into the Settlement Reporting system and obtain an access token to access merchant settlement data and reports.

📘

Spreedly will provide the username and password to be used for the API call. This should be used as a daily login for merchant users to access settlement reports. A new token should be obtained when the previous one expires.

Unlike the Spreedly transactional API, Consolidated Settlement Reporting uses JWT (JSON Web Token)–based authentication aligned with OAuth 2.0 principles.

API Endpoint

POST /v1/auth/login

Example Request (cURL)

curl --location '/v1/auth/login' \
--header 'Content-Type: application/json' \
--data-raw '{
    "username": "User1",
    "password": "Test@123"
}'

Headers

HeaderValueDescription
Content-Typeapplication/jsonMedia type of the request body

Request Fields

FieldDescription
username (string, required)The merchant user's username
password (string, required)The merchant user's password

Example Response

{
  "status": "success",
  "data": {
    "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    "token_type": "Bearer",
    "user": {
      "id": "user_456",
      "username": "User1",
      "merchant_id": "merchant_123",
      "role": "admin"
    }
  }
}

Response Fields

FieldDescription
access_tokenThe authentication token scoped to the merchant user's permissions
token_typeType of token associated with the access_token
idUnique identifier of the user
usernameThe merchant user's username
merchant_idYour merchant ID
roleRole assigned to the user based on permissions

Request a new settlement report

Make a POST to create a new settlement report configuration with scheduling, filtering, and webhook delivery options. Requires merchant user authentication.

For detailed information on each field value, view the settlement request field values guide

API Endpoint

POST /v1/settlement-reports

Example Request (cURL)

{
    "schedule_config": {
        "start_date": "12-02-2025",
        "end_date": "12-02-2025",
        "frequency": "once"
    },
    "webhook_config": {
        "url": "https://example.com"
    },
    "filter_config": {
        "filter_map": {
            "psp": [],
            "country": [""],
            "payment_method": [],
            "payment_method_type": [],
            "date_range": {
                "start_date": "2025-01-01",
                "end_date": "2025-01-31"
            }
        }
    }
}

Headers

HeaderValueDescription
Content-Typeapplication/jsonMedia type of the request body
X-Api-KeyBearer {jwt_token}Your authentication token

Request Fields

FieldTypeRequiredDescription
start_datestringyesReport schedule start date (MM-DD-YYYY)
end_datestringyesReport schedule end date (MM-DD-YYYY)
frequencystringyesReport frequency: once, daily, weekly, monthly
urlstringyesWebhook URL for report delivery
psparraynoFilter by payment service providers
countryarraynoFilter by country codes
payment_methodarraynoFilter by payment methods
payment_method_typearraynoFilter by payment method types
date_rangeobjectyesTransaction date range filter
date_range.start_datestringyesFilter start date (YYYY-MM-DD)
date_range.end_datestringyesFilter end date (YYYY-MM-DD)

Example Response

{
  "id": "report_789",
  "merchant_id": "merchant_123",
  "report_name": "Daily Settlement Summary",
  "frequency": "daily",
  "format": "csv",
  "status": "active",
  "created_at": "2024-01-15T12:00:00Z"
}

Response Fields

FieldDescription
idUnique identifier of requested report
merchant_idID of the merchant for this report configuration
report_nameDescriptive name for the report
frequencyReport frequency (e.g., "daily", "weekly", "monthly")
formatReport format (e.g., "csv")
statusStatus of requested report
created_atDate and time report was requested

Access settlement files

After requesting your SFTP credentials and receiving a completed status, access the file via the designated SFTP location.

📘

Consolidated files will be hosted and stored on Spreedly's SFTP server for 1 year.

Field mappings for each PSP can be found in the Normalization Field Mapping guide