Nopan Reporting APIs API

This section provides endpoints for accessing and downloading financial reports generated by the Nopan platform. Reports are available for a range of types including transaction details, fee breakdowns, bank addendum data, and settlement summaries. Reports can be searched by date range, organization, or processing account, and downloaded by ID.

OpenAPI Specification

nopan-reporting-apis-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  version: v1
  title: Nopan Authentication APIs Reporting APIs API
  description: 'Download Nopan Postman collection: [Download](/postman/nopan-api-collection.zip)'
servers:
- url: https://api.nopan.io
tags:
- name: Reporting APIs
  description: This section provides endpoints for accessing and downloading financial reports generated by the Nopan platform. Reports are available for a range of types including transaction details, fee breakdowns, bank addendum data, and settlement summaries. Reports can be searched by date range, organization, or processing account, and downloaded by ID.
paths:
  /reports:
    get:
      tags:
      - Reporting APIs
      operationId: searchReports
      parameters:
      - name: from
        in: query
        required: true
        schema:
          type: string
          format: date-time
        description: 'Start of the date range filter<br/><small>Example: <i>2025-01-01T00:00:00Z</i></small>'
      - name: to
        in: query
        required: true
        schema:
          type: string
          format: date-time
        description: 'End of the date range filter<br/><small>Example: <i>2025-01-31T23:59:59Z</i></small>'
      - name: organizationId
        in: query
        required: false
        schema:
          type: string
        description: 'The organization ID<br/><small>Example: <i>org-1234</i></small>'
      - name: contractualEntityId
        in: query
        required: false
        schema:
          type: string
        description: 'The contractual entity ID associated with the organization<br/><small>Example: <i>entity-5678</i></small>'
      - name: processingAccountId
        in: query
        required: false
        schema:
          type: string
        description: 'Unique identifier of the processing account under which the payment is processed.<br/><small>Example: <i>pa-1234</i></small>'
      - name: name
        in: query
        required: false
        schema:
          type: string
        description: 'The report file name<br/><small>Example: <i>TRANSACTION_DETAILS_merchant-123_550e8400-e29b-41d4-a716-446655440000_20260101</i></small>'
      - name: type
        in: query
        required: false
        schema:
          type: string
        description: Filter results by report type
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  files:
                    type: array
                    items:
                      type: object
                      properties:
                        reportId:
                          type: string
                          description: 'Unique identifier of the report. Must be a valid UUID.<br/><small>Example: <i>550e8400-e29b-41d4-a716-446655440000</i></small>'
                        organizationId:
                          type: string
                          description: 'The organization ID<br/><small>Example: <i>org-1234</i></small>'
                        contractualEntityId:
                          type: string
                          description: 'The contractual entity ID associated with the organization<br/><small>Example: <i>entity-5678</i></small>'
                        processingAccountId:
                          type: string
                          description: 'Unique identifier of the processing account under which the payment is processed.<br/><small>Example: <i>pa-1234</i></small>'
                        reportType:
                          type: string
                          enum:
                          - TRANSACTION_DETAILS
                          - FEE_DETAILS
                          - BANK_ADDENDUM
                          - SETTLEMENT
                          - INVOICE
                          description: The type of report<br/><small>• <b> TRANSACTION_DETAILS</b> Detailed record of all individual transactions within the period</small><br/><small>• <b> FEE_DETAILS</b> Breakdown of fees applied per transaction within the period</small><br/><small>• <b> BANK_ADDENDUM</b> Bank-level supplementary settlement data</small><br/><small>• <b> SETTLEMENT</b> Summary of settled funds per processing period</small>
                        periodStart:
                          type: string
                          format: date-time
                          description: 'Start of the period covered by the report<br/><small>Example: <i>2025-01-01T00:00:00Z</i></small>'
                        periodEnd:
                          type: string
                          format: date-time
                          description: 'End of the period covered by the report<br/><small>Example: <i>2025-01-31T23:59:59Z</i></small>'
                        name:
                          type: string
                          description: 'The report file name<br/><small>Example: <i>TRANSACTION_DETAILS_merchant-123_550e8400-e29b-41d4-a716-446655440000_20260101</i></small>'
                        fileSize:
                          type: integer
                          format: int64
                          description: 'Size of the report file in bytes<br/><small>Example: <i>204800</i></small>'
                        numberOfRecords:
                          type: integer
                          format: int64
                          description: 'Number of records contained in the report<br/><small>Example: <i>1500</i></small>'
                        createdAt:
                          type: string
                          format: date-time
                          description: 'Timestamp when the report was generated<br/><small>Example: <i>2025-02-01T06:00:00Z</i></small>'
                  totalCount:
                    type: integer
                    format: int64
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusInfo: &id001
                    type: object
                    properties:
                      reasonCode:
                        type: string
                        description: 'Code of the status response<br/><small>Example: <i>-1</i></small>'
                      message:
                        type: string
                        description: 'Description of the current status response<br/><small>Example: <i>Awaiting user consent</i></small>'
                    description: The information about the status of the request
                  callId:
                    type: string
                    description: The request tracing ID
                  status:
                    type: string
                    enum:
                    - ACCEPTED
                    - PENDING
                    - APPROVED
                    - DECLINED
                    - CANCELED
                    description: The current state of the transaction<br/><small>• <b> ACCEPTED</b> Refund request received and awaiting processing</small><br/><small>• <b> PENDING</b> The transaction has reached the provider and waits for SCA</small><br/><small>• <b> APPROVED</b> The transaction has been accepted by the provider</small><br/><small>• <b> DECLINED</b> The transaction has been declined</small><br/><small>• <b> CANCELED</b> The transaction has been canceled</small>
                  fields:
                    type: object
                    additionalProperties:
                      type: string
                    description: A map of fields that have failed validation
                additionalProperties: false
        '401':
          description: Unauthorized
          content:
            application/json:
              schema: &id002
                type: object
                properties:
                  statusInfo: *id001
                  callId:
                    type: string
                    description: The request tracing ID
                  status:
                    type: string
                    enum:
                    - ACCEPTED
                    - PENDING
                    - APPROVED
                    - DECLINED
                    - CANCELED
                    description: The current state of the transaction<br/><small>• <b> ACCEPTED</b> Refund request received and awaiting processing</small><br/><small>• <b> PENDING</b> The transaction has reached the provider and waits for SCA</small><br/><small>• <b> APPROVED</b> The transaction has been accepted by the provider</small><br/><small>• <b> DECLINED</b> The transaction has been declined</small><br/><small>• <b> CANCELED</b> The transaction has been canceled</small>
                additionalProperties: false
        '403':
          description: Forbidden
          content:
            application/json:
              schema: *id002
        '404':
          description: Not Found
          content:
            application/json:
              schema: *id002
        '409':
          description: Conflict
          content:
            application/json:
              schema: *id002
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema: *id002
        '423':
          description: Locked
          content:
            application/json:
              schema: *id002
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema: *id002
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema: *id002
        '501':
          description: Not Implemented
          content:
            application/json:
              schema: *id002
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema: *id002
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema: *id002
      summary: Search reports
      description: Search for financial reports by date range, organization, or processing account.
  /reports/download:
    get:
      tags:
      - Reporting APIs
      operationId: downloadReport
      parameters:
      - name: reportId
        in: query
        required: true
        schema:
          type: string
          minLength: 1
        description: 'Unique identifier of the report. Must be a valid UUID.<br/><small>Example: <i>550e8400-e29b-41d4-a716-446655440000</i></small>'
      - name: organizationId
        in: query
        required: false
        schema:
          type: string
        description: 'The organization ID<br/><small>Example: <i>org-1234</i></small>'
      - name: contractualEntityId
        in: query
        required: false
        schema:
          type: string
        description: 'The contractual entity ID associated with the organization<br/><small>Example: <i>entity-5678</i></small>'
      - name: processingAccountId
        in: query
        required: false
        schema:
          type: string
        description: 'Unique identifier of the processing account under which the payment is processed.<br/><small>Example: <i>pa-1234</i></small>'
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusInfo: &id003
                    type: object
                    properties:
                      reasonCode:
                        type: string
                        description: 'Code of the status response<br/><small>Example: <i>-1</i></small>'
                      message:
                        type: string
                        description: 'Description of the current status response<br/><small>Example: <i>Awaiting user consent</i></small>'
                    description: The information about the status of the request
                  callId:
                    type: string
                    description: The request tracing ID
                  status:
                    type: string
                    enum:
                    - ACCEPTED
                    - PENDING
                    - APPROVED
                    - DECLINED
                    - CANCELED
                    description: The current state of the transaction<br/><small>• <b> ACCEPTED</b> Refund request received and awaiting processing</small><br/><small>• <b> PENDING</b> The transaction has reached the provider and waits for SCA</small><br/><small>• <b> APPROVED</b> The transaction has been accepted by the provider</small><br/><small>• <b> DECLINED</b> The transaction has been declined</small><br/><small>• <b> CANCELED</b> The transaction has been canceled</small>
                  fields:
                    type: object
                    additionalProperties:
                      type: string
                    description: A map of fields that have failed validation
                additionalProperties: false
        '401':
          description: Unauthorized
          content:
            application/json:
              schema: &id004
                type: object
                properties:
                  statusInfo: *id003
                  callId:
                    type: string
                    description: The request tracing ID
                  status:
                    type: string
                    enum:
                    - ACCEPTED
                    - PENDING
                    - APPROVED
                    - DECLINED
                    - CANCELED
                    description: The current state of the transaction<br/><small>• <b> ACCEPTED</b> Refund request received and awaiting processing</small><br/><small>• <b> PENDING</b> The transaction has reached the provider and waits for SCA</small><br/><small>• <b> APPROVED</b> The transaction has been accepted by the provider</small><br/><small>• <b> DECLINED</b> The transaction has been declined</small><br/><small>• <b> CANCELED</b> The transaction has been canceled</small>
                additionalProperties: false
        '403':
          description: Forbidden
          content:
            application/json:
              schema: *id004
        '404':
          description: Not Found
          content:
            application/json:
              schema: *id004
        '409':
          description: Conflict
          content:
            application/json:
              schema: *id004
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema: *id004
        '423':
          description: Locked
          content:
            application/json:
              schema: *id004
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema: *id004
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema: *id004
        '501':
          description: Not Implemented
          content:
            application/json:
              schema: *id004
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema: *id004
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema: *id004
      summary: Download report
      description: Download a report file by its ID.