Esquema de datos

Aquí encontrarás los esquemas de datos utilizados en los procesos de pago y las interacciones con el sistema. Los esquemas detallan cómo se deben estructurar y manejar los diferentes tipos de información, como montos, métodos de pago, y datos de los usuarios, para garantizar una integración efectiva y sin problemas. Cada esquema incluye una descripción clara de los parámetros necesarios y sus valores posibles, asegurando que puedas implementar la funcionalidad de pago correctamente en tu plataforma.

Amount

Representa los detalles monetarios de una transacción. Define la estructura para especificar la moneda, el valor total del pago, propinas opcionales y los diversos impuestos aplicados.

ParámetroTipoDescripciónEnum/Restricciones
currencystringMoneda del monto["COP"]
total_amountnumberMonto total del pago0
tip_amountnumberMonto de la propina0
taxesarrayLista de impuestos aplicados[ ] o [Tax]

Tax

Define la estructura para representar información detallada sobre impuestos aplicados a una transacción. Permite especificar el tipo de impuesto (como IVA o impuesto al consumo), el valor base sobre el cual se calcula el impuesto y el monto resultante del cálculo.

ParámetroTipoDescripciónEnum/Restricciones
typestringTipo de impuesto["VAT", "CONSUMPTION"]
basenumberBase del impuesto0
valuenumberValor del impuesto0

PaymentAttempt

Describe la estructura de un intento de pago. Contiene toda la información necesaria para procesar una transacción, incluyendo la referencia única del pago, metadatos personalizados, información del pagador y detalles del método de pago seleccionado. También incluye un indicador para distinguir entre transacciones reales y de prueba.

ParámetroTipoDescripciónEnum/Restricciones
reference_idstringIdentificador único de la referencia del pagoRequerido. Ejemplo: "ORDER-999"
metadataarrayLista de metadatos clave-valor relacionados con el pagoRequerido. Ejemplo: [{"key":"custom-id", "value":"999"}]
testbooleanIndica si el intento de pago es de un agente de pruebaRequerido. Ejemplo: true
payerobjectInformación del pagadorPayer
payment_methodobjectMétodo de pago utilizadoPaymentMethod
device_fingerprintobjectHuella digital del dispositivoDeviceFingerprintWeb

PaymentIntentResponse

Representa la respuesta del sistema al crear o consultar una intención de pago. Contiene información completa sobre el estado actual de la intención, incluyendo detalles de la transacción, información del cliente, datos de seguimiento y, si corresponde, el identificador de la transacción.

ParámetroTipoDescripciónEnum/Restricciones
reference_idstringIdentificador único de la referencia del pago enviado por el merchantEjemplo: "ORDER-999"
amountobjectInformación del montoAmount
descriptionstringDescripción de la intención de pagoEjemplo: "Pago de mi orden 999"
creation_datestringFecha de creación del intento de pago-
statusstringEstado de la intención de pago["ACTIVE", "PROCESSING", "PENDING", "DISABLED", "PAYED"]
bold_transaction_idstringId de la transacción de bold si esta ya se encuentra pagadaEjemplo: "TXNMH97555"
callback_urlstringUrl de redirección una vez realizado el pagoEjemplo: "https://bold.co (opens in a new tab)"
metadataarrayLista de metadatos clave-valorEjemplo: [{"key":"custom-id", "value":"999"}]
testbooleanIndica si es una intención de pago de pruebaEjemplo: true
customerobjectInformación del clienteCustomer
device_fingerprintobjectHuella digital del dispositivoDeviceFingerprintWeb

PaymentIntent

Define la estructura para crear una nueva intención de pago en el sistema. Incluye todos los parámetros necesarios para iniciar un proceso de pago, como los datos del cliente, información del monto, detalles de facturación y envío, y el método de pago.

ParámetroTipoDescripciónEnum/Restricciones
reference_idstringIdentificador único de la referencia del pagoRequerido. Ejemplo: "ORDER-999"
amountobjectInformación del montoAmount
descriptionstringDescripción de la intención de pagoEjemplo: "Pago de mi orden 999"
confirmbooleanIndica si se envía el intento de pago inmediatamenteEjemplo: true
callback_urlstringURL de retorno al completar el pagoEjemplo: "https://bold.co (opens in a new tab)"
metadataarrayLista de metadatos clave-valorEjemplo: [{"key":"custom-id", "value":"999"}]
testbooleanIndica si es una intención de pago de pruebaEjemplo: true
customerobjectInformación del clienteCustomer
payment_methodobjectMétodo de pagoPaymentMethod

Customer

Contiene la información personal del cliente que realiza una compra.

ParámetroTipoDescripciónEnum/Restricciones
namestringNombre completo del clienteRequerido. Ejemplo: "Jhon Doe"
phonestringNúmero de teléfono del clienteEjemplo: "3123456789"
emailstringCorreo electrónico del clienteEjemplo: "pagador@example.com"
billing_addressobjectDirección de facturaciónAddress
shipping_addressobjectDirección de envíoAddress

