Settlement Service API

Settlement Service provides core banking settlement operations for the DICTRA PIX platform, including payment processing, QR code generation, file import/export, and recurring payment schedules.

Version: 1.0.0 Base URL: /api/v1

Key Features

  • Payment Requests: Create, track, and manage PIX payment requests

  • QR Code Generation: Generate BR Code/EMV PIX QR codes with CRC16 validation

  • File Import/Export: Process CNAB240, CNAB400, CSV, and JSON payment files

  • Recurring Schedules: Manage scheduled and recurring payments (ONCE, DAILY, WEEKLY, MONTHLY)

  • Credit Confirmation: Two-step payment confirmation workflow

Authentication

All endpoints (except health checks) require JWT authentication via Authorization: Bearer <token> header.

Health

Health Check

GET https://api.dictra.com.br/health
Responses200
Headers
Content-Type: application/json
Body
{
  "status": "ok"
}

Liveness Probe
GET/health

Simple liveness check to verify the service is running.


Readiness Check

GET https://api.dictra.com.br/ready
Responses200503
Headers
Content-Type: application/json
Body
{
  "status": "ready",
  "database": "connected"
}
Headers
Content-Type: application/json
Body
{
  "status": "unavailable",
  "database": "disconnected"
}

Readiness Probe
GET/ready

Readiness check with database connectivity verification.


Payment Requests

Payment request endpoints for creating and managing PIX payment transactions.

Payment Collection

POST https://api.dictra.com.br/payments
Requestsexample 1
Headers
Content-Type: application/json
Authorization: Bearer <jwt_token>
Body
{
  "external_id": "MERCHANT-12345",
  "amount": 15000,
  "currency": "BRL",
  "debtor_ispb": "12345678",
  "debtor_document": "12345678901",
  "debtor_name": "João da Silva",
  "debtor_account_no": "123456",
  "debtor_account_type": "CACC",
  "debtor_branch": "0001",
  "creditor_ispb": "87654321",
  "creditor_document": "98765432100",
  "creditor_name": "Maria Santos",
  "creditor_account_no": "654321",
  "creditor_account_type": "SVGS",
  "creditor_branch": "0002",
  "description": "Payment for invoice #12345",
  "qr_code_data": "00020126...6304ABCD",
  "tx_id": "ABC123XYZ",
  "scheduled_date": "2026-02-15T10:00:00Z",
  "discounts": [
    {
      "date": "2026-02-10T00:00:00Z",
      "amount": 500
    }
  ],
  "additional_info": [
    {
      "key": "invoice_number",
      "value": "INV-12345"
    }
  ]
}
Schema
{
  "type": "object",
  "required": [
    "amount",
    "debtor_ispb",
    "debtor_document",
    "debtor_account_no",
    "debtor_account_type",
    "creditor_ispb",
    "creditor_document",
    "creditor_account_no",
    "creditor_account_type"
  ],
  "properties": {
    "external_id": {
      "type": "string"
    },
    "amount": {
      "type": "integer",
      "minimum": 1
    },
    "currency": {
      "type": "string",
      "enum": [
        "BRL"
      ]
    },
    "debtor_ispb": {
      "type": "string",
      "pattern": "^[0-9]{8}$"
    },
    "debtor_document": {
      "type": "string"
    },
    "debtor_name": {
      "type": "string"
    },
    "debtor_account_no": {
      "type": "string"
    },
    "debtor_account_type": {
      "type": "string",
      "enum": [
        "CACC",
        "SVGS",
        "SLRY",
        "TRAN"
      ]
    },
    "debtor_branch": {
      "type": "string"
    },
    "creditor_ispb": {
      "type": "string",
      "pattern": "^[0-9]{8}$"
    },
    "creditor_document": {
      "type": "string"
    },
    "creditor_name": {
      "type": "string"
    },
    "creditor_account_no": {
      "type": "string"
    },
    "creditor_account_type": {
      "type": "string",
      "enum": [
        "CACC",
        "SVGS",
        "SLRY",
        "TRAN"
      ]
    },
    "creditor_branch": {
      "type": "string"
    },
    "description": {
      "type": "string",
      "maxLength": 140
    },
    "qr_code_data": {
      "type": "string"
    },
    "tx_id": {
      "type": "string"
    },
    "scheduled_date": {
      "type": "string",
      "format": "date-time"
    }
  }
}
Responses201400
Headers
Content-Type: application/json
Body
{
  "id": 12345,
  "unique_id": "a3b5c7d9-e1f3-4567-8901-23456789abcd",
  "external_id": "MERCHANT-12345",
  "status": "PENDING",
  "amount": 15000,
  "currency": "BRL",
  "debtor_ispb": "12345678",
  "debtor_document": "12345678901",
  "debtor_name": "João da Silva",
  "debtor_account_no": "123456",
  "debtor_account_type": "CACC",
  "debtor_branch": "0001",
  "creditor_ispb": "87654321",
  "creditor_document": "98765432100",
  "creditor_name": "Maria Santos",
  "creditor_account_no": "654321",
  "creditor_account_type": "SVGS",
  "creditor_branch": "0002",
  "description": "Payment for invoice #12345",
  "qr_code_data": "00020126...6304ABCD",
  "tx_id": "ABC123XYZ",
  "scheduled_date": "2026-02-15T10:00:00Z",
  "discounts": [
    {
      "date": "2026-02-10T00:00:00Z",
      "amount": 500
    }
  ],
  "additional_info": [
    {
      "key": "invoice_number",
      "value": "INV-12345"
    }
  ],
  "created_at": "2026-01-24T10:30:00Z",
  "updated_at": "2026-01-24T10:30:00Z"
}
Headers
Content-Type: application/json
Body
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "amount must be greater than zero"
  }
}

