Saltar al contenido principal
Migo Docs

Cobros Masivos (CSV)

Cobra muchas suscripciones a la vez subiendo un CSV. La carga se acepta de forma síncrona y se encola para procesamiento asíncrono.

Cuándo usarlo

  • Facturación trimestral donde cada cliente recibe una línea distinta.
  • Corridas de conciliación — cobra los saldos pendientes después de un cierre de periodo.
  • Migración desde otro proveedor de billing.

Para facturación de cadencia rutinaria usa Cobros programados en su lugar.

Cargar

POST /v1/subscriptions/charges/upload-csv acepta una carga de archivo multipart. Se requiere un clientId (como campo de formulario o parámetro de query clientId). El tamaño máximo de archivo es 10 MB.

curl -X POST "https://mw.migopayments.com/v1/subscriptions/charges/upload-csv?clientId=client_abc123" \
-H "Authorization: Bearer <middleware-jwt>" \
-F "file=@charges-2026-04.csv"

La carga devuelve 202 Accepted con un trackingId:

{
"success": true,
"message": "File received...",
"trackingId": "V1StGXR8_Z5jdHi6B-myT"
}

La respuesta contiene únicamente trackingId — no hay batchId, rowCount, status ni createdAt.

Requiere verificación

El contrato de columnas del CSV, las columnas del CSV de resultados, el reporte de resultado por fila y la idempotencia de CSV idénticos son manejados por el consumer de SQS downstream, que está fuera del alcance de este contrato. Confírmalos contra el consumer antes de depender de ellos.

Manejo de errores

La validación en el endpoint de ingesta (el consumer de cobros downstream) mapea los códigos de error de librería IDEMPOTENCY_CONFLICT, PLAN_RULE_VIOLATION y UNPROCESSABLE a HTTP 405. Los códigos numéricos específicos por fila no son parte de este contrato de ingesta; verifícalos contra el consumer de cobros y el Catálogo de errores antes de presentarlos como autoritativos.