Address

Define la estructura estandarizada para representar una dirección física, ya sea de facturación o envío para la validacion del método de pago.

ParámetroTipoDescripciónEnum/Restricciones
street1stringDirección línea 1Requerido. Ejemplo: "Calle 123 # 34 56"
street2stringDirección línea 2Ejemplo: "Barrio Primero de Julio"
citystringCiudadRequerido. Ejemplo: "Bogotá"
postal_codestringCódigo postalEjemplo: "170008"
provincestringProvincia o estadoEjemplo: "Cundinamarca"
country_codestringCódigo del país formato ISO 3166-1Requerido. Ejemplo: "CO"
phonestringTeléfono asociadoEjemplo: "3123456789"

Payer

Representa la información de la persona o entidad que realiza el pago. A diferencia del esquema Customer, este incluye datos específicos para el procesamiento de pagos, como tipo de persona (natural o jurídica), documentos de identificación y registros de aceptación de políticas.

ParámetroTipoDescripciónEnum/Restricciones
person_typestringTipo de persona["NATURAL_PERSON", "LEGAL_PERSON"]
namestringNombre completo o razón socialEjemplo: "Jhon Doe"
phonestringTeléfono del pagadorEjemplo: "3123456789"
emailstringCorreo electrónicoEjemplo: "pagador@example.com"
document_typestringTipo de documento["CEDULA", "CEDULA_EXTRANJERIA", "TARJETA_IDENTIDAD", "PASAPORTE", "NIT"]
document_numberstringNúmero de documentoEjemplo: "987654321"
terms_and_conditionsobjectAceptación de términosPolicyAcceptanceData
data_treatmentobjectAceptación tratamiento de datosPolicyAcceptanceData

PolicyAcceptanceData

Utilizado para registrar la aceptación formal de políticas o términos y condiciones o tratamiento de datos personales.

ParámetroTipoDescripciónEnum/Restricciones
acceptance_datestringFecha de aceptaciónRequerido, format: date-time
versionstringVersión de términos aceptadosRequerido

PaymentMethod

Esquema base que define la estructura para los diferentes métodos de pago soportados. Funciona como un contenedor que puede albergar cualquiera de los tipos de pago específicos como tarjetas de crédito, PSE, Nequi o Bancolombia.

ParámetroTipoDescripciónEnum/Restricciones
typestringTipo de método de pagoRequerido
-objectMétodo de pago utilizado para el intentooneOf: PSE, CreditCard, Nequi, Bancolombia

CreditCard

Estructura específica para pagos con tarjeta de crédito. Incluye información detallada de la tarjeta y la dirección de facturación asociada, asegurando que se capture toda la información necesaria para procesar transacciones con este método de pago.

ParámetroTipoDescripciónEnum/Restricciones
typestringTipo de método de pago["CREDIT_CARD"]
cardobjectInformación de la tarjetaCard Object
billing_addressobjectDirección de facturaciónBilling Address Object

Card Object

ParámetroTipoDescripciónEnum/Restricciones
brandstringMarca de la tarjetaRequerido. Ejemplo: "VISA"
cardholder_namestringNombre del titularRequerido. Ejemplo: "Jhon Doe"
exp_monthintegerMes de vencimientoRequerido. Ejemplo: 12
exp_yearintegerAño de vencimientoRequerido. Ejemplo: "2032"
installmentsintegerNúmero de cuotasRequerido. Ejemplo: 1
card_numberstringNúmero de tarjetaRequerido. Ejemplo: "4111111111111111"
cvcstringCódigo de seguridadRequerido. Ejemplo: "123"

Billing Address Object

ParámetroTipoDescripciónEnum/Restricciones
citystringCiudadRequerido. Ejemplo: "Bogotá"
country_codestringCódigo del país formato ISO 3166-1Requerido. Ejemplo: "CO"
streetstringDirecciónRequerido. Ejemplo: "Calle 123 # 34 56"
zip_codestringCódigo postalRequerido. Ejemplo: "170003"
statestringEstado o regiónRequerido. Ejemplo: "Cundinamarca"

PSE

Esquema para pagos electrónicos mediante PSE (Pagos Seguros en Línea). Incluye el código del banco seleccionado por el usuario y su dirección, elementos necesarios para redirigir correctamente al cliente a la plataforma bancaria correspondiente.

ParámetroTipoDescripciónEnum/Restricciones
typestringTipo de método de pago["PSE"]
bank_codestringCódigo del bancoRequerido. Ejemplo: "3456"
addressstringDirección del pagadorRequerido. Ejemplo: "Calle 123 # 34 56"

Nequi