Create Payment Request
POST/payments

Create a new payment request. The request can be immediate or scheduled for future processing.

Status Lifecycle:

  1. PENDING - Initial state
  2. PROCESSING - Payment is being processed
  3. COMPLETED - Payment successfully completed
  4. FAILED - Payment failed
  5. CANCELLED - Payment cancelled by user
  6. SCHEDULED - Payment scheduled for future date

GET https://api.dictra.com.br/payments?status=PENDING&debtor_ispb=12345678&creditor_ispb=87654321&min_amount=1000&max_amount=100000&limit=20&offset=0
Requestsexample 1
Headers
Authorization: Bearer <jwt_token>
Responses200
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "id": 12345,
      "unique_id": "a3b5c7d9-e1f3-4567-8901-23456789abcd",
      "status": "COMPLETED",
      "amount": 15000,
      "currency": "BRL",
      "debtor_ispb": "12345678",
      "creditor_ispb": "87654321",
      "end_to_end_id": "E1234567820260124103000000001",
      "created_at": "2026-01-24T10:30:00Z",
      "processed_at": "2026-01-24T10:31:00Z"
    }
  ],
  "pagination": {
    "total": 150,
    "page": 0,
    "page_size": 20,
    "total_pages": 8
  }
}

List Payment Requests
GET/payments{?status,debtor_ispb,creditor_ispb,min_amount,max_amount,limit,offset}

List payment requests with optional filters and pagination.

URI Parameters
HideShow
status
string (optional) Example: PENDING

Filter by status (PENDING, PROCESSING, COMPLETED, FAILED, CANCELLED, SCHEDULED)

debtor_ispb
string (optional) Example: 12345678

Filter by debtor ISPB

creditor_ispb
string (optional) Example: 87654321

Filter by creditor ISPB

min_amount
number (optional) Example: 1000

Minimum amount in centavos

max_amount
number (optional) Example: 100000

Maximum amount in centavos

limit
number (optional) Default: 20 Example: 20

Number of results per page (max 100)

offset
number (optional) Default: 0 Example: 0

Offset for pagination


Payment Resource

