Airtm Reports API

# Reports Generate detailed financial reports for your Airtm Enterprise account. Reports provide transaction data, audit trails, and downloadable CSV files for accounting and compliance. ## How Reports Work Reports are generated asynchronously to handle large datasets efficiently: 1. **Create** - Submit report request for specific month/year 2. **Monitor** - Check status until completed 3. **Download** - Get secure CSV file when ready ## Report Types ### Transaction Reports Complete transaction data including all payouts and payins with amounts, fees, recipients, and status information. ### Audit Reports Comprehensive audit trails including account balance changes, administrative actions, and system events. ## Core Operations ### Create Report Generate a new report for a specific month and year. Reports are processed asynchronously. ### List Reports Get paginated list of your reports with filtering by type and status. ### Get Report Details Retrieve information about a specific report including generation status and metadata. ### Download Report File Get secure download URL for completed reports. URLs expire after 1 hour for security. ## Report Statuses | Status | Description | Next Steps | | ------------ | ------------------ | ------------------- | | `PENDING` | Report queued | Wait for processing | | `PROCESSING` | Being generated | Monitor status | | `COMPLETED` | Ready for download | Download file | | `FAILED` | Generation failed | Check error, retry | ## Report Contents ### CSV Format Reports include comprehensive data with columns for transaction IDs, types, statuses, amounts, fees, recipients, and timestamps. ### Data Scope - All transactions for the specified month - Complete fee breakdowns - Currency conversion details - Compliance and regulatory information ## Best Practices - Generate reports during off-peak hours when possible - Use monthly ranges for better performance - Download reports immediately after completion - Implement proper retry logic for failed generations - Store downloaded reports securely ## Common Issues **Report Stuck in Pending** - Check for high system load - Contact support if stuck over 30 minutes **Empty Reports** - Verify transactions exist for the date range - Check timezone settings **Download URL Expired** - Generate new download URL - URLs expire after 1 hour ## Error Handling - **Report Not Found (415042)**: Check report ID - **Report Not Completed (415044)**: Wait for processing to finish - **Invalid Parameters (415054)**: Verify month/year values For complete error reference, see [Reason Codes](#description/reason-codes). ## Getting Started 1. Set up [authentication](#description/authentication) 2. Test report generation in sandbox 3. Implement status monitoring 4. Set up secure file download ## Related Resources - [Payouts](#tag/payouts) - Transaction data included in reports - [Account Management](#tag/me) - Check account details - [Error Codes](#description/reason-codes) - Troubleshoot issues

Operations 4

POST /reports Create a Report #
GET /reports List Reports #
GET /reports/{id} Get Report Details #
GET /reports/{id}/file Get Report File #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/airtm-reports-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

airtm-reports-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Airtm Enterprise API V2 Reports API
  version: 1.155.0
  description: '# Introduction


    The Airtm Enterprise API enables organizations to send and receive payments globally through a simple REST API.'
  contact:
    name: Airtm Enterprise
    email: enterprise@airtm.com
    url: https://www.airtm.com
servers:
- url: https://api.enterprise.airtm.com/v2
- url: https://api.stg.enterprise.airtm.com/v2
tags:
- name: Reports
  description: '# Reports


    Generate detailed financial reports for your Airtm Enterprise account.'
