Transactions

Crear Transactions externas en lote

Changed on

Registra un lote de Transactions externas.

Una Transaction externa registra un pago que el deudor hizo por fuera de Toku —transferencia, caja, efectivo— para dejar sus Invoices saldados. Se usa para cargar muchos de esos pagos en una sola llamada, con el mismo contenido de un registro individual en cada elemento de transactions. Acepta como máximo 100 por llamada.

Cada elemento se procesa por separado, así que la llamada responde 201 incluso si algunos elementos no se pudieron registrar: response_counts resume cuántos quedaron registrados, cuántos se descartaron por repetidos y cuántos fallaron, error_detail agrupa los descartados por motivo —Invoice inexistente, anulado o ya pagado, monto que no coincide con la suma de los montos de los Invoices, o error al guardar— y transactions devuelve, en el mismo orden del lote, el identificador de cada Transaction creada o null cuando ese elemento no se registró.

Dentro del mismo lote, dos elementos con los mismos Invoices, la misma fecha y el mismo external_id se consideran repetidos y solo se registra el primero; los elementos con pagos parciales quedan fuera de esa comparación.

Límite de tasa: 1 solicitud por segundo. Al superarlo, la API responde 429. Ver Límites de tasa.

post/transactions/external/bulk

Request

  • Base URL
    https://api.trytoku.com
  • URL
    https://api.trytoku.com/transactions/external/bulk
  • Auth
    API key in header x-api-key

Headers

x-account-keystring

Llave de API de una Account, para operar sobre esa Account en lugar de la principal.

Request body

Example request

{
  "transactions": [
    {
      "amount": 15990,
      "currency": "CLP",
      "external_id": "pago-caja-4821",
      "id_account": "acc_7bQ2mN4pR6sT8vX0yZ2aB4cD6eF8gH0j",
      "invoices": [
        {
          "amount": 15990,
          "id_invoice": "in_5dF7hJ9kM1nP3rT5vX7zB9dF1hJ3lN5p"
        }
      ],
      "payment_method_detail": "transferencia",
      "transaction_date": "2026-07-20T14:35:00"
    }
  ]
}

Response

Resultado del lote, con el recuento por categoría y el identificador de cada elemento.

successboolean required

Indica que el lote se procesó; los resultados por elemento van en los demás campos.

transactionsstring[]

Identificador público de la Transaction de cada elemento, en el mismo orden del lote; null cuando ese elemento no quedó registrado.

Example response

{
  "error_detail": {
    "amount_mismatch": [],
    "customer_not_found": [],
    "failed_to_save": [],
    "invalid_payment_intent": [],
    "invoice_already_paid": [],
    "invoice_being_paid": [],
    "invoice_is_void": [],
    "invoice_not_found": [
      {
        "external_id": "pago-caja-4822",
        "id_invoices": [
          "in_9hK1mP3rT5vX7zB9dF1hJ3lN5pR7tV9x"
        ],
        "transaction_date": "2026-07-20"
      }
    ]
  },
  "response_counts": {
    "duplicates": 0,
    "error": 0,
    "format_error": 0,
    "not_found": 1,
    "success": 1,
    "unchanged": 0
  },
  "success": true,
  "transactions": [
    "trs_kR3nQ8sT1vX7yZ2aB5cD9eF4gH6jK0mN"
  ]
}

Changes