GET https://api.dictra.com.br/payments/12345
Requestsexample 1
Headers
Authorization: Bearer <jwt_token>
Responses200404
Headers
Content-Type: application/json
Body
{
  "id": 12345,
  "unique_id": "a3b5c7d9-e1f3-4567-8901-23456789abcd",
  "external_id": "MERCHANT-12345",
  "status": "COMPLETED",
  "amount": 15000,
  "currency": "BRL",
  "debtor_ispb": "12345678",
  "debtor_document": "12345678901",
  "debtor_name": "João da Silva",
  "debtor_account_no": "123456",
  "debtor_account_type": "CACC",
  "creditor_ispb": "87654321",
  "creditor_document": "98765432100",
  "creditor_name": "Maria Santos",
  "creditor_account_no": "654321",
  "creditor_account_type": "SVGS",
  "end_to_end_id": "E1234567820260124103000000001",
  "processed_at": "2026-01-24T10:31:00Z",
  "created_at": "2026-01-24T10:30:00Z",
  "updated_at": "2026-01-24T10:31:00Z"
}
Headers
Content-Type: application/json
Body
{
  "error": {
    "code": "NOT_FOUND",
    "message": "payment request not found"
  }
}

Get Payment Request
GET/payments/{id}

Retrieve a specific payment request by ID.

URI Parameters
HideShow
id
number (required) Example: 12345

Payment request ID


DELETE https://api.dictra.com.br/payments/12345
Requestsexample 1
Headers
Authorization: Bearer <jwt_token>
Responses204400
This response has no content.
Headers
Content-Type: application/json
Body
{
  "error": {
    "code": "INVALID_TRANSITION",
    "message": "cannot cancel payment in COMPLETED status"
  }
}

Cancel Payment Request
DELETE/payments/{id}

Cancel a pending or scheduled payment request.

URI Parameters
HideShow
id
number (required) Example: 12345

Payment request ID


Payment Status

PUT https://api.dictra.com.br/payments/12345/status
Requestsexample 1
Headers
Content-Type: application/json
Authorization: Bearer <jwt_token>
Body
{
  "status": "COMPLETED",
  "end_to_end_id": "E1234567820260124103000000001"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "id": 12345,
  "status": "COMPLETED",
  "end_to_end_id": "E1234567820260124103000000001",
  "processed_at": "2026-01-24T10:31:00Z",
  "updated_at": "2026-01-24T10:31:00Z"
}

Update Payment Status
PUT/payments/{id}/status

Update the status of a payment request. Used by the system to track payment processing.

Valid Transitions:

  • PENDINGPROCESSING, SCHEDULED, CANCELLED

  • SCHEDULEDPENDING, CANCELLED

  • PROCESSINGCOMPLETED, FAILED

URI Parameters
HideShow
id
number (required) Example: 12345

Payment request ID


Credit Confirmation

POST https://api.dictra.com.br/payments/12345/confirm-credit
Requestsexample 1
Headers
Content-Type: application/json
Authorization: Bearer <jwt_token>
Body
{
  "amount": 15000,
  "notes": "Credit confirmed via bank statement"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "id": 1,
  "unique_id": "b4c6d8e0-f2g4-5678-9012-34567890bcde",
  "payment_request_id": 12345,
  "status": "CONFIRMED",
  "confirmed_at": "2026-01-24T10:35:00Z",
  "confirmed_by": "operator@bank.com",
  "confirmed_amount": 15000,
  "notes": "Credit confirmed via bank statement",
  "created_at": "2026-01-24T10:35:00Z",
  "updated_at": "2026-01-24T10:35:00Z"
}

Confirm Credit
POST/payments/{id}/confirm-credit

Confirm that credit was received for this payment. Part of a two-step confirmation workflow.

URI Parameters
HideShow
id
number (required) Example: 12345

Payment request ID


GET https://api.dictra.com.br/payments/12345/confirm-credit
Requestsexample 1
Headers
Authorization: Bearer <jwt_token>
Responses200404
Headers
Content-Type: application/json
Body
{
  "id": 1,
  "unique_id": "b4c6d8e0-f2g4-5678-9012-34567890bcde",
  "payment_request_id": 12345,
  "status": "CONFIRMED",
  "confirmed_at": "2026-01-24T10:35:00Z",
  "confirmed_by": "operator@bank.com",
  "confirmed_amount": 15000,
  "notes": "Credit confirmed via bank statement",
  "created_at": "2026-01-24T10:35:00Z",
  "updated_at": "2026-01-24T10:35:00Z"
}
Headers
Content-Type: application/json
Body
{
  "error": {
    "code": "NOT_FOUND",
    "message": "credit confirmation not found"
  }
}

