Glosario de campos
A continuación se muestra el glosario consolidado de los esquemas importados:
Diccionario de Datos
Documentación técnica de campos y estructuras de respuesta.
accessToken
stringToken JWT para usar en los headers Authorization.
accessTokenExpiry
integer (int64)Fecha de expiración del access token en **milisegundos epoch** (UTC). Por defecto el access token vive 15 minutos.
accountBank
objectSin descripción disponible.
- number:
- rif:
- phoneNumber:
accountBank_id
string (uuid)Identificador único de la cuenta bancaria en nuestros sistemas.
accountsBank
arraySin descripción disponible.
accreditSpidi_id
numberID de la acreditación en SPIDI.
action_date
string (date-time)Fecha y hora de la acción del pagador, en formato ISO 8601 con sufijo Z (UTC).
active_now
arrayConjunto actual de todas las Solicitudes SPIDI activas en una parada, únicamente con estado 'pending'.
added
arrayLista de Solicitudes SPIDI recién agregadas a una Parada.
address
stringDirección del comercio.
adjustedDebit
numberMonto ajustado del débito.
agreement_id
string (uuid)Identificador único del acuerdo de liquidación. Debe ser UUID v4.
- POST/api/v1/ext/agreements(Response (200))
- POST/api/v1/ext/payment-sessions/buttons(Request)
- POST/api/v1/ext/payment-sessions/buttons(Response (400))
- POST/api/v1/ext/payment-sessions/buttons(Response (401))
- POST/api/v1/ext/payment-sessions/buttons(Response (422))
- POST/api/v1/ext/payment-sessions/buttons(Response (500))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (200))
- POST/api/v1/ext/payment-sessions/request/batch(Request)
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (200))
agreement_rules
array(**En Desarrollo**) Reglas de acuerdo. En caso de usar origin_bank_code y destination_bank_account_id, se aplicará una regla de ruteo por banco de origen. Cada regla define a qué cuenta bancaria se debe enviar el dinero según el banco del pagador.
agreementRecipient_id
string (uuid)UUID global SPIDI del agreement de recepción. Este ID se usará en acuerdos de distribución para identificar al receptor del split. (Requerido en distribution)
allowAmountChange
booleanSi es true, permite editar el monto en el POS.
- POST/api/v1/merchants/{merchantId}/transactions(Request)
- POST/api/v1/merchants/{merchantId}/transactions(Response (201))
- GET/api/v1/merchants/{merchantId}/transactions/{orderId}(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/commit(Response (200))
allowed
booleanIndica si el usuario autenticado puede acceder a la ruta y método consultados.
allowedRoles
arrayRoles autorizados para acceder a la ruta. Si la regla es pública este conjunto se ignora.
already_present
arrayLista de Solicitudes SPIDI que ya estaban activas en una Parada.
amount
number (double)Monto en la moneda especificada en el tipo de moneda'currency' con 2 decimales
amountAccredit
number (double)Monto en bolívares con 2 decimales que especifica la cantidad de dinero que sera acreditado en la cuenta recaudadora. Notese que este campo incluye conceptos de la logica de negocio de SPIDI por lo que no deberia ser usado en las api publicas
amountCrypto
number (double)Monto pagado en criptomoneda.
amountReference
number (double)Monto de referencia en la moneda especificada en currencyReference con 2 decimales.
amountVes
number (double)Monto en bolívares con 2 decimales.
amountVesCalculate
number (double)Monto en bolívares. Si el currency_reference es diferente a VES, este monto se calculó con base a la tasa. Posee 2 decimales
amountVesCheck
number (double)Monto en bolívares liquidado.
amountVesCredited
number (double)Monto neto acreditado al receptor en bolívares, luego de aplicar las comisiones correspondientes. Siempre tiene 2 decimales.
amountWithoutDecimals
number (integer)Monto en la moneda especificada en el tipo de moneda'currency' sin decimales
android_id
stringSin descripción disponible.
app_instance_id
stringSin descripción disponible.
applied_order
arrayOrden final aplicado a las Solicitudes SPIDI en una parada.
authCreateUser_roles
arrayRoles a asignar al usuario. Si se omite o va vacío se asigna `USER`. Solo un usuario con rol `ADMIN` puede asignar roles distintos de `USER`.
authentication--loginValidationError
stringError general de autenticación.
authLogin_password
string (password)Contraseña de la cuenta.
authLogin_username
stringNombre de usuario con el que se autentica la cuenta. No se valida formato: las cuentas de dispositivo usan como username un valor AES/Base64 derivado del serial (puede contener `+`, `/` o `=`).
authorization--loginValidationError
stringError de autorización.
authPermissionCheck_reason
stringExplicación legible del resultado de la verificación de acceso.
authRegister_password
string (password)Contraseña para el registro público. Debe tener entre 12 y 100 caracteres e incluir al menos una minúscula, una mayúscula, un dígito y un carácter especial (`@$!%*?&#`).
authRegister_username
stringNombre de usuario para el registro público. Solo admite letras, números, puntos, guiones y guiones bajos.
authRevoke_reason
stringMotivo de la revocación. Si se omite se registra `manual_revocation`.
authRole_description
stringDescripción legible del rol.
authRole_id
integer (int64)Identificador numérico del rol. Se ignora al crear o actualizar.
authRole_name
stringNombre único del rol, en mayúsculas con guiones bajos (sin el prefijo `ROLE_`).
authRoutePermission_description
stringDescripción de la regla de permiso.
authRoutePermission_id
integer (int64)Identificador numérico de la regla de permiso de ruta. Se ignora al crear o actualizar.
authServer_error
stringFrase de razón HTTP asociada al código de estado.
authServer_status
integerCódigo de estado HTTP de la respuesta.
authServer_timestamp
integer (int64)Momento en que se generó el error, en **milisegundos epoch**.
authUser_id
integer (int64)Identificador numérico del usuario en el servidor de autenticación.
bank_code
stringCódigo del banco. Solo acepta 3–4 dígitos (p.ej., 105 o 0137).
bank_commissions_ves
number (decimal(12,2))Comisión bancaria total cobrada en bolívares para la liquidación. Eco del request: no.
bank_name
stringNombre comercial del banco. Eco del request: no.
bank_reference_id
stringReferencia bancaria del pago. Eco del request: no.
bankCode
stringCódigo del banco. Solo acepta 3–4 dígitos (p.ej., 105 o 0137).
- GET/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/settlements(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/settlements(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/settlements(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/settlements/{batchNumber}(Response (200))
bankTransactionId
stringID de la transacción bancaria.
batch_active_now
arrayConjunto final de activos tras la operación (operación replace)
batch_added
arraySesiones agregadas como activas (operación add)
batch_already_present
arraySesiones ya activas, no-op (operación add)
batch_errors
objectDetalle de errores solo si success=false en operaciones batch
batch_id
stringIdentificador único de un lote (batch) procesado.
- POST/api/v1/ext/payment-stops(Response (200))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (201))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (207))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (200))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (207))
batch_operation_payment_stops_payment_sessions_item
objectSin descripción disponible.
- stop_id:stringIdentificador de la Parada sobre la que se ejecuta la operación. Debe pertenecer al comercio autenticado.Ejemplo: "stp_111"
- op:stringOperación a ejecutar: **add** (agregar sesiones), **remove** (desasociar sesiones), **replace** (reemplazar conjunto activo), **clear** (limpiar todos los activos)Valores posibles: add, remove, replace, clearEjemplo: "add"
- session_ids:arrayIDs de sesiones involucradas. Requerido para operaciones add, remove y replace. Solo sesiones en estado **pending** pueden activarse (add/replace).Ejemplo: ["sess_A","sess_B"]
bcv_exchange_rate
number (double)Tasa oficial usada para la conversión
bcv_rate_eur_ves
number (decimal(10,4))Tasa oficial BCV de EUR a VES usada en el cálculo del monto en bolívares. Eco del request: no.
bcv_rate_usd_ves
number (decimal(10,4))Tasa oficial BCV de USD a VES usada en el cálculo del monto en bolívares. Eco del request: no.
branch
stringSin descripción disponible.
button_config
arrayConfiguración dinámica opcional para personalizar la experiencia comercial del botón de pago.
cancellation_category
string**Clasificación técnica obligatoria.** Permite segmentar el motivo de cancelación para análisis de conversión y auditoría. **Definiciones:** * `INCORRECT_DATA`: Datos de pago o cliente inválidos (ej. CI/RIF erróneo). * `ALTERNATIVE_PAYMENT_RECEIVED`: El cliente pagó por otra vía (ej. efectivo o transferencia directa). * `OTHER`: Motivos no clasificados previamente (requiere nota adicional).
cancellation_categoryCompleted
string**Clasificación técnica obligatoria.** Permite segmentar el motivo de cancelación para análisis de conversión y auditoría. **Definiciones:** * `INCORRECT_DATA`: Datos de pago o cliente inválidos (ej. CI/RIF erróneo). * `ALTERNATIVE_PAYMENT_RECEIVED`: El cliente pagó por otra vía (ej. efectivo o transferencia directa). * `ORDER_SUPERSEDED`: La orden fue reemplazada por una nueva versión o corrección. * `CUSTOMER_REQUEST`: El cliente solicitó explícitamente cancelar la intención de compra. * `INVENTORY_UNAVAILABILITY`: Ruptura de stock o servicio no disponible al momento de procesar. * `FRAUD_SUSPICION`: Bloqueo preventivo por patrones de riesgo o validación de seguridad fallida. * `DUPLICATE_SESSION`: Se detectó otra sesión activa para la misma operación. * `ADMINISTRATIVE_OVERRIDE`: Cancelación forzada por un administrador del sistema o soporte técnico. * `OTHER`: Motivos no clasificados previamente (requiere nota adicional).
cancellation_messageAudit
stringNota de auditoría interna. Espacio para justificaciones técnicas o administrativas. Este contenido no es visible para el cliente final y se utiliza exclusivamente para trazabilidad recomienda usarlo con esta estructura: (quién, cuándo, por qué).
cancellation_messageUser
stringMensaje para el usuario final cuado por ejemplo el administrador necesita dar una instrucción específica.
cancellationDate
Sin descripción disponible.
- POST/api/v1/merchants/{merchantId}/transactions(Response (201))
- GET/api/v1/merchants/{merchantId}/transactions/{orderId}(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/commit(Response (200))
cleared
booleanIndica si se aplicó una operación de limpieza (`op=clear`) sobre las Solicitudes SPIDI activas en la parada.
clientIdentification
stringCédula o RIF del cliente.
- POST/api/v1/merchants/{merchantId}/transactions(Request)
- POST/api/v1/merchants/{merchantId}/transactions(Response (201))
- GET/api/v1/merchants/{merchantId}/transactions/{orderId}(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/commit(Response (200))
commissionCharged
booleanIndica si se cobró comisión.
commissionCreditId
integerNivel de comisión semiautomática que el banco aplica al crédito inmediato emitido. `0`: 0,1 %. `1`: 0,2 %. `2`: 0,3 %. El banco calcula el monto final de la comisión, SPIDI solo selecciona el nivel.
commissionDebitId
numberID del débito de comisión.
commitAt
string (date-time)Fecha y hora de la confirmacion de la operacion (ISO 8601).
- POST/api/v1/merchants/{merchantId}/transactions(Response (201))
- GET/api/v1/merchants/{merchantId}/transactions/{orderId}(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/commit(Request)
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/commit(Response (200))
concept
stringConcepto de la transacción.
confirmData
objectDatos de confirmación bancaria. **Este campo SOLO está definido y presente cuando el 'status' es 'PAID_COMPLETE'.** En estados pendientes o cancelados, este campo será null o no existirá.
- authorizationCode:stringCódigo de autorización bancaria.Ejemplo: "171599"
- processCode:stringEjemplo: "002000"
- commitAt:
- amountPaid:
- currencyPaid:
- trace:stringNúmero de traza (Trace).Ejemplo: "000535"
- utcDate:stringTimestamp UTC del banco.Ejemplo: "1007151715"
- cardTypeForRpt:stringTipo de tarjeta (C=Crédito, D=Débito).Ejemplo: "C"
- visOrMccCard:stringFranquicia de la tarjeta.Ejemplo: "MCC"
- batchNumber:
- POST/api/v1/merchants/{merchantId}/transactions(Response (201))
- GET/api/v1/merchants/{merchantId}/transactions/{orderId}(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/commit(Response (200))
confReceiptMethodCrixtoForValidation
objectDefine la configuracion para el método de recepción de los fondos en la validaciones: * `Si type=movil-pay`: Se recibe el dinero en la cuenta recaudadora usando pago móvil. * `Si type=transfer`: Se recibe el dinero en la cuenta recaudadora usando transferencias inmediatas este campo hace que sea necesario pasarle el campo `amountAccredit` . * `Si type=wallet`: Se recibe el dinero en la wallet de Spidi.
- type:
- amountAccredit:
container_session_id
stringID de la sesión contenedora cuando el pago se realizó vía container.
continueOnerror
booleanIndica si el procesamiento debe continuar con el resto de los ítems aunque alguno falle en operaciones de batch. - Si es `false`, se detiene en el primer error y las operaciones ya exitosas permanecen válidas. - Si es `true`, continúa procesando hasta el final y luego reporta las fallas acumuladas.
count
integerCantidad de elementos devueltos en una colección.
created_at
string (date-time)Fecha y hora de creación del recurso en formato ISO 8601.
- POST/api/v1/ext/agreements(Response (200))
- POST/api/v1/ext/payment-sessions/buttons(Response (200))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (200))
- POST/api/v1/ext/payment-sessions/request/batch(Response (200))
- POST/api/v1/ext/split-receiving-agreements(Response (200))
- GET/api/v1/ext/payment-stops(Response (200))
- POST/api/v1/ext/payment-stops(Response (200))
- GET/api/v1/ext/payment-stops/{stop_id}(Response (200))
- GET/api/v1/ext/payment-stops/{stop_id}/payment-sessions(Response (200))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (200))
created_by
stringIdentificador del usuario que creó el recurso administrable.
createdAt
string (date-time)Fecha y hora de creación en formato ISO 8601.
createDate
string (date-time)Fecha de creación.
creditsBreakdown
arrayLos créditos en que se reparte el ingreso: uno por partner de `splitPartners` (en el mismo orden) y uno para el owner, al final. Sin `splitPartners`, solo el del owner. Cada uno trae el **monto a solicitar** (`amountRequestedOutbound`) con el que hay que emitir ese crédito, usando el mismo porcentaje de comisión bancaria de egreso del pago. El residuo y la comisión propia de cada crédito no se cobran sobre el crédito: se suman y se cobran del lado del ingreso, en `amountOutflowInbound`. Montos con 2 decimales, como cadena.
creditSpidi_id
stringID de la liquidación al receptor del pago.
creditWebhook
objectSin descripción disponible.
- id:string
- amount_ves_credited:
- bank_commissions_ves:
- receive_date:
- bank_name:
- bank_reference_id:
- recipient:
cronJob_isActive
booleanIndica si el Cron Job o proceso está activo. Corresponde a la columna `is_active` (BOOLEAN) de la tabla `cron_job`.
cronJob_name
stringNombre identificador único del Cron Job. Corresponde a la columna `name` (UNIQUE KEY) de la tabla `cron_job`.
crypto
booleanIndica si se permiten pagos con criptomonedas en la configuración correspondiente. La liquidación siempre ocurre en bolívares.
currency
stringMoneda en la que se realiza la transacción.
currency_crypto
stringMoneda cripto utilizada en el pago (por ejemplo, USDT).
currencyReference
stringMoneda de referencia que se fija para el pago. Usada para calcular el monto en bolívares con la tasa vigente.
cursor_by_stop
objectMapa de cursores por parada para continuar la paginación de sesiones en múltiples paradas, usando pares `stop_id → cursor` obtenidos de una respuesta previa.
customer_ref
stringReferencia del cliente asociada a una sesión o parada.
data
objectObjeto principal de datos de la operación, que contiene el cuerpo del recurso creado, consultado o afectado (acuerdo, sesión, parada, webhook, etc.).
- POST/api/v1/merchants(Response (201))
- POST/api/v1/merchants/auth/login(Response (200))
- POST/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/pairing(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/pairing/activate(Response (200))
- POST/api/v1/merchants/{merchantId}/transactions(Response (201))
- GET/api/v1/merchants/{merchantId}/transactions/{orderId}(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/commit(Response (200))
- GET/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/settlements(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/settlements(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/settlements(Response (200))
- POST/api/v1/ext/agreements(Response (200))
- POST/api/v1/ext/partner(Response (201))
- POST/api/v1/ext/payment-sessions/buttons(Response (200))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (200))
- POST/api/v1/ext/payment-sessions/request/batch(Response (200))
- POST/api/v1/ext/payment-sessions/request/batch(Response (400))
- POST/api/v1/ext/payment-sessions/request/batch(Response (401))
- POST/api/v1/ext/payment-sessions/request/batch(Response (403))
- POST/api/v1/ext/payment-sessions/request/batch(Response (409))
- POST/api/v1/ext/payment-sessions/request/batch(Response (422))
- POST/api/v1/ext/payment-sessions/request/batch(Response (500))
- POST/api/v1/payment-session/{session_id}/expiration(Response (200))
- POST/api/v1/ext/split-receiving-agreements(Response (200))
- GET/api/v1/ext/payment-stops(Response (200))
- POST/api/v1/ext/payment-stops(Response (200))
- GET/api/v1/ext/payment-stops/{stop_id}(Response (200))
- PATCH/api/v1/ext/payment-stops/{stop_id}(Response (200))
- DELETE/api/v1/ext/payment-stops/{stop_id}(Response (200))
- GET/api/v1/ext/payment-stops/{stop_id}/payment-sessions(Response (200))
databaseInfo
objectInformación del refresh token persistida en base de datos (`id`, `jwtId`, `userId`, `username`, `deviceInfo`, `version`, `issuedAt`, `expiryDate`, `isExpired`). Vacío si el token no está registrado.
date
string (date)Fecha
debit_status
stringEstado del débito.
debitId
stringIdentificador del débito (string para path).
deeplinkConfig
objectConfiguración para el retorno a la app (Deep Linking). Estos campos se usan cuando la app merchant se ubica en el punto, pues al terminar la transacción de compra, el app financiero va a abrir la app en la pantalla específica esperada por parte del merchant.
- returnPackage:stringEjemplo: "com.tuapp.kiosco"
- returnActivity:stringEjemplo: "com.tuapp.kiosco.PaymentResultActivity"
- POST/api/v1/merchants/{merchantId}/transactions(Request)
- POST/api/v1/merchants/{merchantId}/transactions(Response (201))
- GET/api/v1/merchants/{merchantId}/transactions/{orderId}(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/commit(Response (200))
default_bank_account_id
string (uuid)UUID de la cuenta bancaria por defecto que se utilizará para la liquidación.
- POST/api/v1/ext/agreements(Request)
- POST/api/v1/ext/agreements(Response (200))
- POST/api/v1/ext/split-receiving-agreements(Request)
- POST/api/v1/ext/split-receiving-agreements(Response (200))
- POST/api/v1/ext/split-receiving-agreements(Response (400))
- POST/api/v1/ext/split-receiving-agreements(Response (401))
- POST/api/v1/ext/split-receiving-agreements(Response (409))
- POST/api/v1/ext/split-receiving-agreements(Response (422))
- POST/api/v1/ext/split-receiving-agreements(Response (500))
deleted_at
string (date-time)Fecha y hora de eliminación expresada en formato ISO 8601.
description
stringDescripción del acuerdo o del concepto de pago asociado a una sesión.
- POST/api/v1/ext/agreements(Request)
- POST/api/v1/ext/agreements(Response (200))
- POST/api/v1/ext/payment-sessions/buttons(Request)
- POST/api/v1/ext/payment-sessions/buttons(Response (200))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (200))
- POST/api/v1/ext/payment-sessions/request/batch(Request)
- POST/api/v1/ext/payment-sessions/request/batch(Response (200))
- POST/api/v1/ext/split-receiving-agreements(Request)
- POST/api/v1/ext/split-receiving-agreements(Response (200))
- GET/api/v1/ext/payment-stops/{stop_id}/payment-sessions(Response (200))
destination_bank_account_id
stringUUID de la cuenta bancaria de destino para un banco de origen específico.
- POST/api/v1/ext/agreements(Request)
- POST/api/v1/ext/agreements(Response (200))
- POST/api/v1/ext/split-receiving-agreements(Request)
- POST/api/v1/ext/split-receiving-agreements(Response (200))
- POST/api/v1/ext/split-receiving-agreements(Response (400))
- POST/api/v1/ext/split-receiving-agreements(Response (401))
- POST/api/v1/ext/split-receiving-agreements(Response (409))
- POST/api/v1/ext/split-receiving-agreements(Response (422))
- POST/api/v1/ext/split-receiving-agreements(Response (500))
details
stringDetalle adicional para diagnosticar el error.
device_fingerprint
stringopcional
device_serial
stringSin descripción disponible.
distribution
arrayLista de reglas/destinatarios del split. Debe tener ≥ 1 ítem. La suma de amount_reference debe ser menor al amount total de la sesión, porque la diferencia restante se asigna automáticamente al owner, quien siempre debe recibir una parte del pago. (Requerido cuando split=true)
due_date_link
string (date-time)Fecha y hora límite de vencimiento de la Solicitud SPIDI (link).
due_date_reached_behavior
stringComportamiento configurado para cuando la sesión alcance su fecha de vencimiento.
due_date_session
string (date-time)Fecha y hora límite de vencimiento de la Solicitud SPIDI (sesión).
duplicates
arrayLista de IDs repetidos detectados al procesar una operación de reordenamiento o batch.
Dirección de correo electrónico.
error
objectObjeto de error que contiene información estructurada sobre el código y el mensaje de error cuando la operación no es exitosa. Eco del request: no.
errors
objectDetalles específicos de los errores de validación.
- POST/api/v1/merchants(Response (400))
- POST/api/v1/merchants/auth/login(Response (401))
- POST/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/pairing(Response (400))
- POST/api/v1/pos-terminals/{serialNumber}/pairing/activate(Response (400))
- POST/api/v1/merchants/{merchantId}/transactions(Response (400))
- GET/api/v1/merchants/{merchantId}/transactions/{orderId}(Response (404))
- POST/api/v1/merchants/{merchantId}/transactions/{orderId}/invalidation(Response (409))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (400))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (401))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (403))
- GET/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}(Response (404))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/commit(Response (409))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/invalidation/commit(Response (409))
- GET/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/settlements(Response (400))
- POST/api/v1/pos-terminals/{serialNumber}/settlements(Response (400))
- GET/api/v1/pos-terminals/{serialNumber}/settlements/{batchNumber}(Response (404))
- POST/api/spidipagos/login(Response (400))
- POST/api/spidipagos/login(Response (401))
- POST/api/spidipagos/login(Response (422))
- POST/api/spidipagos/login(Response (429))
- POST/api/spidipagos/login(Response (500))
- POST/api/v1/ext/agreements(Response (400))
- POST/api/v1/ext/agreements(Response (401))
- POST/api/v1/ext/agreements(Response (403))
- POST/api/v1/ext/agreements(Response (409))
- POST/api/v1/ext/agreements(Response (422))
- POST/api/v1/ext/agreements(Response (429))
- POST/api/v1/ext/agreements(Response (500))
- POST/api/v1/ext/payment-sessions/buttons(Response (400))
- POST/api/v1/ext/payment-sessions/buttons(Response (401))
- POST/api/v1/ext/payment-sessions/buttons(Response (422))
- POST/api/v1/ext/payment-sessions/buttons(Response (500))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (400))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (401))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (403))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (404))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (422))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (500))
- POST/api/v1/ext/payment-sessions/request/batch(Response (200))
- POST/api/v1/ext/payment-sessions/request/batch(Response (400))
- POST/api/v1/ext/payment-sessions/request/batch(Response (401))
- POST/api/v1/ext/payment-sessions/request/batch(Response (403))
- POST/api/v1/ext/payment-sessions/request/batch(Response (409))
- POST/api/v1/ext/payment-sessions/request/batch(Response (422))
- POST/api/v1/ext/payment-sessions/request/batch(Response (500))
- POST/api/v1/payment-session/{session_id}/expiration(Response (422))
- POST/api/v1/ext/split-receiving-agreements(Response (400))
- POST/api/v1/ext/split-receiving-agreements(Response (401))
- POST/api/v1/ext/split-receiving-agreements(Response (409))
- POST/api/v1/ext/split-receiving-agreements(Response (422))
- POST/api/v1/ext/split-receiving-agreements(Response (500))
- GET/api/v1/ext/payment-stops(Response (400))
- POST/api/v1/ext/payment-stops(Response (200))
- POST/api/v1/ext/payment-stops(Response (400))
- POST/api/v1/ext/payment-stops(Response (401))
- POST/api/v1/ext/payment-stops(Response (422))
- POST/api/v1/ext/payment-stops(Response (500))
- GET/api/v1/ext/payment-stops/{stop_id}(Response (404))
- PATCH/api/v1/ext/payment-stops/{stop_id}(Response (400))
- PATCH/api/v1/ext/payment-stops/{stop_id}(Response (401))
- PATCH/api/v1/ext/payment-stops/{stop_id}(Response (422))
- PATCH/api/v1/ext/payment-stops/{stop_id}(Response (500))
- DELETE/api/v1/ext/payment-stops/{stop_id}(Response (400))
- DELETE/api/v1/ext/payment-stops/{stop_id}(Response (403))
- DELETE/api/v1/ext/payment-stops/{stop_id}(Response (404))
- DELETE/api/v1/ext/payment-stops/{stop_id}(Response (500))
- GET/api/v1/ext/payment-stops/{stop_id}/payment-sessions(Response (400))
- GET/api/v1/ext/payment-stops/{stop_id}/payment-sessions(Response (404))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (201))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (207))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (400))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (401))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (409))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (422))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (429))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (500))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (200))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (207))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (400))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (401))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (409))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (422))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (429))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (500))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (400))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (401))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (403))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (422))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (500))
event
stringTipo de evento reportado en un webhook, indicando la acción ocurrida. Eco del request: no.
exchange_commission
stringCosto total del intercambio, expresado como cadena en la moneda de origen. Es **un único monto ya consolidado**: incluye la comisión del banco por la salida del dinero, la comisión propia de SPIDI, el ajuste por redondeo y la comisión que cobró el proveedor externo (convertida a la moneda de origen con la tasa aplicada), acumulado sobre todos los intentos de ejecución — las comisiones de un intento fallido no se reversan. SPIDI hace el cálculo y el redondeo internamente; el desglose no forma parte del contrato. Es `null` mientras el intercambio no se haya ejecutado.
exchange_completedAt
string (date-time)Instante en que el proveedor confirmó la acreditación del monto de destino. Es `null` mientras el intercambio no alcance el estado `COMPLETED`.
exchange_createdAt
string (date-time)Instante en que se creó la operación de intercambio en SPIDI.
exchange_id
integerIdentificador interno, único y agnóstico al proveedor de una operación de intercambio entre cuentas propias de SPIDI. Cumple para los `exchanges` el mismo rol que el `accreditId` cumple para los `inbounds`: es el único identificador que el consumidor necesita conocer para operar, consultar y conciliar la conversión, sin importar qué proveedor externo la ejecute.
exchange_providerName
stringNombre del proveedor externo que ejecuta la conversión. Se expone solo con fines de trazabilidad y auditoría: el consumidor nunca necesita conocerlo para operar el intercambio, ya que toda la interacción se realiza mediante el `exchangeId`.
exchange_providerOrderId
stringIdentificador asignado por el proveedor externo al registrar la compra (para Crixto corresponde a `data.id_order` de `deposit-bank-reference-usdt`). Se persiste para poder auditar y conciliar la conversión directamente contra el proveedor. Es `null` hasta que el registro se confirma.
exchange_rate
stringTasa de conversión aplicada por el proveedor, expresada como unidades de la moneda de origen por una unidad de la moneda de destino. Es `null` hasta que el intercambio alcanza el estado `COMPLETED`.
exchange_rate_from
stringMoneda base utilizada en la tasa de cambio aplicada (por ejemplo, una moneda fuerte desde la cual se convierte a VES). Este campo puede estar obsoleto en el nuevo estándar. Eco del request: no.
exchange_rate_to
stringMoneda destino utilizada en la tasa de cambio aplicada, típicamente la moneda local (VES) a la que se convierte. Este campo puede estar obsoleto en el nuevo estándar. Eco del request: no.
exchange_sourceAmount
stringMonto exacto que sale de la entidad de origen, expresado como cadena para preservar la precisión decimal. Para VES se usan 2 decimales. **Es el total que se debita de la cuenta de origen, no lo que recibe el destino**: de este monto salen tanto el movimiento que efectivamente llega al proveedor como todas las comisiones del intercambio, de modo que siempre se cumple `source.amount` = monto que llegó al proveedor + `commission`. En el algoritmo de reparto de la cuenta recaudadora, este monto es el **`IngresoNeto`**: lo que quedó disponible después de las comisiones de ingreso, que ya se cobraron aguas arriba cuando el dinero entró.
exchange_sourceCurrency
stringMoneda en la que está expresado el monto de origen del intercambio. Por ahora `VES` es el único valor soportado; se ampliará cuando se habiliten más rutas.
exchange_sourceEntity
stringCuenta propia de SPIDI desde la cual salen los fondos del intercambio. `ACCOUNT_COLLECTION_SOFITASA`: cuenta recaudadora en Sofitasa. `WALLET_CRIXTO`: wallet de SPIDI en Crixto. Por ahora solo existe una ruta habilitada entre estos dos valores; se ampliará el catálogo cuando se sumen más entidades.
exchange_sourceIdentifier
stringIdentificador del movimiento con el que el dinero salió de la entidad de origen. Es agnóstico al medio: para la cuenta recaudadora Sofitasa corresponde a la referencia bancaria del crédito inmediato emitido. Es `null` mientras el intercambio no se haya ejecutado.
exchange_status
stringEstado agregado del intercambio. `null`: recién creado, todavía no se ejecutó. `PENDING`: ya se ejecutó y no hay todavía un resultado final — el proceso asíncrono que verifica el crédito y registra la compra ante el proveedor sigue en curso. `ERROR`: la ejecución más reciente falló (saldo insuficiente, rechazo del banco, crédito reversado, o registro rechazado por el proveedor); admite un nuevo intento de ejecución. `COMPLETED`: el proveedor confirmó la compra y la conversión quedó cerrada. El detalle de qué ocurrió en cada intento — request/response crudos, código de error, referencias del banco y del proveedor — se registra por separado en `exchange_attempt`, no en este campo.
exchange_targetAmount
stringMonto efectivamente acreditado en la entidad de destino, expresado como cadena para preservar la precisión decimal. Para USDT se usan hasta 8 decimales. Es `null` mientras el proveedor no haya confirmado la conversión, ya que la tasa se fija en el momento de la acreditación.
exchange_targetCurrency
stringMoneda en la que está expresado el monto de destino del intercambio. Por ahora `USDT` es el único valor soportado; se ampliará cuando se habiliten más rutas.
exchange_targetEntity
stringCuenta propia de SPIDI en la cual se acreditan los fondos convertidos del intercambio. Usa el mismo catálogo que `source.entity` y debe ser distinta de esta.
exchange_targetIdentifier
stringIdentificador del movimiento con el que el dinero entró en la entidad de destino. Es agnóstico al proveedor: para Crixto corresponde al `txnId` de la compra confirmada. Es `null` mientras el proveedor no haya confirmado la conversión — que no sea nulo es la señal definitiva de que el intercambio se completó.
exchange_type
stringTipo de conversión que realiza el intercambio. Lo resuelve el servidor a partir de la combinación de entidades y monedas (`source.entity`, `target.entity`, `source.currency`, `target.currency`); el consumidor no lo envía. `FIAT_TO_USDT`: bolívares de una cuenta propia convertidos a USDT en una wallet propia. **Describe la conversión, no al proveedor que la ejecuta**: quién la ejecuta se informa aparte, en `provider.name`, para que cambiar de proveedor no cambie el tipo. Por ahora es el único tipo habilitado; se ampliará cuando se sumen más rutas.
exchangeBsUsdtBuy
number (double)Tasa de compra de USDT expresada en Bolívares (VES).
exchangeBsUsdtSell
number (double)Tasa de venta de USDT expresada en Bolívares (VES).
executionDate
string (date)Fecha de ejecución bancaria en formato ISO 8601 (YYYY-MM-DD).
exists
booleanIndica si el recurso consultado existe.
expiration
integer (int64)Fecha de expiración del token en **milisegundos epoch** (UTC).
expirationBehavior
stringComportamiento aplicado a la sesión o enlace cuando se maneja su expiración. Eco del request: no.
expire_behavior_link
stringComportamiento configurado para la Solicitud SPIDI cuando alcanza su fecha de vencimiento.
expiredAt
string (date-time)Fecha y hora en que la Solicitud SPIDI pasó al estado 'expired', en formato ISO 8601. (incluye solo cuando la sesión expira)
expiresAt
integer (int64)Fecha de expiración del token en **milisegundos epoch** (UTC).
expiresIn
integerTiempo en segundos antes de expirar.
failed_count
integerNúmero de sesiones que fallaron al crear en el batch.
- POST/api/v1/ext/payment-sessions/request/batch(Response (200))
- POST/api/v1/ext/payment-sessions/request/batch(Response (400))
- POST/api/v1/ext/payment-sessions/request/batch(Response (401))
- POST/api/v1/ext/payment-sessions/request/batch(Response (403))
- POST/api/v1/ext/payment-sessions/request/batch(Response (409))
- POST/api/v1/ext/payment-sessions/request/batch(Response (422))
- POST/api/v1/ext/payment-sessions/request/batch(Response (500))
failure_url
string (uri)URL de redirección que se utiliza cuando un intento de pago falle.
field
stringError genérico de campo.
- POST/api/v1/ext/agreements(Response (400))
- POST/api/v1/ext/agreements(Response (401))
- POST/api/v1/ext/agreements(Response (403))
- POST/api/v1/ext/agreements(Response (409))
- POST/api/v1/ext/agreements(Response (422))
- POST/api/v1/ext/agreements(Response (429))
- POST/api/v1/ext/agreements(Response (500))
- POST/api/v1/ext/payment-sessions/buttons(Response (400))
- POST/api/v1/ext/payment-sessions/buttons(Response (401))
- POST/api/v1/ext/payment-sessions/buttons(Response (422))
- POST/api/v1/ext/payment-sessions/buttons(Response (500))
fieldErrors
arrayErrores de validación por campo del cuerpo de la petición.
from_date
string (date-time)Fecha y hora mínima (inclusive) desde la cual devolver resultados. Formato ISO 8601 UTC.
has_next
booleanIndica si existe una página siguiente en los resultados de la paginación. Eco del request: no.
hasPermission
booleanIndica si el conjunto de roles tiene acceso a la ruta y método consultados.
httpMethod
stringMétodo HTTP al que aplica la regla.
id
string (uuid)Identificador único en formato UUID.
- POST/api/v1/merchants(Response (201))
- POST/api/v1/merchants/{merchantId}/transactions(Response (201))
- GET/api/v1/merchants/{merchantId}/transactions/{orderId}(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/commit(Response (200))
- GET/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/settlements(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/settlements(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/settlements(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/settlements/{batchNumber}(Response (200))
idempotency_key
stringError relacionado con la clave de idempotencia.
idempotency-key
string (uuid)Clave de idempotencia para evitar duplicados. Debe ser UUID v4.
identification
stringIdentificación del usuario o cliente.
identificationLegal
stringIdentificación legal puede ser RIF o CI
identifier
stringIdentificador del pagador, interpretado según el valor de identifier_label. Ejemplo: Nro de orden, Nombre, etc.
- POST/api/v1/ext/payment-sessions/buttons(Request)
- POST/api/v1/ext/payment-sessions/buttons(Response (200))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (200))
- POST/api/v1/ext/payment-sessions/request/batch(Request)
- POST/api/v1/ext/payment-sessions/request/batch(Response (200))
- GET/api/v1/ext/payment-stops/{stop_id}/payment-sessions(Response (200))
identifier_label
stringEtiqueta que indica cómo debe interpretarse el valor enviado en identifier (ej. 'Nro de orden').
- POST/api/v1/ext/payment-sessions/buttons(Request)
- POST/api/v1/ext/payment-sessions/buttons(Response (200))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (200))
- POST/api/v1/ext/payment-sessions/request/batch(Request)
- POST/api/v1/ext/payment-sessions/request/batch(Response (200))
- GET/api/v1/ext/payment-stops/{stop_id}/payment-sessions(Response (200))
imei
stringopcional_si_existe
immediate_debit
booleanIndica si permite pagos con débito inmediato.
inboundCrixto_amountFeeOwnDestInboundDeduction
number (double)Comisión propia cobrada en la cuenta del proveedor de destino (el que ofrece la cuenta recaudadora). Solo pos_type = 6 (TRANSFER_BANK). Null si no aplica o si todavía no se cobró — ver outflow_inbound_status.
inboundCrixto_amountFeePaymentMethodOriginInboundSurcharge
number (double)Igual que processor_commission_crypto, con el nombre nuevo (DR-11): comisión del método de pago usado con el proveedor de origen (BinancePay, CrixtoPay, etc).
inboundCrixto_amountFeeProviderOriginInboundSurcharge
number (double)Igual que provider_commission_crypto, con el nombre nuevo (DR-11): comisión del proveedor de origen (el que cobra el pago al usuario; hoy Crixto).
inboundCrixto_amountWithAdjust
number (double)Solo pos_type = 6 (TRANSFER_BANK), requerido ahí. Monto ajustado en VES, análogo a adjustedDebit del débito inmediato. El ajuste del ingreso es amount_with_adjust − amount_transaction_ves (puede ser negativo) y se cobra junto con la comisión propia. Solo se usa para ese cálculo al crear la orden; no se persiste.
inboundCrixto_feeCryptoId
numberSolo pos_type = 6 (TRANSFER_BANK), requerido ahí. Nivel de comisión propia; el porcentaje se infiere con la misma relación que commission_debit_id del débito inmediato: 0 = 0.20%, 1 = 0.60%, 2 = 0.90%, 3 = 1.20%, 4 = 1.60%, 5 = 2.0%. Solo se usa para calcular la comisión propia al crear la orden; no se persiste.
inboundCrixto_id
stringID de la orden en Crixto
inboundCrixto_outflowInboundStatus
stringSolo pos_type = 6 (TRANSFER_BANK). Estatus del cobro de la comisión propia del egreso (amount_fee_own_dest_inbound_deduction): 'PENDING' (reservado, esperando respuesta del banco), 'PAID' (confirmado), 'ERROR' (el banco lo rechazó, reintentar puede funcionar) o 'MANUAL_REVIEW' (ningún reintento automático lo resuelve). Null si no aplica o si todavía no se intentó cobrar.
inboundCrixto_paymentDeeplink
stringDeeplink para realizar el pago en la app del proveedor (ej. Binance).
inboundCrixto_paymentMethod_commission
number (double)Monto en decimales de comisión aplicado por el procesador tecnológico (BinancePay, CrixtoPay, etc) por la validación, ejecución y aseguramiento de la transacción de pago.
inboundCrixto_paymentMethod_name
stringNombre del método de pago (ej. Binance Pay, Crixto Pay).
inboundCrixto_posType
stringNumero que indica la forma en que se reciben los pagos desde crixto 3 para recibir dinero en la wallet, 2 pago movil, ...
inboundCrixto_provider_commission
number (double)Monto en decimales de comisión retenido por el provedor (Crixto, Binance, etc) por la gestión de fondos o el uso de su infraestructura de billetera.
inboundCrixto_providerReference
stringSolo pos_type = 6 (TRANSFER_BANK). Referencia del depósito bancario que hace el proveedor de origen a la cuenta recaudadora, la misma que se usa para cobrar amount_fee_own_dest_inbound_deduction. Null si no aplica o si la orden todavía no se completó.
inboundCrixto_qrPayment
objectCódigo QR para realizar el pago
- img:stringImagen del código QR en formato base64Ejemplo: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAAAklEQVR4AewaftIAAAdiSURBVO3BQY4cy5LAQDLR978yR0tfBZCoav2nGDezP1jrEg9rXeRhrYs8rHWRh7Uu8rDWRR7WusjDWhd5WOsiD2td5GGtizysdZGHtS7ysNZFHta6yMNaF/nhQyp/U8WkMlW8ofJGxRsqU8Wk8kbFpDJVTCpTxRsqf1PFJx7WusjDWhd5WOsiP3xZxTepvKEyVUwqU8UnVKaKE5WTihOV/6WKb1L5poe1LvKw1kUe1rrID79M5Y2KNypOVN5QOal4o+JE5Y2KE5W/SeWNit/0sNZFHta6yMNaF/nhH6cyVUwVb1RMKpPKVDGpTBWTylRxojJVfEJlqrjJw1oXeVjrIg9rXeSHf1zFpPJGxRsVv0nlDZWpYlI5UZkq/mUPa13kYa2LPKx1kR9+WcV/ScWJyonKVDFVfFPFJypOVD5R8V/ysNZFHta6yMNaF/nhy1T+JpWpYlI5UZkqJpWpYlKZKiaVqWJSmSomlaniDZWp4hMq/2UPa13kYa2LPKx1EfuDf5jKScUbKlPFpDJVTCrfVHGiMlWcqJxU/Mse1rrIw1oXeVjrIj98SGWqmFROKiaVNypOVKaKk4o3VKaKE5WTihOVqeJE5aTiRGWqOFGZKiaVk4pPPKx1kYe1LvKw1kV++FDFScWJyknFN6mcVPymihOVqWKqOFGZKt5QmSp+U8U3Pax1kYe1LvKw1kV++JDKVDGpTBVvqEwVk8pJxaQyVUwqU8VJxf8nKm+oTBW/6WGtizysdZGHtS7yw4cqTipOKt5QmSpOVKaKSWWqmFQ+oXJSMVVMKt+kMlW8UXGi8r/0sNZFHta6yMNaF7E/+EUqU8WkMlVMKlPFicobFZ9QOak4UZkqTlS+qWJSOamYVL6p4hMPa13kYa2LPKx1kR8+pDJVfFPFGxUnKm+onFS8ofKJijdUTlSmikllUnmj4kTlmx7WusjDWhd5WOsi9gcfUDmpmFSmihOVk4pJZap4Q+Wk4kTljYoTlaliUjmpeENlqjhRmSomlaniNz2sdZGHtS7ysNZF7A++SGWqOFGZKr5JZaqYVKaKE5WpYlI5qZhU3qh4Q+WkYlL5RMUbKlPFJx7WusjDWhd5WOsiP/wylU+onFScVJxUfELlmyreUJkqPlFxojJVTConFVPFNz2sdZGHtS7ysNZF7A9+kcpJxaQyVUwqU8UnVKaKSWWqmFSmihOVNyreUHmj4kTlpOJE5Y2KTzysdZGHtS7ysNZFfvgylaliUplUTlSmijdUpoqp4g2Vb6o4UZkq3qiYVD5RMalMFf9LD2td5GGtizysdZEfPqQyVZxUfJPKJ1SmiqniDZXfpDJVTBVvqJxUvKEyVUwqU8U3Pax1kYe1LvKw1kV++FDFpDJVTCpTxYnKScUbKn9TxYnKScUnVKaKSeUNlZOKk4pJZar4xMNaF3lY6yIPa13khw+pTBUnFScqU8WkMqlMFd+kMlWcVJyoTBVvqEwVJxXfVHGiMlVMKlPFNz2sdZGHtS7ysNZF7A8+oPJGxaQyVUwqb1RMKp+oOFE5qXhD5RMVk8pU8QmVqeINlanimx7WusjDWhd5WOsi9gd/kcpUMalMFd+k8kbFJ1SmihOVb6qYVN6oOFF5o2JSmSo+8bDWRR7WusjDWhexP/gilU9UTCpTxaQyVUwqv6niROVvqjhR+U0Vk8obFZ94WOsiD2td5GGti/zwyypOVE4qJpUTlU9UvKEyVZxUTCpTxYnKGyonFZPKScWkMqlMFZPKb3pY6yIPa13kYa2L/PCXqUwVJypTxYnKb1J5o2JS+aaKSeWkYlKZKk5UpopJZVI5qfimh7Uu8rDWRR7WusgPH1KZKiaVqWJSOamYVE4qTlSmiknlpGJSeaPiRGWqeKNiUjmpOFF5o+INlaniEw9rXeRhrYs8rHWRHz5U8YbKGyonFZ9QOamYVKaKE5WpYlI5UZkqTlTeUPmEylQxqUwVv+lhrYs8rHWRh7Uu8sMvq/hNKicVn1B5Q2WqeKPiROWk4hMVb6j8lzysdZGHtS7ysNZFfviQyt9UcVJxUnGi8obKJyomlaliqnhDZap4Q2Wq+ITKb3pY6yIPa13kYa2L/PBlFd+k8obKVHGiMlWcqEwV31QxqUwVJypTxaTyRsUnKk5UvulhrYs8rHWRh7Uu8sMvU3mj4o2KN1ROVKaKqeINlanib1KZKiaVSeUTKlPFpDJVfNPDWhd5WOsiD2td5Id/nMpU8YmKSeWk4hMqn1A5qZhUTiomlaliUvkveVjrIg9rXeRhrYv8cBmVk4pJ5aTiRGWqOFE5qThRmSomlU+o/Mse1rrIw1oXeVjrIj/8sorfVHGiclJxojJVvFFxonKi8psq3lB5Q2Wq+E0Pa13kYa2LPKx1kR++TOVvUpkqvqliUjlReaPiEyonKm+onFRMKm+onFR84mGtizysdZGHtS5if7DWJR7WusjDWhd5WOsiD2td5GGtizysdZGHtS7ysNZFHta6yMNaF3lY6yIPa13kYa2LPKx1kYe1LvJ/zXq8jxPRiswAAAAASUVORK5CYII="
- url:stringURL para realizar el pagoEjemplo: "https://app.binance.com/qr/dplk42fce9f3e97f43cead255ea26f43a458"
inboundCrixto_rateCryptoFiat
number (double)Tasa Cripto/Fiat usada durante la conversión de cripto-fiat, especificada 4 decimales
inboundCrixto_receptionStatus
stringSolo pos_type = 6 (TRANSFER_BANK), null si no aplica. PAID significa que ya se recibió la referencia del depósito que hace el proveedor de origen a la cuenta recaudadora (se liquidó) — no que la comisión propia ya se cobró sobre ese ingreso (ver outflow_inbound_status para eso). PENDING mientras esa referencia todavía no llega.
inboundCrixto_urlPayment
stringURL a la que se redirige en caso de éxito o si se genera un error.
inboundCrixto_webhook_url
stringURL a la que se enviará la información al finalizar el proceso.
inboundCrypto_amountPaidCrypto
number (double)Igual que amount_pay_by_user_crypto, con el nombre nuevo (DR-11).
inboundCrypto_amountPaidVes
number (double)Igual que amount_pay_by_user_ves, con el nombre nuevo (DR-11).
inboundCrypto_amountPayByUserCrypto
number (double)Monto con 3 decimales del pago realizado por el usuario en la moneda cripto. Note que puede variar del monto original si se aplica una comisión por el pago.
inboundCrypto_amountPayByUserVes
number (double)Monto con 3 decimales del pago realizado por el usuario en la moneda VES. Note que puede variar del monto original si se aplica una comisión por el pago.
inboundCrypto_amountRequestedCrypto
number (double)Igual que amount_transaction_crypto, con el nombre nuevo (DR-11).
inboundCrypto_amountRequestedVes
number (double)Igual que amount_transaction_ves, con el nombre nuevo (DR-11).
inboundCrypto_amountTransactionCrypto
number (double)Monto con 3 decimales de la transacción en la moneda cripto. Note que es el monto original sin incluir la comisión por el pago.
inboundCrypto_amountTransactionVes
number (double)Monto con 3 decimales de la transacción en la moneda VES. Note que es el monto original sin incluir la comisión por el pago.
inboundCrypto_details
objectDetalles de pago con criptomonedas (null si no aplica).
- provider_name:
- crypto_order_id:
- payment_method_name:
- amount_transaction_ves:
- amount_pay_by_user_crypto:
- currency_crypto:
- exchange_rate:
- paid_at:
inboundCrypto_id
stringIdentificador de la orden cripto generada por el proveedor.
inboundCrypto_paidAt
string (date-time)Fecha y hora en que se confirmó el pago cripto, en formato ISO 8601.
inboundCrypto_provider_name
stringNombre de la entidad o plataforma financiera que custodia los activos del usuario. Representa el ecosistema o 'banco digital' donde reside el saldo original (ej. Binance, Crixto).
inboundCrypto_status
stringEstado del pago, tal cual lo reporta Crixto — deliberadamente simple, no mezcla nada del cobro de la comisión propia de pos_type = 6 (TRANSFER_BANK). 'PENDING' (a la espera del pago), 'PAID' (el usuario pagó), 'ERROR' (falló el pago), 'EXPIRED' (el pago expiró) o 'CANCELED' (el pago se canceló). Para el estatus combinado (pago + cobro de la comisión propia, que sí puede salir 'MANUAL_REVIEW'), ver order_details.reception_status.
inboundCrypto_statusConvertion
stringEstado de la transacción de conversión de cripto a fiat: 'PAID' (La transacción fue completada exitosamente), 'PENDING' (a la espera de la confirmación de la transacción) y 'ERROR' (la transacción falló).
inboundMobilePayment_sessionId
stringIdentificador de la sesión de pago externa que originó este pago móvil (ej. sesión de checkout o de compra de cripto). Opcional: permite conciliar el pago con su origen.
inboundMobilePayment_status
stringEstado del pago. Al registrarse siempre asume 'PAID' indicando que fue conciliado exitosamente.
inboundMobilePayment_statusReview
stringEstado de revisión del pago móvil.
inboundType
stringEl discriminador del tipo de inbound. Cuando el valor es `crixto-binance-pay` se recibiran pagos de Binance Pay a través de Crixto
include_history
booleanIndica si debe incluirse el histórico de estados (`paid`, `expired`). Valor por defecto: true.
instrument
stringInstrumento de pago utilizado.
internal_reference
stringReferencia interna única utilizada por el sistema o el comercio para identificar la solicitud de pago o parada (propósito estrictamente técnico,no visible al usuario final). **Importancia para Paradas SPIDI:** - Permite conciliar y auditar operaciones entre tu sistema y SPIDI - Sirve para asociar solicitudes de pago con su Parada correspondiente - Puede vincularse a clientes, contratos o facturas en tu plataforma Se recomienda mantener este campo de forma consistente para facilitar la trazabilidad.
- POST/api/v1/ext/payment-sessions/buttons(Request)
- POST/api/v1/ext/payment-sessions/buttons(Response (200))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (200))
- POST/api/v1/ext/payment-sessions/request/batch(Request)
- POST/api/v1/ext/payment-sessions/request/batch(Response (200))
- GET/api/v1/ext/payment-stops(Response (200))
- POST/api/v1/ext/payment-stops(Request)
- POST/api/v1/ext/payment-stops(Response (200))
- GET/api/v1/ext/payment-stops/{stop_id}(Response (200))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (200))
isActive
booleanIndica si la regla está activa. Las reglas inactivas no se evalúan.
isPublic
booleanIndica si la ruta es pública (no requiere roles).
issuedAt
integer (int64)Fecha de emisión del token (claim `iat`), cuando está disponible.
isValid
booleanIndica si el token es válido: firma correcta, no expirado y no revocado.
item_index
integerÍndice del ítem que falló en un batch.
- POST/api/v1/ext/payment-sessions/request/batch(Response (200))
- POST/api/v1/ext/payment-sessions/request/batch(Response (400))
- POST/api/v1/ext/payment-sessions/request/batch(Response (401))
- POST/api/v1/ext/payment-sessions/request/batch(Response (403))
- POST/api/v1/ext/payment-sessions/request/batch(Response (409))
- POST/api/v1/ext/payment-sessions/request/batch(Response (422))
- POST/api/v1/ext/payment-sessions/request/batch(Response (500))
items
arrayListado de objetos para creación de paradas o sesiones (batch). Mínimo un ítem.
- POST/api/v1/ext/payment-sessions/request/batch(Request)
- POST/api/v1/ext/payment-sessions/request/batch(Response (200))
- POST/api/v1/ext/payment-sessions/request/batch(Response (400))
- POST/api/v1/ext/payment-sessions/request/batch(Response (401))
- POST/api/v1/ext/payment-sessions/request/batch(Response (403))
- POST/api/v1/ext/payment-sessions/request/batch(Response (409))
- POST/api/v1/ext/payment-sessions/request/batch(Response (422))
- POST/api/v1/ext/payment-sessions/request/batch(Response (500))
- GET/api/v1/ext/payment-stops(Response (200))
- POST/api/v1/ext/payment-stops(Request)
- GET/api/v1/ext/payment-stops/{stop_id}/payment-sessions(Response (200))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Request)
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Request)
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (200))
label
stringEtiqueta descriptiva del receptor en un split. (Opcional en distribution, Eco del request: sí)
landing_title
stringTítulo de la landing page creada por SPIDI.
last_expired_at
string (date-time)Fecha y hora de la última expiración en formato ISO 8601.
last_expired_by
stringOrigen de la expiración: api o system.
lastCheckedAt
string (date-time)Fecha y hora (timestamp) de la última consulta realizada en formato ISO 8601 con zona horaria.
late_notice_message
stringMensaje que verá el pagador cuando la sesión haya vencido pero continúe activa (keep_active).
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (200))
- POST/api/v1/ext/payment-sessions/request/batch(Request)
- POST/api/v1/ext/payment-sessions/request/batch(Response (200))
- GET/api/v1/ext/payment-stops/{stop_id}(Response (200))
- GET/api/v1/ext/payment-stops/{stop_id}/payment-sessions(Response (200))
legalName
stringNombre legal del comercio.
limit
integerMáximo de elementos a devolver en una lista. Valor por defecto: 50.
link_amount
number (double)Monto en la moneda de referencia para una solicitud de pago.
link_status
stringEstado del solicitud de pago.
links_active
arrayLista de solicitudes de pago activas en la parada (Nota: Sugerido cambiar a 'requests_active').
links_active_count
integerNúmero de solicitudes de pago activas (Nota: Sugerido cambiar a 'requests_active_count').
manufacturer
stringSin descripción disponible.
matchedRoute
stringPatrón de ruta (estilo Ant, p. ej. `/api/roles/**`) de la regla que coincidió. Nulo si ninguna regla aplica.
memo
stringNota o referencia interna para el crédito.
merchant_id
string (uuid)Identificador único en formato UUID del comercio
merchant_name
stringNombre del comercio.
merchant_type
stringTipo de comercio
message
stringMensaje de confirmación o error legible.
- POST/api/v1/merchants(Response (400))
- POST/api/v1/merchants/auth/login(Response (401))
- POST/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/pairing(Response (400))
- POST/api/v1/pos-terminals/{serialNumber}/pairing/activate(Response (400))
- POST/api/v1/merchants/{merchantId}/transactions(Response (400))
- GET/api/v1/merchants/{merchantId}/transactions/{orderId}(Response (404))
- POST/api/v1/merchants/{merchantId}/transactions/{orderId}/invalidation(Response (409))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (400))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (401))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (403))
- GET/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}(Response (404))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/commit(Response (409))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/invalidation/commit(Response (409))
- GET/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/settlements(Response (400))
- POST/api/v1/pos-terminals/{serialNumber}/settlements(Response (400))
- GET/api/v1/pos-terminals/{serialNumber}/settlements/{batchNumber}(Response (404))
- POST/api/spidipagos/login(Response (400))
- POST/api/spidipagos/login(Response (401))
- POST/api/spidipagos/login(Response (422))
- POST/api/spidipagos/login(Response (429))
- POST/api/spidipagos/login(Response (500))
- POST/api/v1/ext/agreements(Response (400))
- POST/api/v1/ext/agreements(Response (401))
- POST/api/v1/ext/agreements(Response (403))
- POST/api/v1/ext/agreements(Response (409))
- POST/api/v1/ext/agreements(Response (422))
- POST/api/v1/ext/agreements(Response (429))
- POST/api/v1/ext/agreements(Response (500))
- POST/api/v1/ext/partner(Response (201))
- POST/api/v1/ext/payment-sessions/buttons(Response (200))
- POST/api/v1/ext/payment-sessions/buttons(Response (400))
- POST/api/v1/ext/payment-sessions/buttons(Response (401))
- POST/api/v1/ext/payment-sessions/buttons(Response (422))
- POST/api/v1/ext/payment-sessions/buttons(Response (500))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (200))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (400))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (401))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (403))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (404))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (422))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (500))
- POST/api/v1/ext/payment-sessions/request/batch(Response (200))
- POST/api/v1/ext/payment-sessions/request/batch(Response (400))
- POST/api/v1/ext/payment-sessions/request/batch(Response (401))
- POST/api/v1/ext/payment-sessions/request/batch(Response (403))
- POST/api/v1/ext/payment-sessions/request/batch(Response (409))
- POST/api/v1/ext/payment-sessions/request/batch(Response (422))
- POST/api/v1/ext/payment-sessions/request/batch(Response (500))
- POST/api/v1/payment-session/{session_id}/expiration(Response (200))
- POST/api/v1/payment-session/{session_id}/expiration(Response (422))
- POST/api/v1/ext/split-receiving-agreements(Response (400))
- POST/api/v1/ext/split-receiving-agreements(Response (401))
- POST/api/v1/ext/split-receiving-agreements(Response (409))
- POST/api/v1/ext/split-receiving-agreements(Response (422))
- POST/api/v1/ext/split-receiving-agreements(Response (500))
- GET/api/v1/ext/payment-stops(Response (200))
- GET/api/v1/ext/payment-stops(Response (400))
- POST/api/v1/ext/payment-stops(Response (200))
- POST/api/v1/ext/payment-stops(Response (400))
- POST/api/v1/ext/payment-stops(Response (401))
- POST/api/v1/ext/payment-stops(Response (422))
- POST/api/v1/ext/payment-stops(Response (500))
- GET/api/v1/ext/payment-stops/{stop_id}(Response (200))
- GET/api/v1/ext/payment-stops/{stop_id}(Response (404))
- PATCH/api/v1/ext/payment-stops/{stop_id}(Response (200))
- PATCH/api/v1/ext/payment-stops/{stop_id}(Response (400))
- PATCH/api/v1/ext/payment-stops/{stop_id}(Response (401))
- PATCH/api/v1/ext/payment-stops/{stop_id}(Response (422))
- PATCH/api/v1/ext/payment-stops/{stop_id}(Response (500))
- DELETE/api/v1/ext/payment-stops/{stop_id}(Response (200))
- DELETE/api/v1/ext/payment-stops/{stop_id}(Response (400))
- DELETE/api/v1/ext/payment-stops/{stop_id}(Response (403))
- DELETE/api/v1/ext/payment-stops/{stop_id}(Response (404))
- DELETE/api/v1/ext/payment-stops/{stop_id}(Response (500))
- GET/api/v1/ext/payment-stops/{stop_id}/payment-sessions(Response (200))
- GET/api/v1/ext/payment-stops/{stop_id}/payment-sessions(Response (400))
- GET/api/v1/ext/payment-stops/{stop_id}/payment-sessions(Response (404))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (201))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (207))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (400))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (401))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (409))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (422))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (429))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (500))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (200))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (207))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (400))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (401))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (409))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (422))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (429))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (500))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (200))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (400))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (401))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (403))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (422))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (500))
metadata
objectDatos adicionales definidos por el comercio. Eco del request: no.
metaPagination
objectMetadatos de paginación.
- totalCount:integerTotal de registros encontrados que coinciden con los criterios de búsqueda.Ejemplo: 150
- totalPages:integerTotal de páginas calculadas según el parámetro size.Ejemplo: 8
- currentPage:integerPágina de resultados actual.Ejemplo: 2
- size:integerCantidad de elementos solicitados por página.Ejemplo: 20
method
stringMétodo HTTP.
missing_actives
arraySolicitudes SPIDI activas no incluidas en la lista durante un reordenamiento.
mobile_payment
booleanPermitir pagos con pago móvil.
mode
stringModo de reordenamiento: 'append' (por defecto) o 'strict' (reemplazar lista).
model
stringSin descripción disponible.
name
stringSin descripción disponible.
next_cursor
stringCursor para continuar la paginación. (Eco del request: no)
not_active
arraySolicitudes SPIDI no activas en Parada.
not_found
arraySesiones no encontradas en Parada.
number
stringSin descripción disponible.
- GET/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/settlements(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/settlements(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/settlements(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/settlements/{batchNumber}(Response (200))
numeric_debitId
numberIdentificador del débito (numérico para response).
observations
stringMensaje libre para el partner (máx. 500 caracteres). (Requerido en distribution, Eco del request: sí)
offset
integerDesplazamiento para paginación (cantidad de elementos a saltar).
only_fields
stringComa-separado para limitar los campos devueltos en el payload.
op
stringOperación para batch: add | remove | replace | clear.
order
stringOrden de clasificación: asc (ascendente) o desc (descendente). Por defecto: desc.
order_index
integerPosición relativa de la sesión en la parada.
orderId
string (uuid)Identificador único de la orden generado por el comercio.
- POST/api/v1/merchants/{merchantId}/transactions(Request)
- POST/api/v1/merchants/{merchantId}/transactions(Response (201))
- GET/api/v1/merchants/{merchantId}/transactions/{orderId}(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/commit(Response (200))
origin_bank_code
stringCódigo oficial del banco de origen.
- POST/api/v1/ext/agreements(Request)
- POST/api/v1/ext/agreements(Response (200))
- POST/api/v1/ext/split-receiving-agreements(Request)
- POST/api/v1/ext/split-receiving-agreements(Response (200))
- POST/api/v1/ext/split-receiving-agreements(Response (400))
- POST/api/v1/ext/split-receiving-agreements(Response (401))
- POST/api/v1/ext/split-receiving-agreements(Response (409))
- POST/api/v1/ext/split-receiving-agreements(Response (422))
- POST/api/v1/ext/split-receiving-agreements(Response (500))
originalOrderId
stringIdentificador de la orden original en caso de cancelación.
outboundCredit_amountCommission
numberMonto de la comisión verificada en la consulta bancaria; null si no se encontró.
outboundCredit_amountCredit
numberMonto del crédito verificado en la consulta bancaria; null si no se encontró.
outboundCredit_amountReversal
numberMonto del reverso verificado en la consulta bancaria (contiene únicamente el monto principal del crédito devuelto; la comisión cobrada no se reversa); null si no se encontró.
outboundCredit_commissionFound
booleanIndica si se encontró el cobro de comisión en los movimientos bancarios.
outboundCredit_creditFound
booleanIndica si se encontró la transacción de crédito emitida en los movimientos bancarios.
outboundCredit_executionDate
Sin descripción disponible.
outboundCredit_id
integerIdentificador interno de la operación de crédito.
outboundCredit_lastCheckedAt
Sin descripción disponible.
outboundCredit_referenceBank
Sin descripción disponible.
outboundCredit_reversalFound
booleanIndica si se encontró la devolución o reverso en los movimientos bancarios.
outboundCredit_status
stringEstado consolidado de la liquidación de crédito (PENDING, PAID, REVERSED, ERROR).
owner
objectDatos del crédito recibido por el owner.
page
integerNúmero de página solicitada (Request) o número de página devuelta.
page_size
integerCantidad de elementos por página solicitada (Request) o cantidad de elementos devueltos (Response). Eco del request: no.
pageBasedPaginationRequest
objectParámetros de paginación Page-Based (Velocidad 1).
- page:integerNúmero de la página de resultados a retornar.
- size:integerCantidad máxima de elementos a incluir en la página (límite operacional: 100).
- sort:stringCriterio de ordenamiento. Prefijo '-' para orden descendente. Campos múltiples separados por comas.
paid_at
string (date-time)Fecha y hora del pago en formato ISO 8601. Eco del request: no.
paid_origin
objectOrigen del pago cuando proviene de container. Incluye container_session_id.
paid_via
stringIndica el tipo de flujo de pago utilizado. Eco del request: no.
partner_email
string (email)Correo electrónico del partner.
partner_id
string (uuid)Identificador único del partner.
partner_name
stringNombre o razón social del partner
partner_observations
stringMensaje libre para el partner (máx. 500 caracteres). (Requerido en distribution, Eco del request: sí)
partner_phone
stringTeléfono del partner.
partner_phoneOrAccountForPayment
stringTeléfono o número de cuenta para el pago.
partner_rifNumber
stringRIF del partner
partner_shortName
stringNombre corto del partner. Se genera automáticamente a partir del owner que lo crea seguido de p1 p2 p3 etc
partner_type
stringTipo de usuario.
partners
arrayListado de créditos extra asociados a partners. (Nota: Posiblemente obsoleto). Eco del request: no.
password
stringContraseña de acceso del usuario.
- POST/api/v1/merchants(Request)
- POST/api/v1/merchants/auth/login(Request)
- POST/api/spidipagos/login(Request)
- POST/api/spidipagos/login(Response (400))
- POST/api/spidipagos/login(Response (401))
- POST/api/spidipagos/login(Response (422))
- POST/api/spidipagos/login(Response (429))
- POST/api/spidipagos/login(Response (500))
path
stringRuta de la petición que originó el error.
payer_identification
stringIdentificación de la persona que va a pagar. Campo **opcional**: si no se envía, todo funciona igual que antes. Se envía como un único valor que une la letra del tipo y el número, sin espacios ni guiones (ej. `V30523769`). **Reglas según la letra:** - `V` o `E`: entre 7 y 9 dígitos (solo números). - `P` (pasaporte): entre 6 y 15 caracteres alfanuméricos (letras y números). Solo se aceptan las letras `V`, `E` y `P`. El tipo `J` no aplica porque con ese tipo de identificación no se pueden realizar pagos. El valor se guarda en mayúsculas aunque se envíe en minúsculas. **Efecto al enviarlo:** cuando el pagador abre el enlace, la identificación aparece precargada (separada en tipo y número) y el sistema busca únicamente el teléfono y el banco asociados a esa persona. Si la persona ya existe, esos datos también se precargan; si no existe, no se produce error y el pagador completa el resto. En la consulta de estado de la sesión, si la sesión se creó sin este campo, se devuelve `null`. Eco del request: sí.
- POST/api/v1/ext/payment-sessions/buttons(Request)
- POST/api/v1/ext/payment-sessions/buttons(Response (200))
- POST/api/v1/ext/payment-sessions/buttons(Response (400))
- POST/api/v1/ext/payment-sessions/buttons(Response (401))
- POST/api/v1/ext/payment-sessions/buttons(Response (422))
- POST/api/v1/ext/payment-sessions/buttons(Response (500))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (200))
- POST/api/v1/ext/payment-sessions/request/batch(Request)
- POST/api/v1/ext/payment-sessions/request/batch(Response (200))
payer_identification--validationError
stringError relacionado con el campo payer_identification. Mensajes posibles: `Allowed identification types are: V, E, P`, `Identification number must have between 7 and 9 digits`, `Passport must have between 6 and 15 alphanumeric characters`.
payer_identifier
stringIdentificador del pagador.
payer_name
stringNombre del pagador.
payment_details
objectDetalles del pago bancario. Es 'null' si no aplica. (Nota: Revisar si es objeto vacío o null). Eco del request: no.
- action_date:
- bank_name:
- bank_reference_id:
- amount_ves:
- bcv_rate_usd_ves:
- bcv_rate_eur_ves:
- rate_usdt_ves:
- rate_col_ves:
payment_method
stringMétodo de pago utilizado. Eco del request: no.
payment_methods
arrayMétodos de pago permitidos solicitados (Request) o devueltos (Response). Eco del request: no.
payment_url
stringURL de la página segura SPIDI donde quien paga realiza el pago.
- POST/api/v1/ext/payment-sessions/buttons(Response (200))
- POST/api/v1/ext/payment-sessions/request/batch(Response (200))
- GET/api/v1/ext/payment-stops/{stop_id}(Response (200))
- GET/api/v1/ext/payment-stops/{stop_id}/payment-sessions(Response (200))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (200))
paymentDate
Fecha en que se realizo el pago
paymentFailure
objectDetalle del intento de pago fallido. Cada intento fallido genera un webhook distinto con su propio bloque `failure`.
- id:
- attempt_number:
- message:
- bank_name:
- failed_at:
paymentFailure_attemptNumber
integerNúmero del intento fallido dentro de la sesión de pago. Es el campo que distingue un aviso de otro: si el pagador falla tres veces, llegan tres webhooks idénticos salvo por `attempt_number`, `id` y `failed_at`.
paymentFailure_failedAt
string (date-time)Fecha y hora del intento fallido, en formato ISO 8601 con desfase horario.
paymentFailure_id
string (uuid)Identificador único del intento fallido. Útil para rastrear el caso con soporte de SPIDI.
paymentFailure_message
stringMotivo del fallo del intento de pago.
paymentMerchant_status
stringIndica el status del pago. ```PENDING```: la orden fue creada y el POS aún no ha confirmado el pago. ```DISCARDED```: el sistema merchant descartó la orden antes de la confirmación del POS (si el POS confirma el pago después, este estado es sobrescrito a PAID). ```PAID```: el POS confirmó exitosamente el pago. ```VOID_PENDING```: se solicitó la anulación de un pago ya confirmado y se espera la confirmación del POS. ```VOIDED```: el POS confirmó la anulación del pago.
per_stop
objectConfiguración de filtros y paginación por parada. Eco del request: no.
phone
stringNúmero de teléfono.
phoneNumber
stringNúmero de teléfono.
phoneNumberLocal
stringNúmero de teléfono local.
pointer
stringPuntero JSON (RFC 6901) al campo con falla.
- POST/api/v1/merchants(Response (400))
- POST/api/v1/merchants/auth/login(Response (401))
- POST/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/pairing(Response (400))
- POST/api/v1/pos-terminals/{serialNumber}/pairing/activate(Response (400))
- POST/api/v1/merchants/{merchantId}/transactions(Response (400))
- GET/api/v1/merchants/{merchantId}/transactions/{orderId}(Response (404))
- POST/api/v1/merchants/{merchantId}/transactions/{orderId}/invalidation(Response (409))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (400))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (401))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (403))
- GET/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}(Response (404))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/commit(Response (409))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/invalidation/commit(Response (409))
- GET/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/settlements(Response (400))
- POST/api/v1/pos-terminals/{serialNumber}/settlements(Response (400))
- GET/api/v1/pos-terminals/{serialNumber}/settlements/{batchNumber}(Response (404))
posBatchId
integerEste campo será un número autoincremental gestionado directamente desde el POS. El POS debe enviarlo para identificar correctamente el número de lote de las operaciones.
previous_status
stringEstado anterior de la sesión antes de expirar o fallar. Eco del request: no.
problemDetails
objectDetalles del problema. Implementación del estándar RFC 7807 / RFC 9457 para respuestas de error.
- title:stringUn resumen breve y legible por humanos sobre el tipo de problema.Ejemplo: "Bad Request"
- status:integerEl código de estado HTTP generado por el servidor de origen.Ejemplo: 400
- type:string (uri-reference)Una referencia URI que identifica el tipo de problema.Ejemplo: "about:blank"
- detail:stringUna explicación legible por humanos específica para esta ocurrencia del problema.Ejemplo: "Validation failed for request parameters"
- instance:string (uri-reference)Una referencia URI que identifica la ocurrencia específica del problema.Ejemplo: null
- errors:arrayLista de errores específicos de validación con punteros JSON (RFC 6901). Si no existen errores de validación, se retorna un arreglo vacío [].
problemDetailsJose
objectDetalles del problema. Implementación del estándar RFC 9457 extendido para incluir lista de errores detallados y soporte de retrocompatibilidad multiformato.
- status:integerEl código de estado HTTP generado por el servidor de origen.
- title:stringUn resumen breve y legible por humanos sobre el tipo de problema.
- type:string (uri-reference)Una referencia URI que identifica el tipo de problema.
- detail:stringUna explicación legible por humanos específica para esta ocurrencia del problema.
- message:Este campo se incluyo para que jose puediera crear el endpoint de forma mas sencilla sin embargo se debe priorizar el uso de 'detail' y 'errors' solo se mantendra hasta que jose pueda hacer la migracion.
- instance:string (uri-reference)Una referencia URI que identifica la ocurrencia específica del problema.
- errors:arrayLista de errores específicos de validación con punteros JSON (RFC 6901).
processed_count
integerConteo de ítems procesados. Eco del request: no.
- POST/api/v1/ext/payment-sessions/request/batch(Response (200))
- POST/api/v1/ext/payment-sessions/request/batch(Response (400))
- POST/api/v1/ext/payment-sessions/request/batch(Response (401))
- POST/api/v1/ext/payment-sessions/request/batch(Response (403))
- POST/api/v1/ext/payment-sessions/request/batch(Response (409))
- POST/api/v1/ext/payment-sessions/request/batch(Response (422))
- POST/api/v1/ext/payment-sessions/request/batch(Response (500))
processedAt
string (date-time)Fecha y hora de procesamiento en formato ISO 8601.
processedAtNoUtc
string (date-time)Fecha y hora de procesamiento en formato local no utc.
provider
stringSin descripción disponible.
q
stringBúsqueda por texto en stop_title y/o internal_reference (contiene).
qr_payment_url
stringCadena en base64 que representa la imagen de un QR que apunta al payment_url.
qrImgBase64
stringImagen del código QR en formato Base64.
rate_col_ves
number (decimal(10,4))Tasa de cambio COP a VES.
rate_usdt_ves
number (decimal(10,4))Tasa de cambio USDT a VES.
reason
stringRazón de expiración o fallo.
receipt_url
string (uri)URL del comprobante de pago SPIDI.
receiptMethodCrixto
stringDefine el método de recepción de los fondos: * `movil-pay`: Se recibe el dinero en la cuenta recaudadora usando pago móvil. * `transfer`: Se recibe el dinero en la cuenta recaudadora usando tranferencia inmediata. * `wallet`: Se recibe el dinero en la wallet de Spidi.
receive_date
string (date-time)Fecha y hora en que se acreditó el pago (ISO 8601).
receiver_credit.created
string (date-time)Fecha asociada a la liquidación del receptor del pago.
receiverCredits
objectDetalles de la liquidación de créditos (Owner y Partners).
- owner:objectCrédito asignado al dueño de la cuenta principal.
- receiver_id:
- memo:
- spidi_credit_id:
- amount_ves_credited:
- bank_commissions_ves:
- receive_date:
- bank_name:
- bank_reference_id:
- partners:arrayLista de créditos asignados a partners (split).
receiverCreditsSummary
objectResumen agregado de liquidaciones al o los receptores.
- total_credits:
- total_amount_ves_credited:
- total_bank_commissions_ves:
recipient
objectSin descripción disponible.
- id:
- type:
- split_recipient_agreement_id:
- partner:object
- observations:
- name:
- rif_number:
recipientId
stringIdentificador del receptor del crédito.
recipientType
stringTipo del receptor del crédito.
redis_healthy
booleanIndica si Redis (almacén distribuido de la blacklist) responde correctamente.
referenceBank
stringReferencia bancaria usada para correlacionar movimientos.
referenceByUser
stringReferencia proporcionada por el usuario para identificar el pago o transacción.
referencePayment
stringReferencia para identificar el pago o transacción.
refreshToken
stringRefresh token JWT. Permite obtener un nuevo par de tokens sin reenviar credenciales. Vive 7 días por defecto y es de **un solo uso**: cada renovación emite uno nuevo e invalida el anterior.
refreshTokenExpiry
integer (int64)Fecha de expiración del refresh token en **milisegundos epoch** (UTC).
removed
arraySesiones desasociadas de activos en Parada (op=remove).
reorder_session_ids
arrayNuevo orden deseado. Deben ser `session_id` **activos** en esa Parada (ver `mode`)
replaced_previous
arraySesiones que dejaron de estar activas en Parada (op=replace).
requested
objectEco de parámetros aplicados en la consulta.
requiredRoles
arrayRoles exigidos por la regla que coincidió.
results
arrayResultados por stop_id en operaciones batch o consultas múltiples.
- POST/api/v1/ext/payment-stops(Response (200))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (201))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (207))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (200))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (207))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (200))
rif
stringSin descripción disponible.
role
stringNombre del rol consultado.
roles
arrayNombres de los roles asignados (sin el prefijo `ROLE_`).
route
stringRuta concreta a verificar (sin query string).
routePath
stringRuta concreta a verificar para el usuario autenticado.
routePattern
stringPatrón de ruta estilo Ant (`*` un segmento, `**` varios segmentos). Debe comenzar con `/`.
search
stringTexto para buscar por referencias internas u otros campos indexados.
serial
stringNúmero de serie del dispositivo (terminal). El servidor deriva de él, vía AES, el username y la password de la cuenta, con las mismas claves que usa el firmware para autenticarse.
- POST/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/pairing(Request)
- GET/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/settlements(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/settlements(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/settlements(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/settlements/{batchNumber}(Response (200))
serialPos
stringSerial del POS
serialSettlement
stringSerial del terminal que debe ejecutar el cierre.
session_durationMinutes
integerDuración en minutos de la sesión.
session_id
stringIdentificador único de la sesión de pago, accedible a través del payment_url.
- POST/api/v1/ext/payment-sessions/buttons(Response (200))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (200))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (400))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (401))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (403))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (404))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (422))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (500))
- POST/api/v1/ext/payment-sessions/request/batch(Response (200))
- POST/api/v1/payment-session/{session_id}/expiration(Response (200))
- GET/api/v1/ext/payment-stops/{stop_id}(Response (200))
- GET/api/v1/ext/payment-stops/{stop_id}/payment-sessions(Response (200))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (200))
session_ids
arrayIDs de sesiones involucradas.
session_internal_reference
stringReferencia interna del comercio asociada a la sesión de pago (propósito estrictamente técnico, no visible al pagador). Sirve para conciliar y auditar operaciones entre tu sistema y SPIDI; puede vincularse a una factura, una orden o un cliente de tu plataforma. Texto de máximo 255 caracteres. - **Solicitud de pago:** es obligatoria al crearla. - **Botón de pago:** es opcional. Si no se envía, o se envía vacío, la sesión queda con `null`. Es el único caso en que el campo puede ser `null`. Se devuelve en la respuesta de creación del botón y en la consulta de estado de la sesión (botón o solicitud). **No se incluye en los webhooks.**
session_origin
stringOrigen de la sesión: 'button' (Botón de pago) o 'request' (Solicitud SPIDI).
sessionPayment
objectDetalles del pago y estado de la sesión.
- payment_method:stringMétodo de pago: "crypto", "immediate_debit" o "mobile_payment".
- spidi_transaction_id:integerID de la transacción en Spidi (null si no se ha completado).
- spidi_transaction_url:stringURL del comprobante de pago (null si no se ha completado).
- due_date_session:stringFecha límite para completar el pago (ISO 8601).
- due_date_reached_behavior:stringComportamiento al expirar: "keep_active" o "expire".
- late_notice_message:stringMensaje para mostrar cuando el pago está atrasado.
- expired_at:stringFecha hora ISO 8601 de la expiración más reciente.
- last_expired_by:
- reason:
- user_message:stringÚltimo Mensaje para el usuario.
- crypto_details:
- payment_details:objectDetalles del pago bancario (null si no aplica).
- receiver_credits:
- receiver_credits_summary:
sessionPaymentWebhook
objectSin descripción disponible.
- id:
- origin:
- agreement_id:
- currency_reference:
- amount_reference:
- identifier_label:
- identifier:
- description:
- payment_method:
sessionSpidi_id
stringID de la sesión original en SPIDI.
settlementSummary
objectSin descripción disponible.
- batchNumber:
- transactionCount:integerEjemplo: 12
- closedAt:string (date-time)Ejemplo: "2023-04-04T15:26:51.187Z"
- currencyReference:
- terminal:
- debitBatch:stringFalta ser definido por Carlos Cardenas
signature
stringFirma opcional del payload.
sort
stringCampo de ordenación.
SPIDI-Signature
stringFirma HMAC-SHA256 del cuerpo. (Header HTTP 'SPIDI-Signature').
SPIDI-Timestamp
string (date-time)Timestamp del evento. (Header HTTP 'SPIDI-Timestamp').
split
objectConfiguración de división de pagos (Request) / Eco del request del split (Response).
- document:
- distribution:
- POST/api/v1/ext/agreements(Request)
- POST/api/v1/ext/agreements(Response (200))
- POST/api/v1/ext/agreements(Response (400))
- POST/api/v1/ext/agreements(Response (401))
- POST/api/v1/ext/agreements(Response (403))
- POST/api/v1/ext/agreements(Response (409))
- POST/api/v1/ext/agreements(Response (422))
- POST/api/v1/ext/agreements(Response (429))
- POST/api/v1/ext/agreements(Response (500))
- POST/api/v1/ext/payment-sessions/buttons(Request)
- POST/api/v1/ext/payment-sessions/buttons(Response (200))
- POST/api/v1/ext/payment-sessions/request/batch(Request)
- POST/api/v1/ext/payment-sessions/request/batch(Response (200))
split_general_info
objectInformación general del documento asociado al split.
splitDocument
objectInformación del documento proporcionado por el owner a los partners para dejar evidencia del split. **Notas importantes:** - Esta información **no implica cálculo fiscal** por parte de SPIDI; es solo comunicación entre owner y partners. - `splitDocument_url` puede ser público con hash o una URL autenticada. - SPIDI **no interpreta ni calcula IVA** a partir de esta información; solo lo transporta.
- name:
- type:
- date:
- url:
- observations:
splitDocument_date
string (date)Fecha de emisión del documento en formato ISO 8601 (YYYY-MM-DD).
splitDocument_name
stringNombre del documento asociado a la transacción split (por ejemplo: factura/recibo/contrato D001-00045678).
splitDocument_observations
stringObservaciones libres del owner (máx. 500 caracteres).
splitDocument_type
stringFormato libre del owner donde especifica el tipo de documento.
splitDocument_url
string (uri)Enlace para visualizar/descargar el documento del split. Puede ser público con hash o una URL autenticada.
splitPartners
arrayOpcional. Reparto del ingreso entre partners: un elemento por partner, con su monto bruto. Cada parte pasa por el algoritmo de comisiones como si fuera un ingreso propio y genera su propio crédito; el owner (receptor final) se queda con el resto (`amountPaid − Σ brutos`). Los partners se identifican por su posición, contando desde 1 (`PARTNER-1`, `PARTNER-2`, ...): no se manda identificador. Sin este campo hay un solo crédito, el del owner. Reglas (`400` si no se cumplen): cada bruto mayor que cero; la suma de los brutos menor que el monto pagado; y cada parte tiene que alcanzar para emitir un crédito mayor que cero.
stats
objectEstadísticas de la blacklist en Redis (p. ej. `active_blacklisted_tokens`). Si Redis falla contiene una clave `error`.
status
stringEstado actual de la sesión. El valor failed solo se aplica para sesiones creadas con botón de pago.
- POST/api/v1/merchants(Response (201))
- POST/api/v1/merchants(Response (400))
- POST/api/v1/merchants/auth/login(Response (200))
- POST/api/v1/merchants/auth/login(Response (401))
- POST/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/pairing(Response (200))
- POST/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/pairing(Response (400))
- POST/api/v1/pos-terminals/{serialNumber}/pairing/activate(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/pairing/activate(Response (400))
- POST/api/v1/merchants/{merchantId}/transactions(Response (201))
- POST/api/v1/merchants/{merchantId}/transactions(Response (400))
- GET/api/v1/merchants/{merchantId}/transactions/{orderId}(Response (200))
- GET/api/v1/merchants/{merchantId}/transactions/{orderId}(Response (404))
- POST/api/v1/merchants/{merchantId}/transactions/{orderId}/invalidation(Response (200))
- POST/api/v1/merchants/{merchantId}/transactions/{orderId}/invalidation(Response (409))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (400))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (401))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (403))
- GET/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}(Response (404))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/commit(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/commit(Response (409))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/invalidation/commit(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/invalidation/commit(Response (409))
- GET/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/settlements(Response (200))
- GET/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/settlements(Response (400))
- GET/api/v1/pos-terminals/{serialNumber}/settlements(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/settlements(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/settlements(Response (400))
- GET/api/v1/pos-terminals/{serialNumber}/settlements/{batchNumber}(Response (404))
- POST/api/v1/ext/agreements(Response (200))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (200))
- POST/api/v1/payment-session/{session_id}/expiration(Response (200))
- GET/api/v1/ext/payment-stops(Response (200))
- POST/api/v1/ext/payment-stops(Request)
- POST/api/v1/ext/payment-stops(Response (200))
- GET/api/v1/ext/payment-stops/{stop_id}(Response (200))
- PATCH/api/v1/ext/payment-stops/{stop_id}(Request)
- PATCH/api/v1/ext/payment-stops/{stop_id}(Response (200))
- GET/api/v1/ext/payment-stops/{stop_id}/payment-sessions(Response (200))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Request)
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (200))
statusHttp_code
integerCódigo de estado HTTP interno de la transacción.
statusHttp_shortDescription
stringEstado textual de la operación.
statusInboundCrixtoOrder
stringEstado del pago de crixto
stop
objectSin descripción disponible.
- stop_id:
- stop_url:
- stop_title:
- internal_reference:
- empty_state_message:
- status:
- created_at:
stop_emptyStateMessage
stringMensaje personalizado mostrado al cliente cuando la Parada no tiene solicitudes de pago activas (estado Empty). Ejemplo: 'No tienes pagos pendientes' o 'Actualmente no hay deudas asociadas'.
stop_id
string (uuid)Identificador único de la Parada SPIDI en formato UUID. Este ID identifica de forma permanente el espacio donde el cliente puede consultar y gestionar todas sus solicitudes de pago.
- GET/api/v1/ext/payment-stops(Response (200))
- POST/api/v1/ext/payment-stops(Response (200))
- GET/api/v1/ext/payment-stops/{stop_id}(Response (200))
- PATCH/api/v1/ext/payment-stops/{stop_id}(Response (200))
- DELETE/api/v1/ext/payment-stops/{stop_id}(Response (200))
- GET/api/v1/ext/payment-stops/{stop_id}/payment-sessions(Response (200))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Request)
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (201))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (207))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Request)
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (200))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (207))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (200))
stop_ids
arrayLista de IDs de Paradas a consultar.
stop_status
stringEstado de la Parada SPIDI. **Estados disponibles:** - **active**: La parada está activa. Si tiene al menos un enlace de pago activo, se muestran los pagos disponibles en una lista con su identificador, monto y estado. Si no tiene solicitudes de pago activas (estado Empty), muestra el mensaje configurado en `empty_state_message`. - **disabled**: La parada está deshabilitada temporalmente. Los clientes no pueden acceder a ella, pero puede reactivarse cambiando el estado a `active`. **Nota:** Aunque no aparece en el enum, existe un estado **deleted** que indica que la parada fue eliminada definitivamente y no puede recuperarse.
stop_statusInitial
stringEstado inicial de la parada
stop_title
stringTítulo visible de la Parada SPIDI mostrado al cliente. Generalmente se usa el nombre del cliente, contrato o servicio asociado.
stop_url
string (uri)URL permanente y única de la Parada SPIDI. El cliente puede visitar esta URL en cualquier momento para consultar y pagar todas sus solicitudes de pago activas o históricas, sin necesidad de recibir nuevos enlaces cada vez.
success
booleanIndica si la operación fue exitosa. True si el endpoint se procesó de forma exitosa. False de lo contrario
- POST/api/spidipagos/login(Response (400))
- POST/api/spidipagos/login(Response (401))
- POST/api/spidipagos/login(Response (422))
- POST/api/spidipagos/login(Response (429))
- POST/api/spidipagos/login(Response (500))
- POST/api/v1/ext/agreements(Response (200))
- POST/api/v1/ext/agreements(Response (400))
- POST/api/v1/ext/agreements(Response (401))
- POST/api/v1/ext/agreements(Response (403))
- POST/api/v1/ext/agreements(Response (409))
- POST/api/v1/ext/agreements(Response (422))
- POST/api/v1/ext/agreements(Response (429))
- POST/api/v1/ext/agreements(Response (500))
- POST/api/v1/ext/partner(Response (201))
- POST/api/v1/ext/payment-sessions/buttons(Response (200))
- POST/api/v1/ext/payment-sessions/buttons(Response (400))
- POST/api/v1/ext/payment-sessions/buttons(Response (401))
- POST/api/v1/ext/payment-sessions/buttons(Response (422))
- POST/api/v1/ext/payment-sessions/buttons(Response (500))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (200))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (400))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (401))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (403))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (404))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (422))
- GET/api/v1/ext/payment-sessions/status/{session_id}(Response (500))
- POST/api/v1/ext/payment-sessions/request/batch(Response (200))
- POST/api/v1/ext/payment-sessions/request/batch(Response (400))
- POST/api/v1/ext/payment-sessions/request/batch(Response (401))
- POST/api/v1/ext/payment-sessions/request/batch(Response (403))
- POST/api/v1/ext/payment-sessions/request/batch(Response (409))
- POST/api/v1/ext/payment-sessions/request/batch(Response (422))
- POST/api/v1/ext/payment-sessions/request/batch(Response (500))
- POST/api/v1/payment-session/{session_id}/expiration(Response (200))
- POST/api/v1/payment-session/{session_id}/expiration(Response (422))
- POST/api/v1/ext/split-receiving-agreements(Response (200))
- POST/api/v1/ext/split-receiving-agreements(Response (400))
- POST/api/v1/ext/split-receiving-agreements(Response (401))
- POST/api/v1/ext/split-receiving-agreements(Response (409))
- POST/api/v1/ext/split-receiving-agreements(Response (422))
- POST/api/v1/ext/split-receiving-agreements(Response (500))
- GET/api/v1/ext/payment-stops(Response (200))
- GET/api/v1/ext/payment-stops(Response (400))
- POST/api/v1/ext/payment-stops(Response (200))
- POST/api/v1/ext/payment-stops(Response (400))
- POST/api/v1/ext/payment-stops(Response (401))
- POST/api/v1/ext/payment-stops(Response (422))
- POST/api/v1/ext/payment-stops(Response (500))
- GET/api/v1/ext/payment-stops/{stop_id}(Response (200))
- GET/api/v1/ext/payment-stops/{stop_id}(Response (404))
- PATCH/api/v1/ext/payment-stops/{stop_id}(Response (200))
- PATCH/api/v1/ext/payment-stops/{stop_id}(Response (400))
- PATCH/api/v1/ext/payment-stops/{stop_id}(Response (401))
- PATCH/api/v1/ext/payment-stops/{stop_id}(Response (422))
- PATCH/api/v1/ext/payment-stops/{stop_id}(Response (500))
- DELETE/api/v1/ext/payment-stops/{stop_id}(Response (200))
- DELETE/api/v1/ext/payment-stops/{stop_id}(Response (400))
- DELETE/api/v1/ext/payment-stops/{stop_id}(Response (403))
- DELETE/api/v1/ext/payment-stops/{stop_id}(Response (404))
- DELETE/api/v1/ext/payment-stops/{stop_id}(Response (500))
- GET/api/v1/ext/payment-stops/{stop_id}/payment-sessions(Response (200))
- GET/api/v1/ext/payment-stops/{stop_id}/payment-sessions(Response (400))
- GET/api/v1/ext/payment-stops/{stop_id}/payment-sessions(Response (404))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (201))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (207))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (400))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (401))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (409))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (422))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (429))
- POST/api/v1/ext/payment-stops/payment-sessions/batch(Response (500))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (200))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (207))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (400))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (401))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (409))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (422))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (429))
- PATCH/api/v1/ext/payment-stops/payment-sessions/reorder(Response (500))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (200))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (400))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (401))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (403))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (422))
- POST/api/v1/ext/payment-stops/payment-sessions/query(Response (500))
success_url
string (uri)URL de redirección que se utiliza cuando un intento de pago es exitoso.
successDetails
objectDetalles del éxito unificado. Estándar donde el campo 'data' es siempre un arreglo (array), garantizando que las respuestas exitosas (2xx) retornen [], [obj] o [obj1, obj2].
- status:integerEl código de estado HTTP generado por el servidor de origen (ej. 200, 201).
- title:stringUn resumen breve y legible por humanos sobre el tipo de éxito.
- detail:stringUna explicación legible por humanos específica para esta ocurrencia del éxito.
- data:arrayContenedor de datos de negocio. Siempre es una lista/arreglo: [] si no retorna entidades o no aplica, [obj] si es una entidad única, o [obj1, obj2] si son múltiples entidades.
successDetailsArray
objectVariante de SuccessDetails donde 'data' es estrictamente un arreglo de objetos.
- status:integer
- title:string
- detail:string
- data:arrayRepresenta una colección de entidades de negocio.
successDetailsArrayOld
objectVariante heredada de SuccessDetails donde 'data' es estrictamente un arreglo de objetos.
- status:integer
- title:string
- detail:string
- data:arrayRepresenta una colección de entidades de negocio.
successDetailsObject
objectVariante de SuccessDetails donde 'data' es estrictamente un objeto único.
- status:integer
- title:string
- detail:string
- data:objectRepresenta una entidad única de negocio.
successDetailsObjectOld
objectVariante heredada de SuccessDetails donde 'data' es estrictamente un objeto único.
- status:integer
- title:string
- detail:string
- data:objectRepresenta una entidad única de negocio.
successDetailsOld
objectVariante heredada de SuccessDetails. Estándar basado en la estructura de 'Problem Details' (RFC 9457).
- status:integerEl código de estado HTTP generado por el servidor de origen (ej. 200, 201).
- title:stringUn resumen breve y legible por humanos sobre el tipo de éxito.
- detail:stringUna explicación legible por humanos específica para esta ocurrencia del éxito.
- data:Contenedor de información que puede almacenar un objeto único o una lista de objetos.
successDetailsSimple
objectDetalles del éxito sin datos adicionales (solo título y detalle).
- status:integerEl código de estado HTTP generado por el servidor de origen (ej. 200, 201).
- title:stringUn resumen breve y legible por humanos sobre el tipo de éxito.
- detail:stringUna explicación legible por humanos específica para esta ocurrencia del éxito.
successDetailsSimpleOld
objectVariante heredada de SuccessDetails sin datos adicionales (solo título y detalle).
- status:integerEl código de estado HTTP generado por el servidor de origen (ej. 200, 201).
- title:stringUn resumen breve y legible por humanos sobre el tipo de éxito.
- detail:stringUna explicación legible por humanos específica para esta ocurrencia del éxito.
successful_count
integerNúmero de sesiones creadas exitosamente.
- POST/api/v1/ext/payment-sessions/request/batch(Response (200))
- POST/api/v1/ext/payment-sessions/request/batch(Response (400))
- POST/api/v1/ext/payment-sessions/request/batch(Response (401))
- POST/api/v1/ext/payment-sessions/request/batch(Response (403))
- POST/api/v1/ext/payment-sessions/request/batch(Response (409))
- POST/api/v1/ext/payment-sessions/request/batch(Response (422))
- POST/api/v1/ext/payment-sessions/request/batch(Response (500))
taxId
stringRIF o identificación fiscal del comercio.
terminal
objectSin descripción disponible.
- id:stringEjemplo: "TMS ID"
- affiliateCode:stringEjemplo: "0010800050"
- number:
- serial:
- bankId:stringEjemplo: "3"
- bankCode:
- GET/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/settlements(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/settlements(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/settlements(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/settlements/{batchNumber}(Response (200))
terminal_id
string (uuid)Id único del terminal en formato UUID.
terminal_number
stringNumero de terminal.
terminal_serial
stringSerial del terminal físico.
terminal_status
stringSin descripción disponible.
timestamp
string (date-time)Fecha y hora del evento (ISO 8601).
title
stringTítulo visible.
- POST/api/v1/merchants(Response (201))
- POST/api/v1/merchants(Response (400))
- POST/api/v1/merchants/auth/login(Response (200))
- POST/api/v1/merchants/auth/login(Response (401))
- POST/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/pairing(Response (200))
- POST/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/pairing(Response (400))
- POST/api/v1/pos-terminals/{serialNumber}/pairing/activate(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/pairing/activate(Response (400))
- POST/api/v1/merchants/{merchantId}/transactions(Response (201))
- POST/api/v1/merchants/{merchantId}/transactions(Response (400))
- GET/api/v1/merchants/{merchantId}/transactions/{orderId}(Response (200))
- GET/api/v1/merchants/{merchantId}/transactions/{orderId}(Response (404))
- POST/api/v1/merchants/{merchantId}/transactions/{orderId}/invalidation(Response (200))
- POST/api/v1/merchants/{merchantId}/transactions/{orderId}/invalidation(Response (409))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (400))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (401))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (403))
- GET/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}(Response (200))
- GET/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}(Response (404))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/commit(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/commit(Response (409))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/invalidation/commit(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/invalidation/commit(Response (409))
- GET/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/settlements(Response (200))
- GET/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/settlements(Response (400))
- GET/api/v1/pos-terminals/{serialNumber}/settlements(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/settlements(Response (200))
- POST/api/v1/pos-terminals/{serialNumber}/settlements(Response (400))
- GET/api/v1/pos-terminals/{serialNumber}/settlements/{batchNumber}(Response (404))
- POST/api/v1/ext/agreements(Request)
- POST/api/v1/ext/agreements(Response (200))
- POST/api/v1/ext/payment-sessions/request/batch(Request)
- POST/api/v1/ext/split-receiving-agreements(Request)
- POST/api/v1/ext/split-receiving-agreements(Response (200))
- POST/api/v1/ext/split-receiving-agreements(Response (400))
- POST/api/v1/ext/split-receiving-agreements(Response (401))
- POST/api/v1/ext/split-receiving-agreements(Response (409))
- POST/api/v1/ext/split-receiving-agreements(Response (422))
- POST/api/v1/ext/split-receiving-agreements(Response (500))
to_date
string (date-time)Fecha/hora máxima (inclusive) para filtrar. Formato ISO 8601 UTC.
token
stringToken de autorización **JWT** para autenticar requests posteriores. * El token es un **JWT (JSON Web Token)** codificado en Base64. * Debe incluirse en el header `Authorization: Bearer {token}` de requests posteriores. * Tiene un tiempo de expiración definido por seguridad. * Contiene información del usuario autenticado y permisos.
tokenId
stringIdentificador único del token (claim `jti`).
tokenType
stringTipo de token de autenticación.
tokenValid
booleanIndica si el token es válido: firma correcta, no expirado y no revocado.
total
integerTotal de elementos que cumplen los filtros.
total_amount_ves_credited
number (double)Monto total acreditado en VES.
total_bank_commissions_ves
number (double)Total de comisiones bancarias en VES.
total_credits
integerNúmero total de créditos/liquidaciones realizados.
total_estimate
integerEstimación rápida del total.
transactionSpidi_id
numberID de la transacción en SPIDI.
transactionSpidi_url
string (uri)URL del comprobante de pago en SPIDI (Comparar con 'receipt_url').
type
stringError relacionado con el campo type.
- POST/api/v1/merchants(Response (400))
- POST/api/v1/merchants/auth/login(Response (401))
- POST/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/pairing(Response (400))
- POST/api/v1/pos-terminals/{serialNumber}/pairing/activate(Response (400))
- POST/api/v1/merchants/{merchantId}/transactions(Response (400))
- GET/api/v1/merchants/{merchantId}/transactions/{orderId}(Response (404))
- POST/api/v1/merchants/{merchantId}/transactions/{orderId}/invalidation(Response (409))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (400))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (401))
- GET/api/v1/pos-terminals/{serialNumber}/transactions(Response (403))
- GET/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}(Response (404))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/commit(Response (409))
- POST/api/v1/pos-terminals/{serialNumber}/transactions/{orderId}/invalidation/commit(Response (409))
- GET/api/v1/merchants/{merchantId}/pos-terminals/{serialNumber}/settlements(Response (400))
- POST/api/v1/pos-terminals/{serialNumber}/settlements(Response (400))
- GET/api/v1/pos-terminals/{serialNumber}/settlements/{batchNumber}(Response (404))
- POST/api/v1/ext/agreements(Response (400))
- POST/api/v1/ext/agreements(Response (401))
- POST/api/v1/ext/agreements(Response (403))
- POST/api/v1/ext/agreements(Response (409))
- POST/api/v1/ext/agreements(Response (422))
- POST/api/v1/ext/agreements(Response (429))
- POST/api/v1/ext/agreements(Response (500))
- POST/api/v1/ext/payment-sessions/buttons(Request)
- POST/api/v1/ext/payment-sessions/buttons(Response (200))
- POST/api/v1/ext/payment-sessions/request/batch(Request)
- POST/api/v1/ext/payment-sessions/request/batch(Response (200))
updated_after
string (date-time)Retorna elementos con updated_at posterior a esta fecha. Formato ISO 8601.
updated_at
string (date-time)Fecha y hora de última actualización (ISO 8601).
updatedAt
string (date-time)Fecha y hora ISO-8601 de la última actualización.
updatedDate
string (date-time)Fecha y hora ISO-8601 de la última actualización.
urlRedirection
string (uri)URL de redireción en caso de que se tenga exito o falle
urlWebhookPayStatusChange
string (uri)URL para recibir notificaciones del cambio en el status del pago
user_message
stringMensaje para mostrar al usuario según estado.
username
stringSin descripción disponible.
userRoles
arrayRoles del usuario autenticado.
userSpidi_crixtoConfig
objectConfiguración para crixto del usuario SPIDI
- userSpidiId:
- isActive:booleanIndica si la configuracion de crixto del usuario SPIDI esta activaEjemplo: true
userSpidi_id
stringIdentificador único de tipo UUID para el usuario SPIDI
userSpidi_username
stringNombre de usuario o identificador único del comercio.
uuid
string (uuid)Identificador único en formato UUID.