---
title: "Statements"
method: POST
path: "/v2/statements"
tags: ["finances"]
---

# Statements

`POST /v2/statements`

## Request body

- StatementCreationRequest
  - `wallet` StatementWallet, required — Specifies which wallet to generate a statement for. You can check which wallets you have from the [wallet balances](/v2/api-reference/wallet-balances/wallet-balances) endpoint.
    - `country` string, required — Country code for the wallet you are generating a statement for. You can check which wallets you have from the [wallet balances](/v2/api-reference/wallet-balances/wallet-balances) endpoint. Format is ISO 3166-1 alpha-3, three character country code in upper case. Read more from [Wikipedia](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3#Officially_assigned_code_elements).
    - `currency` string, required — ISO currency code for the wallet you are generating a statement for. You can check which wallets you have from the [wallet balances](/v2/api-reference/wallet-balances/wallet-balances) endpoint. Format must be the ISO 4217 three character currency code in upper case. Read more from [Wikipedia](https://en.wikipedia.org/wiki/ISO_4217#Active_codes).
    - `provider` string — If you have provider specific wallets, it indicates which provider specific wallet to generate the statement for in this country. You can check which wallets you have from the [wallet balances](/v2/api-reference/wallet-balances/wallet-balances) endpoint.
  - `callbackUrl` string, required — The URL where PawaPay will `POST` a callback with the `downloadUrl` when the statement has been generated.
  - `startDate` string, date-time, required — The start date of the statement date range. Format defined by 'date-time' in RFC3339 section 5.6 from [IETF](https://tools.ietf.org/html/rfc3339#section-5.6)
  - `endDate` string, date-time, required — The end date of the statement date range. Format defined by 'date-time' in RFC3339 section 5.6 from [IETF](https://tools.ietf.org/html/rfc3339#section-5.6)
  - `compressed` boolean — If `true`, the statement will be compressed using gzip and returned with a `.csv.gz` extension. If `false` or not provided, the statement will be returned as a CSV file with a `.csv` extension.

## Response `200`

Request has been accepted for processing by PawaPay

- StatementCreationResponse
  - `statementId` string, uuid — The unique ID for this statement as specified by PawaPay.
  - `status` 'ACCEPTED' | 'REJECTED', required — The initiation status of the statement: * `ACCEPTED` - The statement has been **accepted** by PawaPay for generation. * `REJECTED` - The statement request has been **rejected** by PawaPay. See failureReason for details.
  - `created` string, date-time — The timestamp of when the statement was created in the PawaPay platform. Format defined by 'date-time' in RFC3339 section 5.6 from [IETF](https://tools.ietf.org/html/rfc3339#section-5.6)
  - `failureReason` StatementCreationFailureReason
    - `failureCode` 'NO_AUTHENTICATION' | 'AUTHENTICATION_ERROR' | 'AUTHORISATION_ERROR' | 'INVALID_INPUT' | 'MISSING_PARAMETER' | 'UNSUPPORTED_PARAMETER' | 'INVALID_PARAMETER' | 'INVALID_CALLBACK_URL' | 'INVALID_DATE_RANGE' | 'WALLET_NOT_FOUND', required — Possible statement failure codes: * `NO_AUTHENTICATION` - The API token was not found in the request headers. * `AUTHENTICATION_ERROR` - The API token in the request headers is not valid. * `AUTHORISATION_ERROR` - The API Token in the request header is not authorised to make this request. * `INVALID_INPUT` - We were unable to parse the payload of the request. * `MISSING_PARAMETER` - A mandatory parameter was missing from the request body. * `UNSUPPORTED_PARAMETER` - An unsupported parameter was found in the request body. * `INVALID_PARAMETER` - A parameter had an incorrect value. * `INVALID_CALLBACK_URL` - Callback URL must be a valid URL and use HTTPS schema. * `INVALID_DATE_RANGE` - Date range exceeds 31 days. * `WALLET_NOT_FOUND` - Wallet requested does not exist.
    - `failureMessage` string — Description of the reason for this failure

## Other responses

- `400` — Request was rejected due to incompatibility with PawaPay API specification
- `401` — Authentication failed. Make sure you have added the API token into the header. If using signatures, make sure they are valid.
- `403` — Authorization failure. Please check your authentication token.
- `500` — An unknown failure has occured.

---

[API](https://skmtc.net/pawapay/apis/pawapay-merchant-api-v2.md) · [All operations](https://skmtc.net/pawapay/apis/pawapay-merchant-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pawapay/pawapay-merchant-api-v2/versions/ce13c31e9746/schema)