Get Credit Confirmation
GET/payments/{id}/confirm-credit

Retrieve credit confirmation details for a payment.

URI Parameters
HideShow
id
number (required) Example: 12345

Payment request ID


QR Codes

QR code generation and validation for PIX payments using BR Code and EMV standards.

QR Code Collection

POST https://api.dictra.com.br/qr-codes
Requestsexample 1
Headers
Content-Type: application/json
Authorization: Bearer <jwt_token>
Body
{
  "type": "IMMEDIATE",
  "merchant_name": "Loja ABC",
  "merchant_city": "São Paulo",
  "merchant_category_code": "5411",
  "pix_key": "12345678901",
  "tx_id": "ABC123",
  "amount": 15000,
  "currency": "BRL",
  "expires_at": "2026-01-24T23:59:59Z",
  "description": "Compra na Loja ABC"
}
Responses201400
Headers
Content-Type: application/json
Body
{
  "id": 100,
  "unique_id": "c5d7e9f1-g3h5-6789-0123-45678901cdef",
  "type": "IMMEDIATE",
  "payload": "00020126580014br.gov.bcb.pix0136123456789012...6304A1B2",
  "emv_data": "00020126580014br.gov.bcb.pix...",
  "merchant_name": "Loja ABC",
  "merchant_city": "São Paulo",
  "merchant_category_code": "5411",
  "pix_key": "12345678901",
  "tx_id": "ABC123",
  "amount": 15000,
  "currency": "BRL",
  "expires_at": "2026-01-24T23:59:59Z",
  "description": "Compra na Loja ABC",
  "is_valid": true,
  "validated_at": "2026-01-24T10:30:00Z",
  "used_count": 0,
  "created_at": "2026-01-24T10:30:00Z",
  "updated_at": "2026-01-24T10:30:00Z"
}
Headers
Content-Type: application/json
Body
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "merchant_category_code must be 4 digits"
  }
}

Generate QR Code
POST/qr-codes

Generate a PIX QR code (BR Code) with automatic CRC16 validation.

QR Code Types:

  • STATIC: Reusable QR code, no expiration

  • DYNAMIC: Single-use with expiration

  • IMMEDIATE: Dynamic with TxID ≤25 chars (QRES)

  • DUE_DATE: Dynamic with TxID 26-35 chars, supports due date/fines (QRDN)


QR Code Resource

GET https://api.dictra.com.br/qr-codes/100
Requestsexample 1
Headers
Authorization: Bearer <jwt_token>
Responses200
Headers
Content-Type: application/json
Body
{
  "id": 100,
  "unique_id": "c5d7e9f1-g3h5-6789-0123-45678901cdef",
  "type": "IMMEDIATE",
  "payload": "00020126580014br.gov.bcb.pix0136123456789012...6304A1B2",
  "merchant_name": "Loja ABC",
  "merchant_city": "São Paulo",
  "pix_key": "12345678901",
  "tx_id": "ABC123",
  "amount": 15000,
  "currency": "BRL",
  "is_valid": true,
  "created_at": "2026-01-24T10:30:00Z"
}

Get QR Code
GET/qr-codes/{id}

Retrieve a specific QR code by ID.

URI Parameters
HideShow
id
number (required) Example: 100

QR code ID


QR Code by TxID

GET https://api.dictra.com.br/qr-codes/txid/ABC123
Requestsexample 1
Headers
Authorization: Bearer <jwt_token>
Responses200
Headers
Content-Type: application/json
Body
{
  "id": 100,
  "unique_id": "c5d7e9f1-g3h5-6789-0123-45678901cdef",
  "type": "IMMEDIATE",
  "tx_id": "ABC123",
  "pix_key": "12345678901",
  "amount": 15000,
  "currency": "BRL"
}

Get QR Code by TxID
GET/qr-codes/txid/{txId}

