Recursos para IA

Posibles errores

Al integrar Split de Pagos 1:N, la API puede devolver errores de validación con códigos y mensajes específicos. A continuación se describen los errores por tema y el formato de respuesta.

Todas las validaciones se realizan en secuencia; la primera validación que falla detiene el proceso.

Mapeo de códigos de error

Los errores utilizan tipos base que se traducen en códigos de estado HTTP:

Tipo de error baseCódigo de estado HTTPDescripción
TypeErrorClient400Bad Request. Errores del cliente con mensajes específicos para problemas corregibles.
TypeErrorInvalidInput400Bad Request. Datos de entrada inválidos.
TypeErrorUnprocessable422Unprocessable Entity. Errores de validación (validación de usuario, validación de compliance). Se utiliza para distinguir estos errores de los errores del cliente (400).
TypeErrorNotFound404Not Found. Recurso no encontrado.
TypeErrorInternal500Internal Server Error. Errores del lado del servidor.
TypeErrorUnavailable503Service Unavailable. Se devuelve cuando los servicios externos (Búsqueda de Usuarios, KYC) no están disponibles.

Validaciones de receptores

Validaciones relacionadas con los receptores (vendedores) en el split.

Nombre de validaciónCódigo de errorEstado HTTPMensaje de errorDescripción
Falta receptor primarioTypeErrorClient400"primary receiver must be present in the split"Al menos un receptor debe estar marcado como primario (generalmente el vendedor que inició el split). El receptor primario (vendedor primario) es el dueño de la aplicación usada en la integración.
Mínimo de receptores secundariosTypeErrorClient400"minimum of 1 secondary receiver is required"Se requiere al menos un receptor secundario.
Receptores duplicadosTypeErrorClient400"there are users duplicated"Ningún ID de usuario puede aparecer más de una vez en la lista de receptores.
Límite de vendedores excedidoTypeErrorClient400"split contains more sellers than allowed"El número total de receptores no puede exceder el máximo configurado (cuando MaxSplitSellers está configurado). El máximo permitido es de 10 vendedores secundarios por order.

Validaciones de monto

Validaciones para montos del split. Algunas se aplican solo a splits por porcentaje y otras solo a splits fijos.

Nombre de validaciónCódigo de errorEstado HTTPMensaje de errorDescripción
Rango de porcentaje inválidoTypeErrorClient400"percentage must be between 1 and 100"El porcentaje de cada receptor debe estar entre 1 y 100 (solo para splits por porcentaje).
Suma de porcentaje inválidaTypeErrorClient400"percentages must add up to 100.00"La suma de todos los porcentajes de los receptores debe ser exactamente 100.00 (solo para splits por porcentaje).
Suma de monto fijo inválidaTypeErrorClient400"the sum of the amounts for the receivers must be equal to the total amount of the split"La suma de todos los montos de los receptores debe ser igual al monto total del split (solo para splits fijos).

Validaciones de pago

Validaciones que se aplican a los métodos de pago.

Nombre de validaciónCódigo de errorEstado HTTPMensaje de errorDescripción
Tipo de método de pago inválidoTypeErrorClient400"invalid payment method type"El tipo de método de pago debe estar en la lista permitida configurada en el sistema. Los medios de pago permitidos son tarjeta de crédito y débito.

Validaciones de ítems

Validaciones que solo aplican cuando el split incluye ítems.

Nombre de validaciónCódigo de errorEstado HTTPMensaje de errorDescripción
Códigos externos de ítems duplicadosTypeErrorClient400"items list contains duplicate external code"No puede haber dos ítems con el mismo external_code.
Referencia de ítem inválidaTypeErrorClient400"receiver references non-existent item"Todas las referencias de ítems en los receptores deben corresponder a ítems existentes en el split.

Validaciones de usuario

Validaciones externas realizadas contra el servicio de Búsqueda de Usuarios.

Nombre de validaciónCódigo de errorEstado HTTPMensaje de errorDescripción
Usuario no encontradoTypeErrorUnprocessable422"user validation error"El ID de usuario no existe en el sistema (el servicio de usuario devuelve 404).
Usuario no activoTypeErrorUnprocessable422"user validation error"El usuario existe, pero no está en estado "activo" (guest, deactive, pending o vacío).
Sitio del usuario no coincideTypeErrorUnprocessable422"user validation error"El ID del sitio del usuario no coincide con el ID del sitio del vendedor.
Servicio de usuario no disponibleTypeErrorUnavailable503"service unavailable"Errores de red o timeout al llamar al servicio de usuario.
Vendedor usando modo PNFTypeErrorUnprocessable422"seller is using pnf mode, blocked"Se bloquea la transacción si el vendedor está operando en modo PNF (Pago No Flujo).

Validaciones de cumplimiento KYC

Validaciones externas realizadas contra el servicio de Cumplimiento KYC.

Nombre de validaciónCódigo de errorEstado HTTPMensaje de errorDescripción
Fallo de verificación de cumplimiento KYCTypeErrorUnprocessable422"compliance validation error"El usuario no cumple (el estado no es "compliant" ni "skip_compliance").
Servicio KYC no disponibleTypeErrorUnavailable503"service unavailable"Errores de red o timeout al llamar al servicio de KYC.

Errores internos

Nombre de validaciónCódigo de errorEstado HTTPMensaje de errorDescripción
Error interno del servidorTypeErrorInternal500"internal server error"Error inesperado del lado del servidor.

Formato de respuesta de error

Los errores retornan en el siguiente formato, con el campo errors como array (puede estar vacío cuando el contexto del error está descrito en el message principal):

Error del cliente (400)

json

{
    "status": 400,
    "message": "percentages must add up to 100.00",
    "errors": []
}

Error de validación (422)

json

{
    "status": 422,
    "message": "user validation error",
    "errors": []
}

Servicio no disponible (503)

json

{
    "status": 503,
    "message": "service unavailable",
    "errors": []
}

Error interno (500)

json

{
    "status": 500,
    "message": "internal server error",
    "errors": []
}