paths:
  /reports:
    post:
      operationId: GenerateReport
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Report'
        default:
          description: Error
          content:
            application/json:
              schema:
                properties:
                  code:
                    type: string
                    description: 'Machine-friendly error code


                      See the API error code catalog in the documentation for the endpoint surface you are using.'
                    example: '415096'
                  message:
                    type: string
                    description: Human-readable error message
                    example: Invalid email address
                  data:
                    $ref: '#/components/schemas/Record_string.unknown_'
                    description: Additional data related to the error
                    example:
                      email: invalid@address
                required:
                - code
                - message
                type: object
      description: 'Generate a new report for a given year/month.


        To get a PDF or CSV report, you must first request its generation if it does not already exist.

        To do so, you must provide the year and month'
      summary: Create a Report
      tags:
      - Reports
      security:
      - basicAuth: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateReportRequest'
    get:
      operationId: ListReports
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Paginated_Report_'
        default:
          description: Error
          content:
            application/json:
              schema:
                properties:
                  code:
                    type: string
                    description: 'Machine-friendly error code


                      See the API error code catalog in the documentation for the endpoint surface you are using.'
                    example: '415096'
                  message:
                    type: string
                    description: Human-readable error message
                    example: Invalid email address
                  data:
                    $ref: '#/components/schemas/Record_string.unknown_'
                    description: Additional data related to the error
                    example:
                      email: invalid@address
                required:
                - code
                - message
                type: object
      description: List existing reports
      summary: List Reports
      tags:
      - Reports
      security:
      - basicAuth: []
      parameters:
      - description: Gets results before the specified cursor.
        in: query
        name: before
        required: false
        schema:
          type: string
      - description: Gets results after the specified cursor.
        in: query
        name: after
        required: false
        schema:
          type: string
      - description: The type of report to filter by
        in: query
        name: type
        required: true
        schema:
          $ref: '#/components/schemas/ReportType'
      - description: The status to filter by
        in: query
        name: status
        required: false
        schema:
          $ref: '#/components/schemas/ReportStatus'
      - description: The maximum number of items to fetch.
        in: query
        name: perPage
        required: false
        schema:
          default: 12
          format: int32
          type: integer
          minimum: 6
          maximum: 100
  /reports/{id}:
    get:
      operationId: GetReport
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Report'
        default:
          description: Error
          content:
            application/json:
              schema:
                properties:
                  code:
                    type: string
                    description: 'Machine-friendly error code


                      See the API error code catalog in the documentation for the endpoint surface you are using.'
                    example: '415096'
                  message:
                    type: string
                    description: Human-readable error message
                    example: Invalid email address
                  data:
                    $ref: '#/components/schemas/Record_string.unknown_'
                    description: Additional data related to the error
                    example:
                      email: invalid@address
                required:
                - code
                - message
                type: object
      summary: Get Report Details
      tags:
      - Reports
      security:
      - basicAuth: []
      parameters:
      - description: The report's id
        in: path
        name: id
        required: true
        schema:
          type: string
  /reports/{id}/file:
    get:
      operationId: GetReportFile
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportFile'
        default:
          description: Error
          content:
            application/json:
              schema:
                properties:
                  code:
                    type: string
                    description: 'Machine-friendly error code


                      See the API error code catalog in the documentation for the endpoint surface you are using.'
                    example: '415096'
                  message:
                    type: string
                    description: Human-readable error message
                    example: Invalid email address
                  data:
                    $ref: '#/components/schemas/Record_string.unknown_'
                    description: Additional data related to the error
                    example:
                      email: invalid@address
                required:
                - code
                - message
                type: object
      description: Get a report file
      summary: Get Report File
      tags:
      - Reports
      security:
      - basicAuth: []
      parameters:
      - description: The report's id
        in: path
        name: id
        required: true
        schema:
          type: string
components:
  schemas:
    ReportStatus:
      description: 'The current status of the report


        - `PENDING`: The report is pending generation.

        - `IN_PROGRESS`: The report is currently being generated.

        - `COMPLETED`: The report has been generated and is ready for download.

        - `FAILED`: The report generation failed.'
      enum:
      - PENDING
      - IN_PROGRESS
      - COMPLETED
      - FAILED
      type: string
      x-enum-varnames:
      - PENDING
      - IN_PROGRESS
      - COMPLETED
      - FAILED
    ReportFile:
      description: An Activity Report File
      properties:
        url:
          type: string
          description: The URL of the activity report file.
      required:
      - url
      type: object
      additionalProperties: false
    Record_string.unknown_:
      properties: {}
      additionalProperties: {}
      type: object
      description: Construct a type with a set of properties K of type T
    Report:
      properties:
        updatedAt:
          type: string
          format: date-time
          description: Report end date
        createdAt:
          type: string
          format: date-time
          description: Report end date
        periodTo:
          type: string
          format: date-time
          description: Report end date
        periodFrom:
          type: string
          format: date-time
          description: Report start date
        status:
          $ref: '#/components/schemas/ReportStatus'
          description: The current status of the report
        enterpriseUserId:
          type: string
          description: Unique ID of the enterprise
          format: uuid
        type:
          $ref: '#/components/schemas/ReportType'
        id:
          type: string
          description: Unique ID of the report
          format: uuid
      required:
      - updatedAt
      - createdAt
      - periodTo
      - periodFrom
      - status
      - enterpriseUserId
      - type
      - id
      type: object
    CreateReportRequest:
      properties:
        year:
          type: number
          format: double
          description: The year of the report to generate
          example: 2025
          minimum: 2023
        month:
          type: number
          format: double
          description: The month of the report to generate
          example: 6
          minimum: 1
          maximum: 12
        type:
          $ref: '#/components/schemas/ReportType'
          description: The type of the report to generate
          example: CSV
      required:
      - year
      - month
      type: object
      additionalProperties: false
    Paginated_Report_:
      description: Represents a paginated collection of items.
      properties:
        items:
          items:
            $ref: '#/components/schemas/Report'
          type: array
          description: The items in the current page.
        startCursor:
          type: string
          description: The cursor for the first item in the current page.
        endCursor:
          type: string
          description: The cursor for the last item in the current page.
      required:
      - items
      type: object
      additionalProperties: false
    ReportType:
      description: Type of activity report
      enum:
      - PDF
      - CSV
      type: string
      x-enum-varnames:
      - PDF
      - CSV
      example: CSV
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
x-tagGroups:
- name: Payout Operations
  tags:
  - Payouts
  - Bulk Payouts
  - Users
- name: Payin Operations
  tags:
  - Payins
- name: Account
  tags:
  - Me
  - Deposits
  - Reports
- name: Direct Withdrawal
  tags:
  - External Bank Account
  - External Crypto Account
  - Withdrawals
- name: Webhooks
  tags:
  - Webhooks