Retrieve a QR code by its transaction ID.

URI Parameters
HideShow
txId
string (required) Example: ABC123

Transaction ID


QR Code Deactivation

PUT https://api.dictra.com.br/qr-codes/100/deactivate
Requestsexample 1
Headers
Authorization: Bearer <jwt_token>
Responses200
Headers
Content-Type: application/json
Body
{
  "id": 100,
  "status": "used",
  "used_at": "2026-01-24T10:40:00Z",
  "used_count": 1
}

Deactivate QR Code
PUT/qr-codes/{id}/deactivate

Deactivate a dynamic QR code (mark as used).

URI Parameters
HideShow
id
number (required) Example: 100

QR code ID


QR Code Validation

POST https://api.dictra.com.br/qr-codes/validate
Requestsexample 1
Headers
Content-Type: application/json
Authorization: Bearer <jwt_token>
Body
{
  "payload": "00020126580014br.gov.bcb.pix0136123456789012...6304A1B2"
}
Responses200200
Headers
Content-Type: application/json
Body
{
  "valid": true,
  "qr_code": {
    "id": 100,
    "type": "IMMEDIATE",
    "pix_key": "12345678901",
    "amount": 15000,
    "is_valid": true,
    "validation_errors": ""
  }
}
Headers
Content-Type: application/json
Body
{
  "valid": false,
  "error": "CRC validation failed",
  "qr_code": {
    "id": 100,
    "is_valid": false,
    "validation_errors": "CRC mismatch"
  }
}

Validate QR Code Payload
POST/qr-codes/validate

Validate a BR Code payload and check its integrity.


QR Code Decoding

POST https://api.dictra.com.br/qr-codes/decode
Requestsexample 1
Headers
Content-Type: application/json
Authorization: Bearer <jwt_token>
Body
{
  "payload": "00020126580014br.gov.bcb.pix0136123456789012...6304A1B2"
}
Responses200
Headers
Content-Type: application/json
Body
{
  "valid": true,
  "type": "DYNAMIC",
  "pix_key": "12345678901",
  "tx_id": "ABC123",
  "merchant_name": "Loja ABC",
  "merchant_city": "São Paulo",
  "merchant_category_code": "5411",
  "amount": 15000,
  "amount_formatted": "R$ 150,00",
  "currency": "BRL",
  "country_code": "BR",
  "crc": "A1B2",
  "crc_valid": true,
  "description": "Compra na Loja ABC",
  "raw_fields": {
    "26": "0014br.gov.bcb.pix...",
    "52": "5411",
    "53": "986",
    "54": "150.00",
    "58": "BR",
    "59": "Loja ABC",
    "60": "São Paulo",
    "63": "A1B2",
    "00": "01",
    "01": "12"
  },
  "errors": []
}

Decode BR Code
POST/qr-codes/decode

Decode a BR Code payload into its component fields.


File Operations

File import/export for batch payment processing.

File Import

POST https://api.dictra.com.br/files/import
Requestsexample 1
Headers
Content-Type: multipart/form-data; boundary=---BOUNDARY
Authorization: Bearer <jwt_token>
X-User-ID: operator@bank.com
Body
-----BOUNDARY
Content-Disposition: form-data; name="file"; filename="payments.csv"
Content-Type: text/csv

debtor_ispb,creditor_ispb,amount,description
12345678,87654321,15000,Payment 1
12345678,87654321,25000,Payment 2
-----BOUNDARY
Content-Disposition: form-data; name="file_type"

CSV
-----BOUNDARY--
Responses201400
Headers
Content-Type: application/json
Body
{
  "id": 500,
  "unique_id": "d6e8f0g2-h4i6-7890-1234-56789012defg",
  "filename": "payments.csv",
  "file_type": "CSV",
  "file_size": 1024,
  "file_hash": "a1b2c3d4e5f6...",
  "status": "UPLOADED",
  "total_records": 2,
  "processed_records": 0,
  "failed_records": 0,
  "skipped_records": 0,
  "success_rate": 0,
  "created_by": "operator@bank.com",
  "created_at": "2026-01-24T10:30:00Z",
  "updated_at": "2026-01-24T10:30:00Z"
}
Headers
Content-Type: application/json
Body
{
  "error": {
    "code": "FILE_TOO_LARGE",
    "message": "file exceeds maximum size of 100MB"
  }
}

