---
title: "Registrar Payments de una Account"
method: POST
path: "/payments/bulk"
tags: ["Payments"]
deprecated: true
---

# Registrar Payments de una Account

`POST /payments/bulk`

## Request

- Base URL: `https://api.trytoku.com`
- URL: `https://api.trytoku.com/payments/bulk`
- Auth: API key in header `x-api-key`

> **Deprecated.**

Registra pagos ya realizados sobre Invoices indicando la Account en el cuerpo de la llamada.

Equivale a la creación de Payments, pero la Account no se toma de las credenciales sino del campo `id_account`. Se usa desde procesos internos de Toku que cargan pagos en nombre de una Account determinada.

Cada Payment se referencia por el Invoice que salda, no por un identificador propio: envía `invoice_external_id`, o bien `product_id` y `due_date` para que Toku lo construya como `{product_id}-{due_date}`.

Que algunos elementos del lote fallen no convierte la respuesta en un error: se devuelve `200` con el recuento por resultado. Revisa esos contadores para saber qué pasó con cada Payment enviado.

## Request body

- CreatePaymentRequestWithoutAuth: Lote de Payments a registrar, con la Account indicada en el cuerpo.
  - `id_account` string: Account bajo la cual se registran los Payments.
  - `payments` Payment[], required: Payments a registrar. Los que repitan la combinación `product_id` + `due_date` + `invoice_external_id` dentro del mismo lote se cuentan como duplicados y solo se procesa el primero.
    - `buy_order` string: Identificador del documento que respalda el pago en tu sistema, por ejemplo el número de la orden o del comprobante.
    - `due_date` string: Identificador del periodo adeudado. Es texto libre, no necesariamente una fecha, y es obligatorio cuando no envías `invoice_external_id`.
    - `id_payment_intent` string: Identificador del cobro de Toku que originó el pago. Si lo envías, el Invoice se determina a partir de ese cobro y no de `product_id` / `due_date`, y debe corresponder a un cobro autorizado.
    - `id_receipt` integer: Identificador del comprobante asociado al pago, cuando corresponde.
    - `invoice_external_id` string: Identificador del Invoice que salda el Payment. Si lo omites, se construye como `{product_id}-{due_date}`.
    - `payment_amount` number: Monto pagado del Invoice. No puede ser negativo.
    - `payment_date` union: Fecha en que se realizó el pago, en formato [ISO 8601](https://www.w3.org/TR/NOTE-datetime). Acepta solo la fecha (`2020-08-26`) o fecha y hora (`2020-08-26T12:06:34Z`); si envías solo la fecha, se toma a las 00:00. Si lo omites al registrar el pago, se usa el momento en que Toku recibe la solicitud.
      - string, date
      - string, date-time
    - `payment_method` string: Medio de pago con el que se pagó, como texto libre.
    - `product_id` string: Identificador con el que reconoces el producto o servicio adeudado. Es obligatorio cuando no envías `invoice_external_id`.

## Response `200`

Recuento por resultado del lote.

- CreatePaymentsResponse: Resultado de un lote de creación o modificación de Payments.
  - `duplicates` integer: Payments repetidos dentro del mismo lote. Se procesa la primera aparición y las siguientes se descartan.
  - `error` integer: Payments que no pudieron procesarse por un error de negocio.
  - `errors_detail` CreatePaymentsErrorsDetail: Desglose de los Payments que no se pudieron crear o modificar, agrupados por motivo. Cada lista contiene los identificadores de los Payments afectados. Las listas vacías también se incluyen.
    - `failed_to_save` PaymentIdentifier[]: El Payment no pudo registrarse por un error al momento de guardarlo.
      - `due_date` string: `due_date` con el que se envió el Payment.
      - `invoice_external_id` string: Identificador del Invoice con el que se resolvió el Payment.
      - `product_id` string: `product_id` con el que se envió el Payment.
    - `invalid_payment_intent` PaymentIdentifier[]: El `id_payment_intent` enviado no existe o no corresponde a un cobro autorizado.
      - `due_date` string: `due_date` con el que se envió el Payment.
      - `invoice_external_id` string: Identificador del Invoice con el que se resolvió el Payment.
      - `product_id` string: `product_id` con el que se envió el Payment.
    - `invoice_already_paid` PaymentIdentifier[]: El Invoice ya fue pagado a través de Toku, por lo que registrar un pago externo encima lo duplicaría.
      - `due_date` string: `due_date` con el que se envió el Payment.
      - `invoice_external_id` string: Identificador del Invoice con el que se resolvió el Payment.
      - `product_id` string: `product_id` con el que se envió el Payment.
    - `invoice_being_paid` PaymentIdentifier[]: El Invoice tiene un cobro en curso a través de Toku. Reintenta una vez que ese cobro termine.
      - `due_date` string: `due_date` con el que se envió el Payment.
      - `invoice_external_id` string: Identificador del Invoice con el que se resolvió el Payment.
      - `product_id` string: `product_id` con el que se envió el Payment.
    - `invoice_is_void` PaymentIdentifier[]: El Invoice está anulado, por lo que no admite pagos.
      - `due_date` string: `due_date` con el que se envió el Payment.
      - `invoice_external_id` string: Identificador del Invoice con el que se resolvió el Payment.
      - `product_id` string: `product_id` con el que se envió el Payment.
    - `invoice_not_found` PaymentIdentifier[]: No existe un Invoice que coincida con los identificadores enviados.
      - `due_date` string: `due_date` con el que se envió el Payment.
      - `invoice_external_id` string: Identificador del Invoice con el que se resolvió el Payment.
      - `product_id` string: `product_id` con el que se envió el Payment.
  - `format_error` integer: Payments rechazados por el formato de los datos enviados.
  - `not_found` integer: Payments cuyo Invoice no existe o no está disponible.
  - `success` integer: Payments procesados correctamente.

## Other responses

- `400`: Falta el campo `id_account` en el cuerpo de la llamada.
- `401`: Faltan las credenciales o son inválidas.
- `403`: No tienes acceso a este recurso.
- `404`: La Account indicada en `id_account` no existe.
- `422`: El cuerpo de la petición no pasó la validación.
- `429`: Se superó el límite de peticiones permitidas.

## Changes

- **2026-11-03** `a6ef070075b1`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/trytoku/apis/toku-api/changes/payments/bulk/post.md)

---

[API](https://skmtc.dev/trytoku/apis/toku-api.md) - [All operations](https://skmtc.dev/trytoku/apis/toku-api/llms.txt) - [OpenAPI document](https://skmtc.dev/trytoku/apis/toku-api/revisions/a6ef070075b1?raw)