Estructura para pagos realizados a través de la billetera móvil Nequi. No requiere campos adicionales, ya que se basa en la autenticación del usuario en la aplicación Nequi.

ParámetroTipoDescripciónEnum/Restricciones
typestringTipo de método de pago["NEQUI"]

Bancolombia

Esquema para pagos realizados utilizando la plataforma de Bancolombia y solo requiere el tipo de método de pago, pues la gestión detallada ocurre en el entorno bancario.

ParámetroTipoDescripciónEnum/Restricciones
typestringTipo de método de pago["BANCOLOMBIA"]

DeviceFingerprintWeb

ParámetroTipoDescripciónEnum/Restricciones
ipstringDirección IPRequerido
device_typestringTipo de dispositivoRequerido
osstringSistema operativoRequerido
browserstringNavegadorRequerido
accept_headerstringCabecera HTTP AcceptRequerido
user_agentstringUser AgentRequerido
java_enabledbooleanJava habilitadoRequerido
languagestringIdioma del dispositivoRequerido
color_depthintegerProfundidad de colorRequerido
screen_heightintegerAltura de pantallaRequerido
screen_widthintegerAncho de pantallaRequerido
time_zone_offsetintegerZona horariaRequerido
latitudestringLatitudNullable
longitudestringLongitudNullable
modelstringModelo del dispositivoNullable
platformstringPlataformaNullable

PaymentAttemptStatusResponse

Representa la respuesta del sistema al consultar el estado de un intento de pago. Proporciona información completa sobre el estado actual de la transacción, incluyendo si fue aprobada o rechazada, y todos los detalles relevantes de la operación.

ParámetroTipoDescripciónEnum/Restricciones
transaction_idstringID de transacciónRequerido. Ejemplo: "TXNFD76543"
reference_idstringID de referenciaRequerido. Ejemplo: "ORDEN-999"
statusstringEstado de la transacción["APPROVED", "REJECTED", "PROCESSING", "PENDING"]
amountobjectInformación del montoAmount
payment_methodobjectMétodo de pago usadoPaymentMethodResponse
payerobjectInformación del pagadorPayer
sale_datestringFecha de la transacciónRequerido
metadataarrayMetadatos del clienteRequerido. Ejemplo: [{"key":"custom-id", "value":"999"}]

PaymentAttemptResponse

Esquema que representa la respuesta inmediata del sistema al realizar un intento de pago. Incluye el identificador único de la transacción, su estado inicial (siempre es "PROCESSING") y, si es necesario, instrucciones para completar acciones adicionales requeridas, como redirecciones a plataformas bancarias.

ParámetroTipoDescripciónEnum/Restricciones
transaction_idstringID de transacciónRequerido. Ejemplo: "TXNFD76543"
next_actionobjectAcción requeridaNext Action Object
statusstringEstado de la transacción["PROCESSING"]

Next Action Object

ParámetroTipoDescripciónEnum/Restricciones
redirect_urlstringURL de redirecciónRequerido, format: uri. Ejemplo: "https://mi-banco.com/pago-pse (opens in a new tab)"
redirect_methodstringMétodo HTTP["POST", "GET"]

PaymentMethodResponse

Esquema contenedor para la respuesta específica según el método de pago utilizado. Similar al esquema PaymentMethod, pero contiene la información de respuesta tras el procesamiento del pago, que puede variar según el método utilizado.

ParámetroTipoDescripciónEnum/Restricciones
-objectMétodo de pago con el que se pagóoneOf: PSEResponse, CreditCardResponse, Nequi, Bancolombia

PSEResponse

Representa la información de respuesta específica para pagos realizados a través de PSE. Incluye datos como el nombre del banco utilizado y el identificador único de la transacción en el sistema PSE (CUS).

ParámetroTipoDescripciónEnum/Restricciones
typestringTipo de método de pago["PSE"]
bank_namestringNombre del banco para pagos PSERequerido. Ejemplo: "Bancolombia"
cusstringID pago PSERequerido. Ejemplo: "CUS12345678"

CreditCardResponse

Esquema que contiene la información de respuesta para pagos realizados con tarjeta de crédito. Incluye detalles procesados de la tarjeta y la dirección de facturación.

ParámetroTipoDescripciónEnum/Restricciones
typestringTipo de método de pagoRequerido
cardobjectInformación de la tarjetaRequerido
billing_addressobjectDirección de facturaciónRequerido

ValidationError

Define la estructura de respuesta cuando ocurre un error de validación en la solicitud. Proporciona información detallada sobre la naturaleza del error, facilitando su identificación y corrección.

ParámetroTipoDescripciónEnum/Restricciones
detailarrayLista de erroresDetail Array Item

Detail Array Item

ParámetroTipoDescripciónEnum/Restricciones
locarrayUbicación del errorRequerido
msgstringMensaje de errorRequerido
typestringTipo de errorRequerido