Import Payment File
POST/files/import

Import a payment file for batch processing. Supports CNAB240, CNAB400, CSV, and JSON formats.

Supported File Types:

  • CNAB240: CNAB 240 position bank file

  • CNAB400: CNAB 400 position bank file

  • CSV: Comma-separated values

  • JSON: JSON array of payments


File Import List

GET https://api.dictra.com.br/files/imports?status=COMPLETED&file_type=CSV&created_by=operator@bank.com&limit=20&offset=0
Requestsexample 1
Headers
Authorization: Bearer <jwt_token>
Responses200
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "id": 500,
      "filename": "payments.csv",
      "file_type": "CSV",
      "status": "COMPLETED",
      "total_records": 2,
      "processed_records": 2,
      "failed_records": 0,
      "success_rate": 100,
      "created_at": "2026-01-24T10:30:00Z",
      "completed_at": "2026-01-24T10:35:00Z"
    }
  ],
  "pagination": {
    "total": 50,
    "page": 0,
    "page_size": 20
  }
}

List File Imports
GET/files/imports{?status,file_type,created_by,limit,offset}

List file import records with filters.

URI Parameters
HideShow
status
string (optional) Example: COMPLETED

Filter by status (UPLOADED, PROCESSING, COMPLETED, FAILED)

file_type
string (optional) Example: CSV

Filter by file type

created_by
string (optional) Example: operator@bank.com

Filter by creator

limit
number (optional) Example: 20

Results per page (max 100)

offset
number (optional) Example: 0

Pagination offset


File Import Details

GET https://api.dictra.com.br/files/imports/500
Requestsexample 1
Headers
Authorization: Bearer <jwt_token>
Responses200
Headers
Content-Type: application/json
Body
{
  "id": 500,
  "unique_id": "d6e8f0g2-h4i6-7890-1234-56789012defg",
  "filename": "payments.csv",
  "file_type": "CSV",
  "file_size": 1024,
  "status": "COMPLETED",
  "total_records": 2,
  "processed_records": 2,
  "failed_records": 0,
  "success_rate": 100,
  "started_at": "2026-01-24T10:31:00Z",
  "completed_at": "2026-01-24T10:35:00Z",
  "created_at": "2026-01-24T10:30:00Z"
}

Get File Import
GET/files/imports/{id}

Retrieve detailed information about a file import.

URI Parameters
HideShow
id
number (required) Example: 500

File import ID


File Import Records

GET https://api.dictra.com.br/files/imports/500/records?status=SUCCESS&limit=100&offset=0
Requestsexample 1
Headers
Authorization: Bearer <jwt_token>
Responses200
Headers
Content-Type: application/json
Body
{
  "records": [
    {
      "id": 1001,
      "file_import_id": 500,
      "line_number": 2,
      "raw_data": "12345678,87654321,15000,Payment 1",
      "status": "SUCCESS",
      "payment_request_id": 12346,
      "processed_at": "2026-01-24T10:32:00Z",
      "created_at": "2026-01-24T10:31:00Z"
    },
    {
      "id": 1002,
      "file_import_id": 500,
      "line_number": 3,
      "raw_data": "12345678,87654321,25000,Payment 2",
      "status": "SUCCESS",
      "payment_request_id": 12347,
      "processed_at": "2026-01-24T10:32:00Z",
      "created_at": "2026-01-24T10:31:00Z"
    }
  ],
  "count": 2,
  "limit": 100,
  "offset": 0
}

Get Import Records
GET/files/imports/{id}/records{?status,limit,offset}

Retrieve individual records from a file import.

URI Parameters
HideShow
id
number (required) Example: 500

File import ID

status
string (optional) Example: SUCCESS

Filter by record status (PENDING, SUCCESS, FAILED, SKIPPED)

limit
number (optional) Example: 100

Results per page (max 1000)

