Saltar al contenido principal

Catálogo de errores

Todos los errores devueltos por la API siguen el formato Problem JSON. Esta página lista los códigos posibles, con HTTP status correspondiente y campos adicionales que pueden venir en el payload.

Para el formato general y manejo recomendado, ver Manejo de errores.

Errores transversales

codeHTTPContexto
validation400Request mal formado. Trae invalidParams[] con detalle por campo
invalid-format400Valor con formato inválido en un campo puntual
invalid-credentials401clientId/clientSecret inválidos en POST /v1/auth/login
unauthorized401Falta token o credenciales en el request
invalid-token401Token JWT mal formado
token-expired401El token expiró. Renovar con POST /v1/auth/login
forbidden403El caller no tiene permiso sobre el recurso u operación
insufficient-scope403El token no tiene los scopes necesarios
resource-not-accessible403El recurso existe pero pertenece a otro customer (cliente o asociado fuera de tu scope)
resource-not-found404El recurso no existe o no es accesible
idempotency-key-reuse409Mismo Idempotency-Key con cuerpo distinto
idempotent-replay200/201Respuesta cacheada devuelta para un Idempotency-Key ya visto (opcional; no es error en sí)
rate-limit-exceeded429Rate limit superado. La espera viene en el header Retry-After
internal-error500Error interno. Reintentable solo si la operación es idempotente. Incluir requestId en reporte a soporte
external-provider-unavailable502El proveedor bancario no responde al provisionar CVU. Reintentar
external-provider-timeout504Timeout contra el proveedor bancario al provisionar CVU. Reintentar

Cuentas corrientes y recaudadoras

codeHTTPContexto
receivable-account-already-exists409Ya existe una cuenta para esa combinación. Response incluye existingResourceId
receivable-account-requires-owner422POST sin clientId ni associateId
receivable-account-owner-immutable422Intento de reemplazar associateId por uno distinto sobre una cuenta activa con CVU provisionado
owner-type-not-supported422El tipo de owner no está habilitado en la config del customer
current-account-not-receivable-enabled422Intento de emitir comprobante sobre una cuenta MAIN/SUB

Comprobantes

codeHTTPContexto
unmatching-receivable-currency-code422currencyCode no coincide con el de la cuenta
unmatching-receivable-client-id422clientId no coincide con el de la cuenta
receivable-account-associate-conflict422Intento de emitir un comprobante con associateId distinto al que tiene la cuenta
missing-parent-receivable422Comprobante negativo sin parentReceivableId
parent-receivable-not-modifiable422Padre en estado final, no se puede crear hijo
parent-receivable-different-account422Padre pertenece a otra cuenta recaudadora
parent-receivable-invalid-type422Padre no es de tipo positivo (INVOICE/DEBT)
child-receivables-exceed-parent-amount422Suma de hijos > monto del padre
receivable-has-related-items422Intento de anular un comprobante con hijos activos (ej. notas de crédito)
updating-receivable-final-status422Modificación sobre comprobante en estado final (SETTLED o DISABLED)
missing-invoice-fields422Faltan campos AFIP cuando se setea invoiceData. Trae detalle del campo faltante
duplicated-legal-number409El legalNumber enviado ya existe para ese customer. Es único por customer cuando se envía

Movements

codeHTTPContexto
unmatching-movement-currency-code422currencyCode no coincide con la cuenta

Transferencias

codeHTTPContexto
unmatching-transfer-currency-code422El currencyCode no coincide con el de la cuenta de origen
equal-origin-destination422Origen y destino son la misma cuenta
source-account-not-active422La cuenta corriente de origen no está activa
transfer-not-cancelable422Se intentó cancelar una transferencia que ya no está en SCHEDULED/PENDING_APPROVAL

Destinatarios

codeHTTPContexto
duplicated-contact409Ya existe un destinatario con el mismo CBU/CVU o alias

Clientes

codeHTTPContexto
incomplete-branch422Cliente con sucursal sin todos los campos requeridos

Webhooks

codeHTTPContexto
invalid-event-type400Event type listado no existe
webhook-status-conflict422Operación inválida para el estado del webhook (ej. pause sobre ya pausado)

Campos adicionales por error

Algunos errores incluyen campos extra en el payload Problem JSON:

codeCampos adicionales
receivable-account-already-existsexistingResourceId
validationinvalidParams[] con name y reason
missing-invoice-fieldsmissingFields[]
rate-limit-exceededSin campos extra en el body — la espera viene en el header Retry-After
external-provider-unavailable / -timeoutproviderError.code, providerError.detail
internal-errorrequestId