offset
number (optional) Example: 0

Pagination offset


File Import Processing

POST https://api.dictra.com.br/files/imports/500/process
Requestsexample 1
Headers
Authorization: Bearer <jwt_token>
Responses200
Headers
Content-Type: application/json
Body
{
  "id": 500,
  "status": "PROCESSING",
  "started_at": "2026-01-24T10:31:00Z"
}

Process File Import
POST/files/imports/{id}/process

Start processing a file import to create payment requests.

URI Parameters
HideShow
id
number (required) Example: 500

File import ID


File Export

GET https://api.dictra.com.br/files/export?format=csv&status=COMPLETED&from=2026-01-01&to=2026-01-31&debtor_ispb=12345678&creditor_ispb=87654321&min_amount=1000&max_amount=100000&max_records=1000
Requestsexample 1
Headers
Authorization: Bearer <jwt_token>
Responses200200
Headers
Content-Type: text/csv
Content-Disposition: attachment; filename="export_20260124_103000.csv"
Content-Length: 2048
Body
debtor_ispb,creditor_ispb,amount,status,end_to_end_id
12345678,87654321,15000,COMPLETED,E1234567820260124103000000001
12345678,87654321,25000,COMPLETED,E1234567820260124103100000002
Headers
Content-Type: application/json
Content-Disposition: attachment; filename="export_20260124_103000.json"
Body
[
  {
    "debtor_ispb": "12345678",
    "creditor_ispb": "87654321",
    "amount": 15000,
    "status": "COMPLETED",
    "end_to_end_id": "E1234567820260124103000000001"
  }
]

Export Payments
GET/files/export{?format,status,from,to,debtor_ispb,creditor_ispb,min_amount,max_amount,max_records}

Export payments to file in the specified format.

URI Parameters
HideShow
format
string (optional) Default: csv Example: csv

Export format (cnab240, cnab400, csv, json)

status
string (optional) Example: COMPLETED

Filter by payment status

from
string (optional) Example: 2026-01-01

Start date (YYYY-MM-DD)

to
string (optional) Example: 2026-01-31

End date (YYYY-MM-DD)

debtor_ispb
string (optional) Example: 12345678

Filter by debtor ISPB

creditor_ispb
string (optional) Example: 87654321

Filter by creditor ISPB

min_amount
number (optional) Example: 1000

Minimum amount

max_amount
number (optional) Example: 100000

Maximum amount

max_records
number (optional) Default: 1000 Example: 1000

Maximum records to export


Schedules

Recurring payment schedule management.

Schedule Collection

POST https://api.dictra.com.br/schedules
Requestsexample 1
Headers
Content-Type: application/json
Authorization: Bearer <jwt_token>
Body
{
  "payment_request_id": 12345,
  "type": "MONTHLY",
  "scheduled_date": "2026-02-01",
  "scheduled_time": "10:00",
  "recurrence_end_date": "2026-12-31",
  "max_occurrences": 12,
  "day_of_month": 1
}
Responses201
Headers
Content-Type: application/json
Body
{
  "id": 200,
  "unique_id": "e7f9g1h3-i5j7-8901-2345-67890123efgh",
  "payment_request_id": 12345,
  "type": "MONTHLY",
  "scheduled_date": "2026-02-01",
  "scheduled_time": "10:00",
  "recurrence_end_date": "2026-12-31",
  "max_occurrences": 12,
  "day_of_month": 1,
  "status": "ACTIVE",
  "next_run_at": "2026-02-01T10:00:00Z",
  "run_count": 0,
  "fail_count": 0,
  "created_at": "2026-01-24T10:30:00Z",
  "updated_at": "2026-01-24T10:30:00Z"
}

Create Schedule
POST/schedules

Create a recurring payment schedule.

Schedule Types:

  • ONCE: Single scheduled payment

  • DAILY: Repeat daily

  • WEEKLY: Repeat weekly (requires day_of_week)

  • MONTHLY: Repeat monthly (requires day_of_month)


GET https://api.dictra.com.br/schedules?status=ACTIVE&type=MONTHLY&is_due=true&limit=20&offset=0
Requestsexample 1
Headers
Authorization: Bearer <jwt_token>
Responses200
Headers
Content-Type: application/json
Body
{
  "data": [
    {
      "id": 200,
      "type": "MONTHLY",
      "status": "ACTIVE",
      "next_run_at": "2026-02-01T10:00:00Z",
      "run_count": 0,
      "created_at": "2026-01-24T10:30:00Z"
    }
  ],
  "pagination": {
    "total": 25,
    "page": 0,
    "page_size": 20
  }
}

List Schedules
GET/schedules{?status,type,is_due,limit,offset}

List schedules with optional filters.

URI Parameters
HideShow
status
string (optional) Example: ACTIVE

Filter by status (ACTIVE, PAUSED, COMPLETED, CANCELLED)

type
string (optional) Example: MONTHLY

Filter by type (ONCE, DAILY, WEEKLY, MONTHLY)

is_due
boolean (optional) Example: true

Filter by due schedules

limit
number (optional) Example: 20

Results per page (max 100)

offset
number (optional) Example: 0

Pagination offset


Schedule Resource

GET https://api.dictra.com.br/schedules/200
Requestsexample 1
Headers
Authorization: Bearer <jwt_token>
Responses200
Headers
Content-Type: application/json
Body
{
  "id": 200,
  "unique_id": "e7f9g1h3-i5j7-8901-2345-67890123efgh",
  "payment_request_id": 12345,
  "type": "MONTHLY",
  "scheduled_date": "2026-02-01",
  "scheduled_time": "10:00",
  "status": "ACTIVE",
  "next_run_at": "2026-02-01T10:00:00Z",
  "run_count": 0,
  "fail_count": 0
}

Get Schedule
GET/schedules/{id}

Retrieve a specific schedule.

URI Parameters
HideShow
id
number (required) Example: 200

Schedule ID


PUT https://api.dictra.com.br/schedules/200
Requestsexample 1
Headers
Content-Type: application/json
Authorization: Bearer <jwt_token>
Body
{
  "scheduled_date": "2026-02-15",
  "scheduled_time": "14:00",
  "recurrence_end_date": "2026-06-30",
  "max_occurrences": 6
}
Responses200
Headers
Content-Type: application/json
Body
{
  "id": 200,
  "scheduled_date": "2026-02-15",
  "scheduled_time": "14:00",
  "recurrence_end_date": "2026-06-30",
  "max_occurrences": 6,
  "updated_at": "2026-01-24T11:00:00Z"
}

Update Schedule
PUT/schedules/{id}

Update schedule parameters.

URI Parameters
HideShow
id
number (required) Example: 200

Schedule ID


DELETE https://api.dictra.com.br/schedules/200
Requestsexample 1
Headers
Authorization: Bearer <jwt_token>
Responses204
This response has no content.

Cancel Schedule
DELETE/schedules/{id}

Cancel a schedule. Cannot be undone.

URI Parameters
HideShow
id
number (required) Example: 200

Schedule ID


Schedule Pause

PUT https://api.dictra.com.br/schedules/200/pause
Requestsexample 1
Headers
Authorization: Bearer <jwt_token>
Responses200
Headers
Content-Type: application/json
Body
{
  "id": 200,
  "status": "PAUSED",
  "updated_at": "2026-01-24T11:00:00Z"
}

Pause Schedule
PUT/schedules/{id}/pause

Temporarily pause a schedule.

URI Parameters
HideShow
id
number (required) Example: 200

Schedule ID


Schedule Resume

PUT https://api.dictra.com.br/schedules/200/resume
Requestsexample 1
Headers
Authorization: Bearer <jwt_token>
Responses200
Headers
Content-Type: application/json
Body
{
  "id": 200,
  "status": "ACTIVE",
  "next_run_at": "2026-02-15T14:00:00Z",
  "updated_at": "2026-01-24T11:00:00Z"
}

Resume Schedule
PUT/schedules/{id}/resume

Resume a paused schedule.

URI Parameters
HideShow
id
number (required) Example: 200

Schedule ID


Generated by aglio on 24 Jan 2026