API de Pagos - Colombia
Esta guía muestra cómo aprovechar estos servicios para mejorar la experiencia de pago de tus clientes proporcionando opciones de pago flexibles y seguras adaptadas al mercado local.
Nota
Para integrar la API de Pagos, dirige tus solicitudes a las siguientes URL según el entorno correspondiente:
- Pruebas:
https://sandbox.api.payulatam.com/payments-api/4.0/service.cgi
- Producción:
https://api.payulatam.com/payments-api/4.0/service.cgi
Métodos Disponibles
La API de Pagos incluye los siguiente métodos:
- Enviar Transacciones Utilizando Tarjetas de Crédito o Débito
- Enviar Transacciones Utilizando Nequi
- Enviar Transacciones Utilizando Efectivo o Referencia Bancaria
- Enviar Transacciones Utilizando Transferencia Bancaria (PSE)
- Enviar Transacciones Utilizando Google Pay
- Procesar Pagos como Aerolínea o Agencia de Viajes
- Lista de Bancos - PSE
- Consultar Métodos de Pago Disponibles
- Ping
Nota
Para confirmar el estado de una transacción, puedes utilizar una de las siguientes opciones:
- Navega a la URL configurada en la variable
transaction.notifyUrl
o la opción URL de confirmación ubicada en el Módulo PayU en Configuración > Configuración técnica. - Utiliza la API o SDK de Consultas.
Enviar Transacciones Utilizando Tarjetas de Crédito o Débito
Este método te permite procesar los pagos que realizan tus clientes utilizando tarjetas de crédito o débito. Para Colombia, puedes realizar los flujos de un paso (Cobro). Para más información, consulta los flujos de pago.
Nota
El flujo de dos pasos está disponible únicamente bajo solicitud, contacta a tu representante de ventas.Parámetros para la Solicitud y la Respuesta
Solicitud
Nombre del Campo | Formato | Tamaño | Descripción | Obligatorio |
---|---|---|---|---|
language | Alfanumérico | 2 | Idioma utilizado en la petición, este idioma se utiliza para mostrar los mensajes de error generados. Ver idiomas soportados. | Sí |
command | Alfanumérico | Máx:32 | Asigna SUBMIT_TRANSACTION . |
Sí |
test (JSON) isTest (XML) |
Booleano | Asigna true si la petición es en modo pruebas. Si no, asigna false . |
Sí | |
merchant | Objeto | Este objeto contiene los datos de autenticación. | Sí | |
merchant > apiLogin | Alfanumérico | Min:12 Máx:32 | Usuario o login entregado por PayU. Cómo obtengo mi API Login | Sí |
merchant > apiKey | Alfanumérico | Min:6 Máx:32 | Contraseña entregada por PayU. Cómo obtengo mi API Key | Sí |
transaction | Objeto | Este objeto contiene los datos de la transacción. | Sí | |
transaction > order | Objeto | Este objeto contiene los datos de la orden. | Sí | |
transaction > order > accountId | Numérico | Identificador de tu cuenta. | Sí | |
transaction > order > referenceCode | Alfanumérico | Min:1 Máx:255 | Representa el identificador de la orden en tu sistema. | Sí |
transaction > order > description | Alfanumérico | Min:1 Máx:255 | Descripción de la orden. | Sí |
transaction > order > language | Alfanumérico | 2 | Idioma utilizado en los correos electrónicos enviados al comprador y al vendedor. | Sí |
transaction > order > notifyUrl | Alfanumérico | Máx:2048 | URL de confirmación de la orden. | No |
transaction > order > partnerId | Alfanumérico | Máx:255 | ID de aliado dentro de PayUID de aliado dentro de PayU. | No |
transaction > order > signature | Alfanumérico | Máx:255 | Firma asociada al formulario. Para más información, consulta Firma de autenticación. | Sí |
transaction > order > shippingAddress | Objeto | Dirección de envío. | No | |
transaction > order > shippingAddress > street1 | Alfanumérico | Máx:100 | Línea de dirección 1. | No |
transaction > order > shippingAddress > street2 | Alfanumérico | Máx:100 | Línea de dirección 2. | No |
transaction > order > shippingAddress > city | Alfanumérico | Máx:50 | Ciudad de la dirección. | No |
transaction > order > shippingAddress > state | Alfanumérico | Máx:40 | Departamento de la dirección. | No |
transaction > order > shippingAddress > country | Alfanumérico | 2 | País de la dirección. | No |
transaction > order > shippingAddress > postalCode | Alfanumérico | Máx:8 | Código postal de la dirección. | No |
transaction > order > shippingAddress > phone | Alfanumérico | Máx:11 | Número de teléfono asociado con la dirección. | No |
transaction > order > buyer | Objeto | Información del comprador. | Sí | |
transaction > order > buyer > merchantBuyerId | Alfanumérico | Máx:100 | Identificador del comprador en tu sistema. | No |
transaction > order > buyer > fullName | Alfanumérico | Máx:150 | Nombre del comprador. | Sí |
transaction > order > buyer > emailAddress | Alfanumérico | Máx:255 | Correo electrónico del comprador. | Sí |
transaction > order > buyer > contactPhone | Alfanumérico | Máx:20 | Número de teléfono del comprador. | Sí |
transaction > order > buyer > dniNumber | Alfanumérico | Máx:20 | Número de identificación del comprador. | Sí |
transaction > order > buyer > shippingAddress | Objeto | Dirección de envío del comprador. | Sí | |
transaction > order > buyer > shippingAddress > street1 | Alfanumérico | Máx:150 | Línea de dirección 1 del comprador. | Sí |
transaction > order > buyer > shippingAddress > city | Alfanumérico | Máx:50 | Ciudad de la dirección del comprador. | Sí |
transaction > order > buyer > shippingAddress > state | Alfanumérico | Máx:40 | Departamento de la dirección del comprador. | Sí |
transaction > order > buyer > shippingAddress > country | Alfanumérico | 2 | País de la dirección del comprador en formato ISO 3166 alpha-2. | Sí |
transaction > order > buyer > shippingAddress > postalCode | Numérico | Máx:20 | Código postal de la dirección del comprador. | Sí |
transaction > order > buyer > shippingAddress > phone | Numérico | Máx:20 | Número de teléfono de la dirección del comprador. | Sí |
transaction > order > additionalValues > | Objeto | 64 | Monto de la orden y sus valores asociados. | Sí |
transaction > order > additionalValues > TX_VALUE | Alfanumérico | 64 | Monto de la transacción. | Sí |
transaction > order > additionalValues > TX_VALUE > value | Numérico | 12, 2 | Especifica el monto de la transacción, este valor no puede tener decimales. | Sí |
transaction > order > additionalValues > TX_VALUE > currency | Alfanumérico | 3 | Código ISO de la moneda. Ver monedas aceptadas. | No |
transaction > order > additionalValues > TX_TAX | Alfanumérico | 64 | Monto del IVA (Impuesto al Valor Agregado). | Sí |
transaction > order > additionalValues > TX_TAX > value | Numérico | 12, 2 | Especifica el monto del IVA. Si no se envía este parámetro, PayU aplica el impuesto actual (19%). Si la cantidad está exenta de IVA, envía 0. Este valor puede tener dos dígitos decimales |
No |
transaction > order > additionalValues > TX_TAX > currency | Alfanumérico | 3 | Código ISO de la moneda. Ver monedas aceptadas. | No |
transaction > order > additionalValues > TX_TAX_RETURN_BASE | Alfanumérico | 64 | Valor base para calcular el IVA. Si la cantidad está exenta de IVA, envía 0. Este valor puede tener dos dígitos decimales |
No |
transaction > order > additionalValues > TX_TAX_RETURN_BASE > value | Numérico | 12, 2 | Especifica el valor base de la transacción. | No |
transaction > order > additionalValues > TX_TAX_RETURN_BASE > currency | Alfanumérico | 3 | Código ISO de la moneda. Ver monedas aceptadas. | No |
transaction > creditCardTokenId | Alfanumérico | Incluye este parámetro cuando la transacción se hace con una tarjeta de crédito tokenizada; además, es obligatorio enviar el parámetro transaction.creditCard.expirationDate .Para más información, consulte API de Tokenización. |
No | |
transaction > creditCard | Objeto | Información de la tarjeta de crédito. Este objeto y sus parámetros son obligatorios cuando el pago se realiza utilizando una tarjeta de crédito no tokenizada. | No | |
transaction > creditCard > number | Alfanumérico | Min:13 Máx:20 | Número de la tarjeta de crédito. | No |
transaction > creditCard > securityCode | Alfanumérico | Min:1 Máx:4 | Código de seguridad de la tarjeta de crédito (CVC2, CVV2, CID). | No |
transaction > creditCard > expirationDate | Alfanumérico | 7 | Fecha de expiración de la tarjeta de crédito. Formato YYYY/MM . |
No |
transaction > creditCard > name | Alfanumérico | Min:1 Máx:255 | Nombre del tarjetahabiente mostrado en la tarjeta de crédito. | No |
transaction > creditCard > processWithoutCvv2 | Booleano | Máx:255 | Te permite procesar transacciones sin incluir el código de seguridad de la tarjeta de crédito. Tu comercio requiere autorización de PayU antes de utilizar esta funcionalidad. | No |
transaction > payer | Objeto | Información del pagador. | Sí | |
transaction > payer > emailAddress | Alfanumérico | Máx:255 | Correo electrónico del pagador. | Sí |
transaction > payer > merchantPayerId | Alfanumérico | Máx:100 | Identificador del pagador en tu sistema. | No |
transaction > payer > fullName | Alfanumérico | Máx:150 | Nombre del pagador que debe ser igual al enviado en el parámetro transaction.creditCard.name . |
Sí |
transaction > payer > billingAddress | Objeto | Dirección de facturación. | Sí | |
transaction > payer > billingAddress > street1 | Alfanumérico | Máx:100 | Línea 1 de la dirección de facturación. | Sí |
transaction > payer > billingAddress > street2 | Alfanumérico | Máx:100 | Línea 2 de la dirección de facturación. | No |
transaction > payer > billingAddress > city | Alfanumérico | Máx:50 | Ciudad de la dirección de facturación. | Sí |
transaction > payer > billingAddress > state | Alfanumérico | Máx:40 | Departamento de la dirección de facturación. | No |
transaction > payer > billingAddress > country | Alfanumérico | 2 | País de la dirección de facturación en formato ISO 3166 Alpha-2. | Sí |
transaction > payer > billingAddress > postalCode | Alfanumérico | Máx:20 | Código postal de la dirección de facturación. | No |
transaction > payer > billingAddress > phone | Alfanumérico | Máx:20 | Número de teléfono de la dirección de facturación. | No |
transaction > payer > birthdate | Alfanumérico | Máx:10 | Fecha de nacimiento del pagador. | No |
transaction > payer > contactPhone | Alfanumérico | Máx:20 | Número de teléfono del pagador. | Sí |
transaction > payer > dniNumber | Alfanumérico | Máx:20 | Número de identificación del pagador. | Sí |
transaction > payer > dniType | Alfanumérico | 2 | Tipo de identificación del pagador. Ver tipos de documentos. | No |
transaction > type | Alfanumérico | 32 | Asigna este valor de acuerdo con el tipo de transacción. Para Colombia, asigna AUTHORIZATION_AND_CAPTURE |
Sí |
transaction > paymentMethod | Alfanumérico | 32 | Selecciona un método de pago de Tarjeta de crédito valido. Ver los métodos de pago disponibles para Colombia. | Sí |
transaction > paymentCountry | Alfanumérico | 2 | Asigna CO para Colombia. |
Sí |
transaction > deviceSessionId | Alfanumérico | Máx:255 | Identificador de la sesión del dispositivo donde el cliente realiza la transacción. Para más información, consulta esta sección. | Sí |
transaction > ipAddress | Alfanumérico | Máx:39 | Dirección IP del dispositivo donde el cliente realiza la transacción. | Sí |
transaction > cookie | Alfanumérico | Máx:255 | Cookie almacenada por el dispositivo donde el cliente realiza la transacción. | Sí |
transaction > userAgent | Alfanumérico | Máx:1024 | User agent del navegador donde el cliente realiza la transacción. | Sí |
transaction > extraParameters | Objeto | Parámetros adicionales o datos asociados a la petición. El tamaño máximo de cada nombre de extraParameters es 64 caracteres. En JSON, el parámetro extraParameters sigue esta estructura: "extraParameters": { "INSTALLMENTS_NUMBER": 1 } En XML, el parámetro extraParameters sigue esta estructura: <extraParameters> <entry> <string>INSTALLMENTS_NUMBER</string> <string>1</string> </entry> </extraParameters> |
No | |
transaction > threeDomainSecure | Objeto | Este objeto contiene la información de 3DS 2.0. | No | |
transaction > threeDomainSecure > embedded | Booleano | Asigna true si quieres utilizar un MPI embebido para el proceso de Autorización. Por defecto, este valor está asignado como false . |
No | |
transaction > threeDomainSecure > eci | Numérico | Máx:2 | Indicador de Comercio Electrónico. Valor retornado por los servidores de directorio indicando el intento de autenticación. Este parámetro es obligatorio cuando transaction.threeDomainSecure.embedded es false y transaction.threeDomainSecure.xid tiene un valor configurado. |
No |
transaction > threeDomainSecure > cavv | Alfanumérico | Máx:28 | Valor de verificación de autenticación del titular de la tarjeta (Cardholder Authentication Verification Value). Código del criptograma utilizado en la autenticación de la transacción codificado en Base 64. Dependiendo de los códigos ECI específicos establecidos por la red, este valor puede ser opcional. |
No |
transaction > threeDomainSecure > xid | Alfanumérico | Máx:28 | Identificador de la transacción enviado por el MPI codificado en Base 64. Este parámetro es obligatorio cuando transaction.threeDomainSecure.embedded is false y transaction.threeDomainSecure.eci tiene un valor configurado. |
No |
transaction > threeDomainSecure > directoryServerTransactionId | Alfanumérico | Máx:36 | Identificador de la transacción generador por el servidor de directorio durante la autenticación. | No |
transaction > digitalWallet | Objeto | Incluya este parámetro cuando la transacción se realice utilizando una billetera digital. *Al enviar este objeto, todos sus campos son obligatorios. | No | |
transaction > digitalWallet > type | Alfanumérico | —- | Envía el valor con base en la billetera que se está procesando: GOOGLE_PAY | Si* |
transaction > digitalWallet > message | Alfanumérico | —- | Incluye la información del Google Pay token que Google te devolverá por cada transacción. Para más información consulta aquí. | Si* |
Respuesta
Nombre del Campo | Formato | Tamaño | Descripción |
---|---|---|---|
code | Alfanumérico | Código de respuesta de la transacción. Los valores posibles son ERROR y SUCCESS . |
|
error | Alfanumérico | Máx:2048 | Mensaje de error asociado cuando el código de respuesta es ERROR . |
transactionResponse | Objeto | Datos de la respuesta. | |
transactionResponse > orderId | Numérico | Identificador generado o existente de la orden en PayU. | |
transactionResponse > transactionId | Alfanumérico | 36 | Identificador de la transacción en PayU. |
transactionResponse > state | Alfanumérico | Máx:32 | Estado de la transacción. |
transactionResponse > responseCode | Alfanumérico | Máx:64 | Código de respuesta asociado con el estado. |
transactionResponse > paymentNetworkResponseCode | Alfanumérico | Máx:255 | Código de respuesta retornado por la red bancaria. |
transactionResponse > paymentNetworkResponseErrorMessage | Alfanumérico | Máx:255 | Mensaje de error retornado por la red bancaria. |
transactionResponse > trazabilityCode | Alfanumérico | Máx:32 | Código de trazabilidad retornado por la red bancaria. |
transactionResponse > authorizationCode | Alfanumérico | Máx:12 | Código de autorización retornado por la red bancaria. |
transactionResponse > responseMessage | Alfanumérico | Máx:2048 | Mensaje asociado con el código de respuesta. |
transactionResponse > operationDate | Fecha | Fecha de creación de la respuesta en el sistema de PayU. | |
transactionResponse > extraParameters | Objeto | Parámetros adicionales o datos asociados con la respuesta. En JSON, el parámetro extraParameters sigue esta estructura: "extraParameters": { "BANK_REFERENCED_CODE": "CREDIT" } En XML, el parámetro extraParameters sigue esta estructura: <extraParameters> <entry> <string>BANK_REFERENCED_CODE</string> <string>CREDIT</string> </entry> </extraParameters> |
|
transactionResponse > additionalInfo | Objeto | Información adicional de la respuesta. Este objeto tiene la misma estructura de transactionResponse.extraParameters . |
Consideraciones
- Para pagos con tókenes de tarjeta, incluya los parámetros
transaction.creditCardTokenId
ytransaction.creditCard.securityCode
(Si procesas con código de seguridad) reemplazando la información de la tarjeta de crédito. Para más información, consulta el API de Tokenización. - Por defecto, el procesamiento de tarjetas de crédito sin código de seguridad no está activo. Si lo quieres activar, contacta a tu representante de ventas. Luego de que esté activado, envía en la petición la variable
creditCard.processWithoutCvv2
con valor true y elimina la variablecreditCard.securityCode
. - La variable
transaction.threeDomainSecure
no reemplaza la información de la tarjeta o ninguno de los campos obligatorios de la transacción. Este objeto es adicional y no es obligatorio. - La variable
transaction.threeDomainSecure
corresponde a un escenario passthrough donde el comercio realiza la autenticación por su cuenta. - Para la tarjeta Crédito Fácil Codensa, el número de cuotas soportadas es 1 a 12, 18, 24, 36 y 48.
- Para la tarjeta Crédito Fácil Codensa, el pagador puede escoger uno de los siguientes tipos de documento en la variable
transaction.payer.dniType
:
ISO | Descripción |
---|---|
CC | Cédula de ciudadanía. |
CE | Cédula de extranjería. |
NIT | Número de Identificación Tributaria (Empresas). |
TI | Tarjeta de identidad. |
PP | Pasaporte. |
IDC | Identificador único de cliente, para el caso de ID’s únicos de clientes/usuarios de servicios públicos. |
CEL | En caso de identificarse a través de la línea del móvil. |
RC | Registro civil de nacimiento. |
DE | Documento de identificación extranjero. |
Llamado a la API
Los siguientes son los cuerpos de la petición y la respuesta para este método de pago.
Ejemplo de una Solicitud:
{
"language": "es",
"command": "SUBMIT_TRANSACTION",
"merchant": {
"apiKey": "4Vj8eK4rloUd272L48hsrarnUA",
"apiLogin": "pRRXKOl8ikMmt9u"
},
"transaction": {
"order": {
"accountId": "512321",
"referenceCode": "PRODUCT_TEST_2021-06-23T19:59:43.229Z",
"description": "Payment test description",
"language": "es",
"signature": "1d6c33aed575c4974ad5c0be7c6a1c87",
"notifyUrl": "http://www.payu.com/notify",
"additionalValues": {
"TX_VALUE": {
"value": 65000,
"currency": "COP"
},
"TX_TAX": {
"value": 10378,
"currency": "COP"
},
"TX_TAX_RETURN_BASE": {
"value": 54622,
"currency": "COP"
}
},
"buyer": {
"merchantBuyerId": "1",
"fullName": "First name and second buyer name",
"emailAddress": "buyer_test@test.com",
"contactPhone": "7563126",
"dniNumber": "123456789",
"shippingAddress": {
"street1": "Cr 23 No. 53-50",
"street2": "5555487",
"city": "Bogotá",
"state": "Bogotá D.C.",
"country": "CO",
"postalCode": "000000",
"phone": "7563126"
}
},
"shippingAddress": {
"street1": "Cr 23 No. 53-50",
"street2": "5555487",
"city": "Bogotá",
"state": "Bogotá D.C.",
"country": "CO",
"postalCode": "0000000",
"phone": "7563126"
}
},
"payer": {
"merchantPayerId": "1",
"fullName": "First name and second payer name",
"emailAddress": "payer_test@test.com",
"contactPhone": "7563126",
"dniNumber": "5415668464654",
"billingAddress": {
"street1": "Cr 23 No. 53-50",
"street2": "125544",
"city": "Bogotá",
"state": "Bogotá D.C.",
"country": "CO",
"postalCode": "000000",
"phone": "7563126"
}
},
"creditCard": {
"number": "4037997623271984",
"securityCode": "321",
"expirationDate": "2030/12",
"name": "APPROVED"
},
"extraParameters": {
"INSTALLMENTS_NUMBER": 1
},
"type": "AUTHORIZATION_AND_CAPTURE",
"paymentMethod": "VISA",
"paymentCountry": "CO",
"deviceSessionId": "vghs6tvkcle931686k1900o6e1",
"ipAddress": "127.0.0.1",
"cookie": "pt1t38347bs6jc9ruv2ecpv7o2",
"userAgent": "Mozilla/5.0 (Windows NT 5.1; rv:18.0) Gecko/20100101 Firefox/18.0",
"threeDomainSecure": {
"embedded": false,
"eci": "01",
"cavv": "AOvG5rV058/iAAWhssPUAAADFA==",
"xid": "Nmp3VFdWMlEwZ05pWGN3SGo4TDA=",
"directoryServerTransactionId": "00000-70000b-5cc9-0000-000000000cb"
}
},
"test": true
}
Ejemplo de una Respuesta:
{
"code": "SUCCESS",
"error": null,
"transactionResponse": {
"orderId": 1400449660,
"transactionId": "aa2f50b2-62a8-42de-b3be-c6fe08ec712f",
"state": "APPROVED",
"paymentNetworkResponseCode": "81",
"paymentNetworkResponseErrorMessage": null,
"trazabilityCode": "CRED - 666039677",
"authorizationCode": "123238",
"pendingReason": null,
"responseCode": "APPROVED",
"errorCode": null,
"responseMessage": "Approved by the merchant",
"transactionDate": null,
"transactionTime": null,
"operationDate": 1624461913704,
"referenceQuestionnaire": null,
"extraParameters": {
"BANK_REFERENCED_CODE": "CREDIT"
},
"additionalInfo": {
"paymentNetwork": "CREDIBANCO",
"rejectionType": "NONE",
"responseNetworkMessage": null,
"travelAgencyAuthorizationCode": null,
"cardType": "CREDIT",
"transactionType": "AUTHORIZATION_AND_CAPTURE"
}
}
}
Ejemplo de una Solicitud:
<request>
<language>es</language>
<command>SUBMIT_TRANSACTION</command>
<merchant>
<apiKey>4Vj8eK4rloUd272L48hsrarnUA</apiKey>
<apiLogin>pRRXKOl8ikMmt9u</apiLogin>
</merchant>
<transaction>
<order>
<accountId>512321</accountId>
<referenceCode>PRODUCT_TEST_2021-06-23T19:59:43.229Z</referenceCode>
<description>Payment test description</description>
<language>es</language>
<signature>1d6c33aed575c4974ad5c0be7c6a1c87</signature>
<notifyUrl>http://www.payu.com/notify</notifyUrl>
<additionalValues>
<entry>
<string>TX_VALUE</string>
<additionalValue>
<value>65000</value>
<currency>COP</currency>
</additionalValue>
<string>TX_TAX</string>
<additionalValue>
<value>10378</value>
<currency>COP</currency>
</additionalValue>
<string>TX_TAX_RETURN_BASE</string>
<additionalValue>
<value>54622</value>
<currency>COP</currency>
</additionalValue>
</entry>
</additionalValues>
<buyer>
<merchantBuyerId>1</merchantBuyerId>
<fullName>First name and second buyer name</fullName>
<emailAddress>buyer_test@test.com</emailAddress>
<contactPhone>7563126</contactPhone>
<dniNumber>123456789</dniNumber>
<shippingAddress>
<street1>Cr 23 No. 53-50</street1>
<street2>5555487</street2>
<city>Bogotá</city>
<state>Bogotá D.C.</state>
<country>CO</country>
<postalCode>000000</postalCode>
<phone>7563126</phone>
</shippingAddress>
</buyer>
<shippingAddress>
<street1>Cr 23 No. 53-50</street1>
<street2>5555487</street2>
<city>Bogotá</city>
<state>Bogotá D.C.</state>
<country>CO</country>
<postalCode>0000000</postalCode>
<phone>7563126</phone>
</shippingAddress>
</order>
<payer>
<merchantPayerId>1</merchantPayerId>
<fullName>First name and second payer name</fullName>
<emailAddress>payer_test@test.com</emailAddress>
<contactPhone>7563126</contactPhone>
<dniNumber>5415668464654</dniNumber>
<billingAddress>
<street1>Cr 23 No. 53-50</street1>
<street2>5555487</street2>
<city>Bogotá</city>
<state>Bogotá D.C.</state>
<country>CO</country>
<postalCode>000000</postalCode>
<phone>7563126</phone>
</billingAddress>
</payer>
<creditCard>
<number>4037997623271984</number>
<securityCode>321</securityCode>
<expirationDate>2030/12</expirationDate>
<name>APPROVED</name>
</creditCard>
<extraParameters>
<entry>
<string>INSTALLMENTS_NUMBER</string>
<string>1</string>
</entry>
</extraParameters>
<type>AUTHORIZATION_AND_CAPTURE</type>
<paymentMethod>VISA</paymentMethod>
<paymentCountry>CO</paymentCountry>
<deviceSessionId>vghs6tvkcle931686k1900o6e1</deviceSessionId>
<ipAddress>127.0.0.1</ipAddress>
<cookie>pt1t38347bs6jc9ruv2ecpv7o2</cookie>
<userAgent>Mozilla/5.0 (Windows NT 5.1; rv:18.0) Gecko/20100101 Firefox/18.0</userAgent>
<threeDomainSecure>
<embedded>false</embedded>
<eci>01</eci>
<cavv>AOvG5rV058/iAAWhssPUAAADFA==</cavv>
<xid>Nmp3VFdWMlEwZ05pWGN3SGo4TDA=</xid>
<directoryServerTransactionId>00000-70000b-5cc9-0000-000000000cb</directoryServerTransactionId>
</threeDomainSecure>
</transaction>
<isTest>false</isTest>
</request>
Ejemplo de una Respuesta:
<paymentResponse>
<code>SUCCESS</code>
<transactionResponse>
<orderId>1400449666</orderId>
<transactionId>c29d0543-810d-48c4-bd3e-163e935c2173</transactionId>
<state>APPROVED</state>
<paymentNetworkResponseCode>79</paymentNetworkResponseCode>
<trazabilityCode>CRED - 666116683</trazabilityCode>
<authorizationCode>787517</authorizationCode>
<responseCode>APPROVED</responseCode>
<responseMessage>Approved administrative transaction</responseMessage>
<operationDate>2021-06-23T10:26:28</operationDate>
<extraParameters>
<entry>
<string>BANK_REFERENCED_CODE</string>
<string>CREDIT</string>
</entry>
</extraParameters>
<additionalInfo>
<paymentNetwork>CREDIBANCO</paymentNetwork>
<rejectionType>NONE</rejectionType>
<cardType>CREDIT</cardType>
<transactionType>AUTHORIZATION_AND_CAPTURE</transactionType>
</additionalInfo>
</transactionResponse>
</paymentResponse>
Enviar Transacciones Utilizando Nequi
Nequi es una plataforma integral de servicios financieros que funciona por medio de una billetera digital disponible para millones de usuarios a través de una aplicación móvil. Con Nequi, puedes realizar pagos, transferencias, recargas y retiros de dinero de manera rápida y segura, todo desde tu dispositivo personal.
Además de ser una herramienta conveniente para usuarios individuales, Nequi también es una solución de pagos innovadora para comercios. Al aceptar pagos con Nequi, tu negocio puede disfrutar de una serie de ventajas significativas:
-
Aumento de las ventas: Al ofrecer Nequi como opción de pago, tu negocio puede atraer a nuevos clientes que prefieren realizar transacciones digitales. Esto puede traducirse en un aumento de las ventas y una mayor fidelización de clientes.
-
Mayor conveniencia: Al permitir que tus clientes paguen con Nequi, estás proporcionando una experiencia de compra más versátil y rápida. Los clientes pueden realizar sus pagos de forma instantánea utilizando sus teléfonos móviles, sin necesidad de efectivo o tarjetas físicas.
-
Mayor seguridad: Nequi ofrece un entorno de pago seguro y confiable, respaldado por Bancolombia, una de las instituciones financieras más grandes y confiables de Colombia. Esto brinda tranquilidad tanto a los comercios como a los clientes, ya que las transacciones se realizan de manera segura y protegida.
Proceso de Pago con Nequi
El flujo de pago con Nequi está diseñado para ser sencillo y ágil para el usuario. El proceso incluye 4 pasos:
-
Selección del medio de pago: El cliente, al momento de efectuar la compra, elige Nequi como su medio de pago preferido entre las opciones disponibles.
-
Generación de notificación push: Automáticamente, el sistema genera una notificación push que se envía a la aplicación móvil de Nequi del cliente.
-
Aceptación de la notificación: El cliente recibe la notificación en su aplicación Nequi y procede a aceptarla para confirmar la transacción.
-
Ingreso del PIN de Nequi: Para finalizar la operación, el cliente ingresa su PIN personal de Nequi para autenticar y autorizar el pago.
Experiencia de Usuario
Esta sección describe los elementos necesarios para una experiencia óptima del usuario al usar Nequi como método de pago:
- Solicita el nombre y correo electrónico del comprador, por ejemplo:
- Presenta Nequi como método de pago y solicita el número de teléfono asociado con la cuenta de Nequi, por ejemplo:
- Proporciona un resumen detallado del pago.
Nota
La imagen a continuación es un ejemplo de la página de resumen de PayU, puedes aprovechar esta página redirigiendo a los usuarios a la URL proporcionada en el campoURL_PAYMENT_RECEIPT_HTML
de la respuesta de la API, o puedes diseñar tu propio recibo extrayendo los datos de los campos correspondientes de la respuesta. Para más información, consulta la sección de Parámetros para Solicitud y Respuesta.
- Describe los pasos a seguir para facilitar el proceso de pago para el comprador. La página de resumen de PayU ya incluye estas instrucciones, pero si estás creando una página personalizada, recomendamos mostrar los pasos para completar el proceso a través de Nequi. Por ejemplo:
Parámetros para la Solicitud y la Respuesta
Solicitud
Nombre del Campo | Formato | Tamaño | Descripción | Obligatorio |
---|---|---|---|---|
language | Alfanumérico | 2 | Idioma utilizado en la solicitud, este idioma se utiliza para mostrar los mensajes de error generados. Consulta los idiomas admitidos. | Sí |
command | Alfanumérico | Máx:32 | Asigna SUBMIT_TRANSACTION . |
Sí |
test (JSON) isTest (XML) |
Booleano | Asigna true si la solicitud está en modo de prueba. De lo contrario, asigna false . |
Sí | |
merchant | Objeto | Este objeto contiene los datos de autenticación. | Sí | |
merchant > apiLogin | Alfanumérico | Min:12 Máx:32 | Nombre de usuario o login proporcionado por PayU. | Sí |
merchant > apiKey | Alfanumérico | Min:6 Máx:32 | Contraseña proporcionada por PayU. | Sí |
transaction | Objeto | Este objeto contiene los datos de la transacción. | Sí | |
transaction > order | Objeto | Este objeto contiene los datos de la orden. | Sí | |
transaction > order > accountId | Número | Identificador de tu cuenta. | Sí | |
transaction > order > referenceCode | Alfanumérico | Min:1 Máx:255 | Representa el identificador de la orden en tu sistema. | Sí |
transaction > order > description | Alfanumérico | Min:1 Máx:255 | Descripción de la orden. | Sí |
transaction > order > language | Alfanumérico | 2 | Idioma utilizado en los correos electrónicos enviados al comprador y al vendedor. | Sí |
transaction > order > notifyUrl | Alfanumérico | Máx:2048 | URL de confirmación de la orden. | No |
transaction > order > partnerId | Alfanumérico | Máx:255 | ID de socio en PayU. | No |
transaction > order > signature | Alfanumérico | Máx:255 | Firma asociada al formulario. Para más información, consulta Firma de autenticación. | Sí |
transaction > order > shippingAddress | Objeto | Dirección de envío. | No | |
transaction > order > shippingAddress > street1 | Alfanumérico | Máx:100 | Línea de dirección 1. | No |
transaction > order > shippingAddress > street2 | Alfanumérico | Máx:100 | Línea de dirección 2. | No |
transaction > order > shippingAddress > city | Alfanumérico | Máx:50 | Ciudad de la dirección. | No |
transaction > order > shippingAddress > state | Alfanumérico | Máx:40 | Departamento de la dirección. | No |
transaction > order > shippingAddress > country | Alfanumérico | 2 | País de la dirección. | No |
transaction > order > shippingAddress > postalCode | Alfanumérico | Máx:8 | Código postal de la dirección. | No |
transaction > order > shippingAddress > phone | Alfanumérico | Máx:11 | Número de teléfono asociado con la dirección. | No |
transaction > order > buyer | Objeto | Información del comprador. | Sí | |
transaction > order > buyer > merchantBuyerId | Alfanumérico | Máx:100 | ID del comprador en tu sistema. | No |
transaction > order > buyer > fullName | Alfanumérico | Máx:150 | Nombre completo del comprador. | Sí |
transaction > order > buyer > emailAddress | Alfanumérico | Máx:255 | Correo electrónico del comprador. | Sí |
transaction > order > buyer > contactPhone | Alfanumérico | Máx:20 | Número de teléfono del comprador. | Sí |
transaction > order > buyer > dniNumber | Alfanumérico | Máx:20 | Número de identificación del comprador. | Sí |
transaction > order > buyer > shippingAddress | Objeto | Dirección de envío del comprador. | Sí | |
transaction > order > buyer > shippingAddress > street1 | Alfanumérico | Máx:150 | Línea 1 de la dirección de envío del comprador. | Sí |
transaction > order > buyer > shippingAddress > city | Alfanumérico | Máx:50 | Ciudad de la dirección de envío del comprador. | Sí |
transaction > order > buyer > shippingAddress > state | Alfanumérico | Máx:40 | Departamento de la dirección de envío del comprador. | Sí |
transaction > order > buyer > shippingAddress > country | Alfanumérico | 2 | País de la dirección de envío del comprador en formato ISO 3166 alfa-2. | Sí |
transaction > order > buyer > shippingAddress > postalCode | Número | Máx:20 | Código postal de la dirección de envío del comprador. | Sí |
transaction > order > buyer > shippingAddress > phone | Número | Máx:20 | Número de teléfono de la dirección de envío del comprador. | Sí |
transaction > order > additionalValues > | Alfanumérico | 64 | Monto de la orden y sus valores asociados. | Sí |
transaction > order > additionalValues > TX_VALUE | Alfanumérico | 64 | Monto de la transacción. | Sí |
transaction > order > additionalValues > TX_VALUE > value | Número | 12, 2 | Especifica el monto de la transacción. Este monto no puede incluir decimales. | Sí |
transaction > order > additionalValues > TX_VALUE > currency | Alfanumérico | 3 | Código ISO de la moneda. Consulta las monedas aceptadas. | No |
transaction > order > additionalValues > TX_TAX | Alfanumérico | 64 | Monto del Impuesto al Valor Agregado (IVA). | Sí |
transaction > order > additionalValues > TX_TAX > value | Número | 12, 2 | Especifica el monto del IVA. Si este parámetro no está configurado, PayU aplica el valor de impuesto actual (19%). Si el monto no tiene IVA, envía 0. Este valor puede tener dos dígitos decimales. | No |
transaction > order > additionalValues > TX_TAX > currency | Alfanumérico | 3 | Código ISO de la moneda. Consulta las monedas aceptadas. | No |
transaction > order > additionalValues > TX_TAX_RETURN_BASE | Alfanumérico | 64 | Valor base para calcular el IVA. Si el monto no tiene IVA, envía 0. Este valor puede tener dos dígitos decimales. | No |
transaction > order > additionalValues > TX_TAX_RETURN_BASE > value | Número | 12, 2 | Especifica el monto base de la transacción. | No |
transaction > order > additionalValues > TX_TAX_RETURN_BASE > currency | Alfanumérico | 3 | Código ISO de la moneda. Consulta las monedas aceptadas. | No |
transaction > payer | Objeto | Información del pagador. | Sí | |
transaction > payer > emailAddress | Alfanumérico | Máx:255 | Correo electrónico del pagador. | Sí |
transaction > payer > merchantPayerId | Alfanumérico | Máx:100 | Identificador del pagador en tu sistema. | No |
transaction > payer > fullName | Alfanumérico | Máx:150 | Nombre del pagador. | Sí |
transaction > payer > billingAddress | Objeto | Dirección de facturación. | Sí | |
transaction > payer > billingAddress > street1 | Alfanumérico | Máx:100 | Línea 1 de la dirección de facturación. | Sí |
transaction > payer > billingAddress > street2 | Alfanumérico | Máx:100 | Línea 2 de la dirección de facturación. | No |
transaction > payer > billingAddress > city | Alfanumérico | Máx:50 | Ciudad de la dirección de facturación. | Sí |
transaction > payer > billingAddress > state | Alfanumérico | Máx:40 | Departamento de la dirección de facturación. | No |
transaction > payer > billingAddress > country | Alfanumérico | 2 | País de la dirección de facturación en formato ISO 3166 alfa-2. | Sí |
transaction > payer > billingAddress > postalCode | Alfanumérico | Máx:20 | Código postal de la dirección de facturación. | No |
transaction > payer > billingAddress > phone | Alfanumérico | Máx:20 | Número de teléfono de la dirección de facturación. | No |
transaction > payer > birthdate | Alfanumérico | Máx:10 | Fecha de nacimiento del pagador. | No |
transaction > payer > contactPhone | Alfanumérico | Máx:20 | Número de teléfono del pagador. Este es el número que se utilizará para pagar en Nequi. | Sí |
transaction > payer > dniNumber | Alfanumérico | Máx:20 | Número de identificación del comprador. | Sí |
transaction > payer > dniType | Alfanumérico | 2 | Tipo de identificación del comprador. Consulta los tipos de documentos.. | No |
transaction > type | Alfanumérico | 32 | Asigna este valor de acuerdo con la transacción. Para Colombia, asigna AUTHORIZATION_AND_CAPTURE . |
Sí |
transaction > paymentMethod | Alfanumérico | 32 | Asigna NEQUI para el Método de Pago Nequi. |
Sí |
transaction > paymentCountry | Alfanumérico | 2 | Asigna CO para Colombia. |
Sí |
transaction > deviceSessionId | Alfanumérico | Máx:255 | Identificador de sesión del dispositivo donde el cliente realiza la transacción. Para más información, consulta esta sección. | Sí |
transaction > ipAddress | Alfanumérico | Máx:39 | Dirección IP del dispositivo donde el cliente realiza la transacción. | Sí |
transaction > cookie | Alfanumérico | Máx:255 | Cookie almacenada por el dispositivo donde el cliente realiza la transacción. | Sí |
transaction > userAgent | Alfanumérico | Máx:1024 | El agente de usuario del navegador donde el cliente realiza la transacción. | Sí |
Respuesta
Nombre del Campo | Formato | Tamaño | Descripción |
---|---|---|---|
code | Alfanumérico | Código de respuesta de la transacción. Los valores posibles son ERROR y SUCCESS . |
|
error | Alfanumérico | Máx:2048 | Mensaje de error asociado cuando el código de respuesta es ERROR . |
transactionResponse | Objeto | Datos de la respuesta. | |
transactionResponse > orderId | Número | Identificador de orden generado o existente en PayU. | |
transactionResponse > transactionId | Alfanumérico | 36 | Identificador de la transacción en PayU. |
transactionResponse > state | Alfanumérico | Máx:32 | Estado de la transacción. |
transactionResponse > responseCode | Alfanumérico | Máx:64 | Código de respuesta asociado con el estado. |
transactionResponse > pendingReason | Alfanumérico | Máx:64 | Razón pendiente de la transacción. |
transactionResponse > paymentNetworkResponseCode | Alfanumérico | Máx:255 | Código de respuesta devuelto por la red financiera. |
transactionResponse > paymentNetworkResponseErrorMessage | Alfanumérico | Máx:255 | Mensaje de error devuelto por la red financiera. |
transactionResponse > trazabilityCode | Alfanumérico | Máx:32 | Código de trazabilidad devuelto por la red financiera. |
transactionResponse > authorizationCode | Alfanumérico | Máx:12 | Código de autorización devuelto por la red financiera. |
transactionResponse > responseMessage | Alfanumérico | Máx:2048 | Mensaje asociado con el código de respuesta. |
transactionResponse > operationDate | Fecha | Fecha de creación de la respuesta en el sistema de PayU. | |
transactionResponse > extraParameters | Objeto | Parámetros adicionales o datos asociados con la respuesta. extraParameters sigue esta estructura: "extraParameters": { "URL_PAYMENT_RECEIPT_HTML": "https:payu.checkout.com"} extraParameters sigue esta estructura: <extraParameters> <entry> <string>URL_PAYMENT_RECEIPT_HTML</string> <string>https:payu.checkout.com</string> </entry></extraParameters> Nota: Considera que puedes aprovechar esta URL para redirigir al usuario a una página de PayU con un resumen de la compra, como se muestra en Experiencia de Usuario. |
|
transactionResponse > additionalInfo | Objeto | Información adicional asociada con la respuesta. Este objeto sigue la misma estructura que transactionResponse.extraParameters . |
Llamado a la API
Los siguientes son los cuerpos de la petición y la respuesta para este método de pago:
Ejemplo de una Solicitud:
{
"language": "es",
"command": "SUBMIT_TRANSACTION",
"merchant": {
"apiKey": "4Vj8eK4rloUd272L48hsrarnUA",
"apiLogin": "pRRXKOl8ikMmt9u"
},
"transaction": {
"order": {
"accountId": "512321",
"referenceCode": "PRODUCT_TEST_2024-01-18T19:59:43.229Z",
"description": "Payment test description",
"language": "es",
"signature": "1d6c33aed575c4974ad5c0be7c6a1c87",
"notifyUrl": "http://www.payu.com/notify",
"additionalValues": {
"TX_VALUE": {
"value": 65000,
"currency": "COP"
},
"TX_TAX": {
"value": 10378,
"currency": "COP"
},
"TX_TAX_RETURN_BASE": {
"value": 54622,
"currency": "COP"
}
},
"buyer": {
"merchantBuyerId": "1",
"fullName": "First name and second buyer name",
"emailAddress": "buyer_test@test.com",
"contactPhone": "57 3007777777",
"dniNumber": "123456789",
"shippingAddress": {
"street1": "Cr 23 No. 53-50",
"street2": "5555487",
"city": "Bogotá",
"state": "Bogotá D.C.",
"country": "CO",
"postalCode": "000000",
"phone": "57 3007777777"
}
},
"shippingAddress": {
"street1": "Cr 23 No. 53-50",
"street2": "5555487",
"city": "Bogotá",
"state": "Bogotá D.C.",
"country": "CO",
"postalCode": "0000000",
"phone": "7563126"
}
},
"payer": {
"merchantPayerId": "1",
"fullName": "First name and second payer name",
"emailAddress": "payer_test@test.com",
"contactPhone": "57 3007777777",
"dniNumber": "5415668464654",
"billingAddress": {
"street1": "Cr 23 No. 53-50",
"street2": "125544",
"city": "Bogotá",
"state": "Bogotá D.C.",
"country": "CO",
"postalCode": "000000",
"phone": "57 3007777777"
}
},
"type": "AUTHORIZATION_AND_CAPTURE",
"paymentMethod": "NEQUI",
"paymentCountry": "CO",
"deviceSessionId": "vghs6tvkcle931686k1900o6e1",
"ipAddress": "127.0.0.1",
"cookie": "pt1t38347bs6jc9ruv2ecpv7o2",
"userAgent": "Mozilla/5.0 (Windows NT 5.1; rv:18.0) Gecko/20100101 Firefox/18.0"
},
"test": false
}
Ejemplo de una Respuesta:
{
"code": "SUCCESS",
"error": null,
"transactionResponse": {
"orderId": 2151135729,
"transactionId": "fe667b48-e685-40b3-8863-9a0cd8257860",
"state": "PENDING",
"paymentNetworkResponseCode": "0",
"paymentNetworkResponseErrorMessage": null,
"trazabilityCode": "3ba38ac9-3d68-48ef-bf86-b6c121404162",
"authorizationCode": null,
"pendingReason": "AWAITING_PAYMENT_IN_ENTITY",
"responseCode": "PENDING_PAYMENT_IN_ENTITY",
"errorCode": null,
"responseMessage": "SUCCESS",
"transactionDate": null,
"transactionTime": null,
"operationDate": 1705670262058,
"referenceQuestionnaire": null,
"extraParameters": null,
"additionalInfo": null
}
}
Ejemplo de una Solicitud:
<request>
<language>es</language>
<command>SUBMIT_TRANSACTION</command>
<merchant>
<apiKey>4Vj8eK4rloUd272L48hsrarnUA</apiKey>
<apiLogin>pRRXKOl8ikMmt9u</apiLogin>
</merchant>
<transaction>
<order>
<accountId>512321</accountId>
<referenceCode>PRODUCT_TEST_2024-01-18T19:59:43.229Z</referenceCode>
<description>Payment test description</description>
<language>es</language>
<signature>1d6c33aed575c4974ad5c0be7c6a1c87</signature>
<notifyUrl>http://www.payu.com/notify</notifyUrl>
<additionalValues>
<entry>
<string>TX_VALUE</string>
<additionalValue>
<value>65000</value>
<currency>COP</currency>
</additionalValue>
<string>TX_TAX</string>
<additionalValue>
<value>10378</value>
<currency>COP</currency>
</additionalValue>
<string>TX_TAX_RETURN_BASE</string>
<additionalValue>
<value>54622</value>
<currency>COP</currency>
</additionalValue>
</entry>
</additionalValues>
<buyer>
<merchantBuyerId>1</merchantBuyerId>
<fullName>First name and second buyer name</fullName>
<emailAddress>buyer_test@test.com</emailAddress>
<contactPhone>57 3007777777</contactPhone>
<dniNumber>123456789</dniNumber>
<shippingAddress>
<street1>Cr 23 No. 53-50</street1>
<street2>5555487</street2>
<city>Bogotá</city>
<state>Bogotá D.C.</state>
<country>CO</country>
<postalCode>000000</postalCode>
<phone>57 3007777777</phone>
</shippingAddress>
</buyer>
<shippingAddress>
<street1>Cr 23 No. 53-50</street1>
<street2>5555487</street2>
<city>Bogot√°</city>
<state>Bogot√° D.C.</state>
<country>CO</country>
<postalCode>0000000</postalCode>
<phone>7563126</phone>
</shippingAddress>
</order>
<payer>
<merchantPayerId>1</merchantPayerId>
<fullName>First name and second payer name</fullName>
<emailAddress>payer_test@test.com</emailAddress>
<contactPhone>57 3007777777</contactPhone>
<dniNumber>5415668464654</dniNumber>
<billingAddress>
<street1>Cr 23 No. 53-50</street1>
<street2>125544</street2>
<city>Bogotá</city>
<state>Bogotá D.C.</state>
<country>CO</country>
<postalCode>000000</postalCode>
<phone>57 3007777777</phone>
</billingAddress>
</payer>
<type>AUTHORIZATION_AND_CAPTURE</type>
<paymentMethod>NEQUI</paymentMethod>
<paymentCountry>CO</paymentCountry>
<deviceSessionId>vghs6tvkcle931686k1900o6e1</deviceSessionId>
<ipAddress>127.0.0.1</ipAddress>
<cookie>pt1t38347bs6jc9ruv2ecpv7o2</cookie>
<userAgent>Mozilla/5.0 (Windows NT 5.1; rv:18.0) Gecko/20100101 Firefox/18.0</userAgent>
</transaction>
<isTest>false</isTest>
</request>
Ejemplo de una Respuesta:
<paymentResponse>
<code>SUCCESS</code>
<transactionResponse>
<orderId>2151135729</orderId>
<transactionId>fe667b48-e685-40b3-8863-9a0cd8257860</transactionId>
<state>PENDING</state>
<paymentNetworkResponseCode>0</paymentNetworkResponseCode>
<trazabilityCode>3ba38ac9-3d68-48ef-bf86-b6c121404162</trazabilityCode>
<pendingReason>AWAITING_PAYMENT_IN_ENTITY</pendingReason>
<responseCode>PENDING_PAYMENT_IN_ENTITY</responseCode>
<responseMessage>SUCCESS</responseMessage>
<operationDate>2024-01-19T08:17:42</operationDate>
</transactionResponse>
</paymentResponse>
Formatos de Números de Teléfono Admitidos
Al utilizar integraciones API, las transacciones pueden fallar cuando el sistema recibe números de teléfono de usuario que:
- Contienen espacios en blanco.
- No están separados del código del país.
- Contienen más o menos de 10 dígitos (sin contar el código del país).
Actualmente, la integración no proporciona un mecanismo para corregir automáticamente el formato del número de teléfono que el usuario ingresa. La tabla a continuación muestra ejemplos de formatos de números de teléfono y su compatibilidad con la integración:
Ejemplo de Formato de Número de Teléfono | Compatibilidad | Detalles |
---|---|---|
57 3007777777 | Formato compatible | El código de país (57) está separado del número telefónico. |
3007777777 | Formato compatible | El número telefónico no tiene espacios y tiene 10 dígitos. |
573007777777 | Formato incompatible | El número telefónico y el código de país (57) no están separados. |
57 300 7777777 | Formato incompatible | El número telefónico tiene espacios. |
Recomendaciones
Para prevenir errores causados por formatos de números telefónicos incompatibles, te recomendamos implementar las siguientes características en la experiencia de usuario:
- Implementa una interfaz que automáticamente cree espacios separadores en el número de teléfono móvil mientras el usuario lo ingresa, haciendo que el número sea más fácil de leer y reduciendo la probabilidad de errores de entrada manual. Asegúrate de que estos espacios sean visibles a nivel de la interfaz mientras configuras tu sistema para eliminarlos a nivel de backend.
- Ejemplo de la interfaz:
- Configura mensajes de error para que se muestren cuando un usuario ingrese un número de teléfono con menos de 10 dígitos o más de 10 dígitos (excluyendo el código de país, que es +57 para Colombia).
- A) Ejemplo de una interfaz con espacios generados automáticamente donde el usuario no ha ingresado 10 dígitos:
- B) Ejemplo de una interfaz sin espacios donde el usuario ha ingresado más de 10 dígitos:
Pruebas en Ambiente Sandbox
Para probar las transacciones de Nequi en el ambiente Sandbox de PayU, utiliza los siguientes datos:
Número de teléfono | Comportamiento de la autorización | Comportamiento de la consulta (Aprox. 5 minutos después de la autorización) |
---|---|---|
3006666666 | Transaction rejected - Client not found on database | N/A |
3007777777 | Transaction pending | Transaction approved |
3007777776 | Transaction pending | Transaction declined |
3007777775 | Transaction pending | Transaction pending |
3007777774 | Transaction pending | Transaction failed |
3007777772 | Transaction pending | Transaction expired |
Puedes consultar el estado de la transacción a través de la API de Consultas.
Enviar Transacciones Utilizando Efectivo o Referencia Bancaria
Este método te permite procesar pagos de los clientes en efectivo o a través de una referencia bancaria. Para integrar este método de pago, redirige al cliente a la URL proporcionada en la respuesta del método. Tu cliente verá entonces un recibo de pago como se muestra a continuación.
Pagos en Efectivo
Pagos con Referencia Bancaria
Parámetros para la Solicitud y la Respuesta
Solicitud
Nombre del Campo | Formato | Tamaño | Descripción | Obligatorio |
---|---|---|---|---|
language | Alfanumérico | 2 | Idioma utilizado en la petición, este idioma se utiliza para mostrar los mensajes de error generados. Ver idiomas soportados. | Sí |
command | Alfanumérico | Máx:32 | Asigna SUBMIT_TRANSACTION . |
Sí |
test (JSON) isTest (XML) |
Booleano | Asigna true si la petición es en modo pruebas. Si no, asigna false . |
Sí | |
merchant | Objeto | Este objeto tiene los datos de autenticación. | Sí | |
merchant > apiLogin | Alfanumérico | Min:12 Máx:32 | Usuario o login entregado por PayU. Cómo obtengo mi API Login | Sí |
merchant > apiKey | Alfanumérico | Min:6 Máx:32 | Contraseña entregada por PayU. Cómo obtengo mi API Key | Sí |
transaction | Objeto | Este objeto tiene los datos de la transacción. | Sí | |
transaction > order | Objeto | Este objeto tiene los datos de la orden. | Sí | |
transaction > order > accountId | Numérico | Identificador de tu cuenta. | Sí | |
transaction > order > referenceCode | Alfanumérico | Min:1 Máx:255 | Representa el identificador de la orden en tu sistema. | Sí |
transaction > order > description | Alfanumérico | Min:1 Máx:255 | Descripción de la orden. | Sí |
transaction > order > language | Alfanumérico | 2 | Idioma utilizado en los correos electrónicos enviados al comprador y al vendedor. | Sí |
transaction > order > notifyUrl | Alfanumérico | Máx:2048 | URL de confirmación de la orden. | No |
transaction > order > partnerId | Alfanumérico | Máx:255 | ID de aliado dentro de PayUID de aliado dentro de PayU. | No |
transaction > order > signature | Alfanumérico | Máx:255 | Firma asociada al formulario. Para más información, consulta Firma de autenticación. | Sí |
transaction > order > shippingAddress | Objeto | Dirección de envío. | No | |
transaction > order > shippingAddress > street1 | Alfanumérico | Máx:100 | Línea de dirección 1. | No |
transaction > order > shippingAddress > street2 | Alfanumérico | Máx:100 | Línea de dirección 2. | No |
transaction > order > shippingAddress > city | Alfanumérico | Máx:50 | Ciudad de la dirección. | No |
transaction > order > shippingAddress > state | Alfanumérico | Máx:40 | Departamento de la dirección. | No |
transaction > order > shippingAddress > country | Alfanumérico | 2 | País de la dirección. | No |
transaction > order > shippingAddress > postalCode | Alfanumérico | Máx:8 | Código postal de la dirección. | No |
transaction > order > shippingAddress > phone | Alfanumérico | Máx:11 | Número de teléfono asociado con la dirección. | No |
transaction > order > buyer | Objeto | Información del comprador. | Sí | |
transaction > order > buyer > merchantBuyerId | Alfanumérico | Máx:100 | Identificador del comprador en tu sistema. | No |
transaction > order > buyer > fullName | Alfanumérico | Máx:150 | Nombre del comprador. | Sí |
transaction > order > buyer > emailAddress | Alfanumérico | Máx:255 | Correo electrónico del comprador. | Sí |
transaction > order > buyer > contactPhone | Alfanumérico | Máx:20 | Número de teléfono del comprador. | Sí |
transaction > order > buyer > dniNumber | Alfanumérico | Máx:20 | Número de identificación del comprador. | Sí |
transaction > order > buyer > shippingAddress | Objeto | Dirección de envío del comprador. | Sí | |
transaction > order > buyer > shippingAddress > street1 | Alfanumérico | Máx:150 | Línea de dirección 1 del comprador. | Sí |
transaction > order > buyer > shippingAddress > city | Alfanumérico | Máx:50 | Ciudad de la dirección del comprador. | Sí |
transaction > order > buyer > shippingAddress > state | Alfanumérico | Máx:40 | Departamento de la dirección del comprador. | Sí |
transaction > order > buyer > shippingAddress > country | Alfanumérico | 2 | País de la dirección del comprador en formato ISO 3166 alpha-2. | Sí |
transaction > order > buyer > shippingAddress > postalCode | Numérico | Máx:20 | Código postal de la dirección del comprador. | Sí |
transaction > order > buyer > shippingAddress > phone | Numérico | Máx:20 | Número de teléfono de la dirección del comprador. | Sí |
transaction > order > additionalValues > | Objeto | 64 | Monto de la orden y sus valores asociados. | Sí |
transaction > order > additionalValues > TX_VALUE | Alfanumérico | 64 | Monto de la transacción. | Sí |
transaction > order > additionalValues > TX_VALUE > value | Numérico | 12, 2 | Especifica el monto de la transacción, este valor no puede tener decimales. | Sí |
transaction > order > additionalValues > TX_VALUE > currency | Alfanumérico | 3 | Código ISO de la moneda. Ver monedas aceptadas. | Sí |
transaction > order > additionalValues > TX_TAX | Alfanumérico | 64 | Monto del IVA (Impuesto al Valor Agregado). | Sí |
transaction > order > additionalValues > TX_TAX > value | Numérico | 12, 2 | Especifica el monto del IVA. Si no se envía este parámetro, PayU aplica el impuesto actual (19%). Si la cantidad está exenta de IVA, envía 0. Este valor puede tener dos dígitos decimales. |
No |
transaction > order > additionalValues > TX_TAX > currency | Alfanumérico | 3 | Código ISO de la moneda. Ver monedas aceptadas. | No |
transaction > order > additionalValues > TX_TAX_RETURN_BASE | Alfanumérico | 64 | Valor base para calcular el IVA. Si la cantidad está exenta de IVA, envía 0. Este valor puede tener dos dígitos decimales |
No |
transaction > order > additionalValues > TX_TAX_RETURN_BASE > value | Numérico | 12, 2 | Especifica el valor base de la transacción. | No |
transaction > order > additionalValues > TX_TAX_RETURN_BASE > currency | Alfanumérico | 3 | Código ISO de la moneda. Ver monedas aceptadas. | No |
transaction > payer | Objeto | Información del pagador. | Sí | |
transaction > payer > emailAddress | Alfanumérico | Máx:255 | Correo electrónico del pagador. | Sí |
transaction > payer > merchantPayerId | Alfanumérico | Máx:100 | Identificador del pagador en tu sistema. | No |
transaction > payer > fullName | Alfanumérico | Máx:150 | Nombre del pagador. | Sí |
transaction > payer > billingAddress | Objeto | Dirección de facturación. | Sí | |
transaction > payer > billingAddress > street1 | Alfanumérico | Máx:100 | Línea 1 de la dirección de facturación. | Sí |
transaction > payer > billingAddress > street2 | Alfanumérico | Máx:100 | Línea 2 de la dirección de facturación. | No |
transaction > payer > billingAddress > city | Alfanumérico | Máx:50 | Ciudad de la dirección de facturación. | Sí |
transaction > payer > billingAddress > state | Alfanumérico | Máx:40 | Departamento de la dirección de facturación. | Sí |
transaction > payer > billingAddress > country | Alfanumérico | 2 | País de la dirección de facturación en formato ISO 3166 Alpha-2. | Sí |
transaction > payer > billingAddress > postalCode | Alfanumérico | Máx:20 | Código postal de la dirección de facturación. | No |
transaction > payer > billingAddress > phone | Alfanumérico | Máx:20 | Número de teléfono de la dirección de facturación. | No |
transaction > payer > birthdate | Alfanumérico | Máx:10 | Fecha de nacimiento del pagador. | No |
transaction > payer > contactPhone | Alfanumérico | Máx:20 | Número de teléfono del pagador. | Sí |
transaction > payer > dniNumber | Alfanumérico | Máx:20 | Número de identificación del pagador. | Sí |
transaction > payer > dniType | Alfanumérico | 2 | Tipo de identificación del pagador. Ver tipos de documentos. | No |
transaction > type | Alfanumérico | 32 | Como los pagos en efectivo se realizan en oficinas físicas, la única transacción disponible es AUTHORIZATION_AND_CAPTURE |
Sí |
transaction > paymentMethod | Alfanumérico | 32 | Seleccione un método de pago en efectivo o de referencia bancaria válido. Ver los métodos de pago disponibles para Colombia. | Sí |
transaction > paymentCountry | Alfanumérico | 2 | Asigna CO para Colombia. |
Sí |
transaction > expirationDate | Alfanumérico | 23 | Fecha y hora máxima en la que el cliente puede realizar el pago. Formato YYYY-MM-DDTHH:MM:SS , por ejemplo 2021-06-12T16:07:11.586 . |
No |
transaction > ipAddress | Alfanumérico | Máx:39 | Dirección IP del dispositivo donde el cliente realiza la transacción. | Sí |
Respuesta
Nombre del Campo | Formato | Tamaño | Descripción |
---|---|---|---|
code | Alfanumérico | Código de respuesta de la transacción. Los valores posibles son ERROR y SUCCESS . |
|
error | Alfanumérico | Máx:2048 | Mensaje de error asociado cuando el código de respuesta es ERROR . |
transactionResponse | Objeto | Datos de la respuesta. | |
transactionResponse > orderId | Numérico | Identificador generado o existente de la orden en PayU. | |
transactionResponse > transactionId | Alfanumérico | 36 | Identificador de la transacción en PayU. |
transactionResponse > state | Alfanumérico | Máx:32 | Estado de la transacción. Como el pago se realiza de forma externa, el estado de una transacción exitosa es PENDING |
transactionResponse > paymentNetworkResponseCode | Alfanumérico | Máx:255 | Código de respuesta retornado por la red bancaria. |
transactionResponse > paymentNetworkResponseErrorMessage | Alfanumérico | Máx:255 | Mensaje de error retornado por la red bancaria. |
transactionResponse > trazabilityCode | Alfanumérico | Máx:32 | Código de trazabilidad retornado por la red bancaria. |
transactionResponse > authorizationCode | Alfanumérico | Máx:12 | Código de autorización retornado por la red bancaria. |
transactionResponse > pendingReason | Alfanumérico | Máx:21 | Código de la razón asociada con el estado, como se mencionó en transactionResponse > state , la transacción está en espera del pago. |
transactionResponse > responseCode | Alfanumérico | Máx:64 | Código de respuesta asociado con el estado. En este caso, para una transacción exitosa es PENDING_TRANSACTION_CONFIRMATION . |
transactionResponse > responseMessage | Alfanumérico | Máx:2048 | Mensaje asociado con el código de respuesta. |
transactionResponse > operationDate | Fecha | Fecha de creación de la respuesta en el sistema de PayU. | |
transactionResponse > extraParameters | Objeto | Parámetros adicionales o datos asociados con la respuesta. En JSON, el parámetro extraParameters sigue esta estructura: "extraParameters": { "REFERENCE": "74794" } En XML, el parámetro extraParameters sigue esta estructura: <extraParameters> <entry> <string>REFERENCE</string> <int>74794</int> </entry> </extraParameters> |
|
transactionResponse > additionalInfo | Objeto | Información adicional de la respuesta. Este objeto tiene la misma estructura de transactionResponse.extraParameters . |
Consideraciones
- El parámetro
transaction.expirationDate
no es obligatorio. Si no envías este parámetro, su valor por defecto es siete (7) días luego de la fecha actual.
Si envías una fecha posterior a dicho número de días, PayU ignorará este valor y asignará el valor por defecto. - Para
EFECTY
, la confirmación del pago tarda 15 minutos. ParaBANK_REFERENCED
yOTHERS_CASH
(Su Red), la confirmación es en línea. - Los valores mínimos de máximos para pagos en
EFECTY
yOTHERS_CASH
(Su Red) son:EFECTY
> Min: $20.000 COP - Máx: $6.000.000 COPOTHERS_CASH
(Su Red) > Min: $1.000 COP - Máx: $4.000.000 COP
- El parámetro
transactionResponse.extraParameters
tiene los siguientes parámetros relacionados con la transacción:- EXPIRATION_DATE: fecha máxima en la que el pagador puede realizar el pago.
- REFERENCE: referencia de pago interna generada por PayU.
- URL_PAYMENT_RECEIPT_HTML: recibo de pago en formato HTML. Aquí es donde debe redirigir el pago cuando el pagador selecciona un método de pago en efectivo.
- URL_PAYMENT_RECEIPT_PDF: recibo de pago en formato PDF.
- BANCO_BOGOTA_SERVICE_CODE: código de pago para Banco de Bogotá. Disponible cuando utilices
BANK_REFERENCED
. - BANK_REFERENCED_NAME: nombre de la referencia para Bancolombia. Disponible cuando utilices
BANK_REFERENCED
. - BANCOLOMBIA_SERVICE_CODE: código de pago para Bancolombia. Disponible cuando utilices
BANK_REFERENCED
.
Llamado a la API
Los siguientes son los cuerpos de la petición y la respuesta para este método de pago.
Ejemplo de una Solicitud:
{
"language": "es",
"command": "SUBMIT_TRANSACTION",
"merchant": {
"apiKey": "4Vj8eK4rloUd272L48hsrarnUA",
"apiLogin": "pRRXKOl8ikMmt9u"
},
"transaction": {
"order": {
"accountId": "512321",
"referenceCode": "PRODUCT_TEST_2021-06-23T19:59:43.229Z",
"description": "Payment test description",
"language": "es",
"signature": "1d6c33aed575c4974ad5c0be7c6a1c87",
"notifyUrl": "http://www.payu.com/notify",
"additionalValues": {
"TX_VALUE": {
"value": 65000,
"currency": "COP"
},
"TX_TAX": {
"value": 10378,
"currency": "COP"
},
"TX_TAX_RETURN_BASE": {
"value": 54622,
"currency": "COP"
}
},
"buyer": {
"merchantBuyerId": "1",
"fullName": "First name and second buyer name",
"emailAddress": "buyer_test@test.com",
"contactPhone": "7563126",
"dniNumber": "123456789",
"shippingAddress": {
"street1": "Cr 23 No. 53-50",
"street2": "5555487",
"city": "Bogotá",
"state": "Bogotá D.C.",
"country": "CO",
"postalCode": "000000",
"phone": "7563126"
}
},
"shippingAddress": {
"street1": "Cr 23 No. 53-50",
"street2": "5555487",
"city": "Bogotá",
"state": "Bogotá D.C.",
"country": "CO",
"postalCode": "0000000",
"phone": "7563126"
}
},
"payer": {
"merchantPayerId": "1",
"fullName": "First name and second payer name",
"emailAddress": "payer_test@test.com",
"contactPhone": "7563126",
"dniNumber": "5415668464654",
"billingAddress": {
"street1": "Cr 23 No. 53-50",
"street2": "125544",
"city": "Bogotá",
"state": "Bogotá D.C.",
"country": "CO",
"postalCode": "000000",
"phone": "7563126"
}
},
"type": "AUTHORIZATION_AND_CAPTURE",
"paymentMethod": "EFECTY",
"expirationDate": "2021-06-24T20:58:35.804",
"paymentCountry": "CO",
"ipAddress": "127.0.0.1"
},
"test": false
}
Ejemplo de una Respuesta:
{
"code": "SUCCESS",
"error": null,
"transactionResponse": {
"orderId": 1400449740,
"transactionId": "f3531b6a-3e30-4a8b-8a69-d4a5bd2a3377",
"state": "PENDING",
"paymentNetworkResponseCode": null,
"paymentNetworkResponseErrorMessage": null,
"trazabilityCode": "f3531b6a-3e30-4a8b-8a69-d4a5bd2a3377",
"authorizationCode": null,
"pendingReason": "AWAITING_NOTIFICATION",
"responseCode": "PENDING_TRANSACTION_CONFIRMATION",
"errorCode": null,
"responseMessage": null,
"transactionDate": null,
"transactionTime": null,
"operationDate": 1624463917065,
"referenceQuestionnaire": null,
"extraParameters": {
"EXPIRATION_DATE": 1624568315804,
"REFERENCE": 1400449740,
"URL_PAYMENT_RECEIPT_PDF": "https://sandbox.checkout.payulatam.com/ppp-web-gateway-payu/receipt?vid=1400449740Yf3531b6a3e304a8Y30f3f7b4598eb19",
"URL_PAYMENT_RECEIPT_HTML": "https://sandbox.checkout.payulatam.com/ppp-web-gateway-payu/app/v2?vid=1400449740Yf3531b6a3e304a8Y30f3f7b4598eb19"
},
"additionalInfo": {
"paymentNetwork": "EFECTY",
"rejectionType": "NONE",
"responseNetworkMessage": null,
"travelAgencyAuthorizationCode": null,
"cardType": null,
"transactionType": "AUTHORIZATION_AND_CAPTURE"
}
}
}
Ejemplo de una Solicitud:
<request>
<language>es</language>
<command>SUBMIT_TRANSACTION</command>
<merchant>
<apiKey>4Vj8eK4rloUd272L48hsrarnUA</apiKey>
<apiLogin>pRRXKOl8ikMmt9u</apiLogin>
</merchant>
<transaction>
<order>
<accountId>512321</accountId>
<referenceCode>PRODUCT_TEST_2021-06-23T19:59:43.229Z</referenceCode>
<description>Payment test description</description>
<language>es</language>
<signature>1d6c33aed575c4974ad5c0be7c6a1c87</signature>
<notifyUrl>http://www.payu.com/notify</notifyUrl>
<additionalValues>
<entry>
<string>TX_VALUE</string>
<additionalValue>
<value>65000</value>
<currency>COP</currency>
</additionalValue>
<string>TX_TAX</string>
<additionalValue>
<value>10378</value>
<currency>COP</currency>
</additionalValue>
<string>TX_TAX_RETURN_BASE</string>
<additionalValue>
<value>54622</value>
<currency>COP</currency>
</additionalValue>
</entry>
</additionalValues>
<buyer>
<merchantBuyerId>1</merchantBuyerId>
<fullName>First name and second buyer name</fullName>
<emailAddress>buyer_test@test.com</emailAddress>
<contactPhone>7563126</contactPhone>
<dniNumber>123456789</dniNumber>
<shippingAddress>
<street1>Cr 23 No. 53-50</street1>
<street2>5555487</street2>
<city>Bogotá</city>
<state>Bogotá D.C.</state>
<country>CO</country>
<postalCode>000000</postalCode>
<phone>7563126</phone>
</shippingAddress>
</buyer>
<shippingAddress>
<street1>Cr 23 No. 53-50</street1>
<street2>5555487</street2>
<city>Bogotá</city>
<state>Bogotá D.C.</state>
<country>CO</country>
<postalCode>0000000</postalCode>
<phone>7563126</phone>
</shippingAddress>
</order>
<payer>
<merchantPayerId>1</merchantPayerId>
<fullName>First name and second payer name</fullName>
<emailAddress>payer_test@test.com</emailAddress>
<contactPhone>7563126</contactPhone>
<dniNumber>5415668464654</dniNumber>
<billingAddress>
<street1>Cr 23 No. 53-50</street1>
<street2>5555487</street2>
<city>Bogotá</city>
<state>Bogotá D.C.</state>
<country>CO</country>
<postalCode>000000</postalCode>
<phone>7563126</phone>
</billingAddress>
</payer>
<type>AUTHORIZATION_AND_CAPTURE</type>
<paymentMethod>EFECTY</paymentMethod>
<expirationDate>2021-06-24T20:58:35.804</expirationDate>
<paymentCountry>CO</paymentCountry>
<ipAddress>127.0.0.1</ipAddress>
</transaction>
<isTest>false</isTest>
</request>
Ejemplo de una Respuesta:
<paymentResponse>
<code>SUCCESS</code>
<transactionResponse>
<orderId>1400449797</orderId>
<transactionId>0b41f4d0-4486-4acf-ab5e-d757e35d994d</transactionId>
<state>PENDING</state>
<trazabilityCode>0b41f4d0-4486-4acf-ab5e-d757e35d994d</trazabilityCode>
<pendingReason>AWAITING_NOTIFICATION</pendingReason>
<responseCode>PENDING_TRANSACTION_CONFIRMATION</responseCode>
<operationDate>2021-06-23T11:20:03</operationDate>
<extraParameters>
<entry>
<string>EXPIRATION_DATE</string>
<date>2021-06-30T23:59:59</date>
</entry>
<entry>
<string>REFERENCE</string>
<int>1400449797</int>
</entry>
<entry>
<string>URL_PAYMENT_RECEIPT_PDF</string>
<string>https://sandbox.checkout.payulatam.com/ppp-web-gateway-payu/receipt?vid=1400449797Y0b41f4d044864acY3e5f14fc8ef00e8</string>
</entry>
<entry>
<string>URL_PAYMENT_RECEIPT_HTML</string>
<string>https://sandbox.checkout.payulatam.com/ppp-web-gateway-payu/app/v2?vid=1400449797Y0b41f4d044864acY3e5f14fc8ef00e8</string>
</entry>
</extraParameters>
<additionalInfo>
<paymentNetwork>EFECTY</paymentNetwork>
<rejectionType>NONE</rejectionType>
<transactionType>AUTHORIZATION_AND_CAPTURE</transactionType>
</additionalInfo>
</transactionResponse>
</paymentResponse>
Enviar Transacciones Utilizando Transferencia Bancaria (PSE)
Este método te permite procesar los pagos realizados por tus clientes por medio de transferencia bancaria. En Colombia, las transferencias bancarias se hacen a través de PSE, para integrarte con este método de pago, necesitas crear un formulario de pago siguiendo estos pasos:
- Incluye un botón PSE button haciendo evidente que tu cliente va a utilizar Proveedor de Servicios Electrónicos PSE.
- Puedes utilizar los siguientes nombres:
- Débito desde cuenta corriente/ahorros
- Debito bancario PSE
- PSE
- No utilices ninguno de los siguientes nombres:
- Transferencia bancaria
- Débito de cuenta
- Tarjeta débito
-
Consulta la lista de bancos disponibles para mostrarla al pagador. Para consultar la lista de bancos, consulta este método.
Debes actualizar la lista de bancos en tu sistema por lo menos una vez al día. -
Muestra la lista de bancos tal y como se muestra a continuación:
Cuando el pagador seleccione un banco, debes enviar al parámetro pseCode
seleccionado en el extra parámetro FINANCIAL_INSTITUTION_CODE
de la petición.
- Muestra una lista para que el pagador escoja si es una persona Natural (N) o Jurídica (J). Dependiendo de lo que escoja, debes enviar el valor en el extra parámetro
USER_TYPE
de la petición. La lista debe verse así:
Nota
Este campo no es obligatorio para PSE Avanza.- Muestra una lista para que el pagador escoja su tipo de identificación. Debes enviar el código ISO del valor seleccionado en el extra parámetro
PSE_REFERENCE2
de la petición. La lista debe verse así:
La lista de documentos disponibles es:
ISO | Descripción |
---|---|
CC | Cédula de ciudadanía. |
CE | Cédula de extranjería. |
NIT | Número de Identificación Tributaria (Empresas). |
TI | Tarjeta de identidad. |
PP | Pasaporte. |
RC | Registro civil de nacimiento. |
DE | Documento de identificación extranjero. |
- Debes enviar el número de identificación del pagador en el extra parámetro
PSE_REFERENCE3
de la petición.
Parámetros para la Solicitud y la Respuesta
Solicitud
Nombre del Campo | Formato | Tamaño | Descripción | Obligatorio |
---|---|---|---|---|
language | Alfanumérico | 2 | Idioma utilizado en la petición, este idioma se utiliza para mostrar los mensajes de error generados. Ver idiomas soportados. | Sí |
command | Alfanumérico | Máx:32 | Asigna SUBMIT_TRANSACTION . |
Sí |
test (JSON) isTest (XML) |
Booleano | Asigna true si la petición es en modo pruebas. Si no, asigna false . |
Sí | |
merchant | Objeto | Este objeto tiene los datos de autenticación. | Sí | |
merchant > apiLogin | Alfanumérico | Min:12 Máx:32 | Usuario o login entregado por PayU. Cómo obtengo mi API Login | Sí |
merchant > apiKey | Alfanumérico | Min:6 Máx:32 | Contraseña entregada por PayU. Cómo obtengo mi API Key | Sí |
transaction | Objeto | Este objeto tiene los datos de la transacción. | Sí | |
transaction > order | Objeto | Este objeto tiene los datos de la orden. | Sí | |
transaction > order > accountId | Numérico | Identificador de tu cuenta. | Sí | |
transaction > order > referenceCode | Alfanumérico | Min:1 Máx:255 | Representa el identificador de la orden en tu sistema. | Sí |
transaction > order > description | Alfanumérico | Min:1 Máx:255 | Descripción de la orden. | Sí |
transaction > order > language | Alfanumérico | 2 | Idioma utilizado en los correos electrónicos enviados al comprador y al vendedor. | Sí |
transaction > order > notifyUrl | Alfanumérico | Máx:2048 | URL de confirmación de la orden. | No |
transaction > order > partnerId | Alfanumérico | Máx:255 | ID de aliado dentro de PayUID de aliado dentro de PayU. | No |
transaction > order > signature | Alfanumérico | Máx:255 | Firma asociada al formulario. Para más información, consulta Firma de autenticación. | Sí |
transaction > order > shippingAddress | Objeto | Dirección de envío. | No | |
transaction > order > shippingAddress > street1 | Alfanumérico | Máx:100 | Línea de dirección 1. | No |
transaction > order > shippingAddress > street2 | Alfanumérico | Máx:100 | Línea de dirección 2. | No |
transaction > order > shippingAddress > city | Alfanumérico | Máx:50 | Ciudad de la dirección. | No |
transaction > order > shippingAddress > state | Alfanumérico | Máx:40 | Departamento de la dirección. | No |
transaction > order > shippingAddress > country | Alfanumérico | 2 | País de la dirección. | No |
transaction > order > shippingAddress > postalCode | Alfanumérico | Máx:8 | Código postal de la dirección. | No |
transaction > order > shippingAddress > phone | Alfanumérico | Máx:11 | Número de teléfono asociado con la dirección. | No |
transaction > order > buyer | Objeto | Información del comprador. | Sí | |
transaction > order > buyer > merchantBuyerId | Alfanumérico | Máx:100 | Identificador del comprador en tu sistema. | No |
transaction > order > buyer > fullName | Alfanumérico | Máx:150 | Nombre del comprador. | Sí |
transaction > order > buyer > emailAddress | Alfanumérico | Máx:255 | Correo electrónico del comprador. | Sí |
transaction > order > buyer > contactPhone | Alfanumérico | Máx:20 | Número de teléfono del comprador. | Sí |
transaction > order > buyer > dniNumber | Alfanumérico | Máx:20 | Número de identificación del comprador. | Sí |
transaction > order > buyer > shippingAddress | Objeto | Dirección de envío del comprador. | Sí | |
transaction > order > buyer > shippingAddress > street1 | Alfanumérico | Máx:150 | Línea de dirección 1 del comprador. | Sí |
transaction > order > buyer > shippingAddress > city | Alfanumérico | Máx:50 | Ciudad de la dirección del comprador. | Sí |
transaction > order > buyer > shippingAddress > state | Alfanumérico | Máx:40 | Departamento de la dirección del comprador. | Sí |
transaction > order > buyer > shippingAddress > country | Alfanumérico | 2 | País de la dirección del comprador en formato ISO 3166 alpha-2. | Sí |
transaction > order > buyer > shippingAddress > postalCode | Numérico | Máx:20 | Código postal de la dirección del comprador. | Sí |
transaction > order > buyer > shippingAddress > phone | Numérico | Máx:20 | Número de teléfono de la dirección del comprador. | Sí |
transaction > order > additionalValues > | Objeto | 64 | Monto de la orden y sus valores asociados. | Sí |
transaction > order > additionalValues > TX_VALUE | Alfanumérico | 64 | Monto de la transacción. | Sí |
transaction > order > additionalValues > TX_VALUE > value | Numérico | 12, 2 | Especifica el monto de la transacción, este valor no puede tener decimales. | Sí |
transaction > order > additionalValues > TX_VALUE > currency | Alfanumérico | 3 | Código ISO de la moneda. Ver monedas aceptadas. | Sí |
transaction > payer | Objeto | Información del pagador. | Sí | |
transaction > payer > emailAddress | Alfanumérico | Máx:255 | Correo electrónico del pagador. | Sí |
transaction > payer > merchantPayerId | Alfanumérico | Máx:100 | Identificador del pagador en tu sistema. | No |
transaction > payer > fullName | Alfanumérico | Máx:150 | Nombre del pagador. | Sí |
transaction > payer > billingAddress | Objeto | Dirección de facturación. | Sí | |
transaction > payer > billingAddress > street1 | Alfanumérico | Máx:100 | Línea 1 de la dirección de facturación. | Sí |
transaction > payer > billingAddress > street2 | Alfanumérico | Máx:100 | Línea 2 de la dirección de facturación. | No |
transaction > payer > billingAddress > city | Alfanumérico | Máx:50 | Ciudad de la dirección de facturación. | Sí |
transaction > payer > billingAddress > state | Alfanumérico | Máx:40 | Departamento de la dirección de facturación. | No |
transaction > payer > billingAddress > country | Alfanumérico | 2 | País de la dirección de facturación en formato ISO 3166 Alpha-2. | Sí |
transaction > payer > billingAddress > postalCode | Alfanumérico | Máx:20 | Código postal de la dirección de facturación. | No |
transaction > payer > billingAddress > phone | Alfanumérico | Máx:20 | Número de teléfono de la dirección de facturación. | No |
transaction > payer > birthdate | Alfanumérico | Máx:10 | Fecha de nacimiento del pagador. | No |
transaction > payer > contactPhone | Alfanumérico | Máx:20 | Número de teléfono del pagador. | Sí |
transaction > payer > dniNumber | Alfanumérico | Máx:20 | Número de identificación del pagador. | Sí |
transaction > payer > dniType | Alfanumérico | 2 | Tipo de identificación del pagador. Ver tipos de documentos. | Sí |
transaction > type | Alfanumérico | 32 | Como estos pagos se realizan en la página web de PSE, la única transacción disponible es AUTHORIZATION_AND_CAPTURE |
Sí |
transaction > paymentMethod | Alfanumérico | 32 | Selecciona un método de pago por transferencia bancaria válido. Ver los métodos de pago disponibles para Colombia. | Sí |
transaction > paymentCountry | Alfanumérico | 2 | Asigna CO para Colombia. |
Sí |
transaction > deviceSessionId | Alfanumérico | Máx:255 | Identificador de la sesión del dispositivo donde el cliente realiza la transacción. Para más información, consulta este artículo. | Sí |
transaction > ipAddress | Alfanumérico | Máx:39 | Dirección IP del dispositivo donde el cliente realiza la transacción. | Sí |
transaction > cookie | Alfanumérico | Máx:255 | Cookie almacenada por el dispositivo donde el cliente realiza la transacción. | Sí |
transaction > userAgent | Alfanumérico | Máx:1024 | User agent del navegador donde el cliente realiza la transacción. | Sí |
transaction > extraParameters | Objeto | Parámetros adicionales o datos asociados a la petición. Para pagos por transferencia bancaria, esta es la página de respuesta de tu comercio. En JSON, el parámetro extraParameters se asigna como: "extraParameters": { "PSE_REFERENCE3": "123456789" } En XML, el parámetro extraParameters se asigna como: <extraParameters> <entry> <string>PSE_REFERENCE3</string> <string>123456789</string> </entry> </extraParameters> |
No |
Respuesta
Nombre del Campo | Formato | Tamaño | Descripción |
---|---|---|---|
code | Alfanumérico | Código de respuesta de la transacción. Los valores posibles son ERROR y SUCCESS . |
|
error | Alfanumérico | Máx:2048 | Mensaje de error asociado cuando el código de respuesta es ERROR . |
transactionResponse | Objeto | Datos de la respuesta. | |
transactionResponse > orderId | Numérico | Identificador generado o existente de la orden en PayU. | |
transactionResponse > transactionId | Alfanumérico | 36 | Identificador de la transacción en PayU. |
transactionResponse > state | Alfanumérico | Máx:32 | Estado de la transacción. Como el pago se realiza de forma externa, el estado de una transacción exitosa es PENDING |
transactionResponse > paymentNetworkResponseCode | Alfanumérico | Máx:255 | Código de respuesta retornado por la red bancaria. |
transactionResponse > paymentNetworkResponseErrorMessage | Alfanumérico | Máx:255 | Mensaje de error retornado por la red bancaria. |
transactionResponse > trazabilityCode | Alfanumérico | Máx:32 | Código de trazabilidad retornado por la red bancaria. |
transactionResponse > authorizationCode | Alfanumérico | Máx:12 | Código de autorización retornado por la red bancaria. |
transactionResponse > pendingReason | Alfanumérico | Máx:21 | Código de la razón asociada con el estado, como se mencionó en transactionResponse > state , la transacción está en espera del pago. |
transactionResponse > responseCode | Alfanumérico | Máx:64 | Código de respuesta asociado con el estado. En este caso, para una transacción exitosa es PENDING_TRANSACTION_CONFIRMATION . |
transactionResponse > responseMessage | Alfanumérico | Máx:2048 | Mensaje asociado con el código de respuesta. |
transactionResponse > operationDate | Fecha | Fecha de creación de la respuesta en el sistema de PayU. | |
transactionResponse > extraParameters | Objeto | Parámetros adicionales o datos asociados con la respuesta. En JSON, el parámetro extraParameters sigue esta estructura: "extraParameters": { "BANK_URL": "xxxx" } En XML, el parámetro extraParameters sigue esta estructura: <extraParameters> <entry> <string>BANK_URL</string> <string>xxxx</string> </entry> </extraParameters> |
Consideraciones
- Para probar las transferencias bancarias PSE en el ambiente de Sandbox de PayU, consulta la Guía de pruebas de PSE (PDF).
- Todos los valores de pago deben estar formateados en miles sin excepción (p.ej., 1,200.00 o 1,200).
- Si la solicitud de pago es exitosa, el estado de la transacción es pendiente (
PENDING
) y el responseCode esPENDING_TRANSACTION_CONFIRMATION
; esto es debido a que el pagador es redirigido al naco seleccionado para completar el pago; debes redirigir al pagador a la URL retornada en el extra parámetroBANK_URL
. - La URL retornada en el extra parámetro
BANK_URL
se configura en el Modulo PayU y debe mostrar la siguiente información:
Los parámetros que empiezan con el símbolo $ se envían víaGET
. - Una vez el cliente hace clic en el botón de pago, debe desactivarse para evitar enviar una nueva solicitud sobre el mismo pago.
- No muestres la página del banco en contenedores (frames, panel, iframes, etc). El proceso de pago debe ser fluido. Además, evita abrir la página del banco en una nueva pestaña o en una nueva ventana del navegador. Si necesitas utilizar una nueva pestaña o ventana, bloquea la página de origen para evitar enviar una nueva solicitud sobre el mismo pago.
- Debes agregar a la página de respuesta las opciones para reintentar el pago, finalizar la transacción e imprimir el recibo.
- Los estados mostrados en la página de respuesta pueden ser los siguientes:
polTransactionState | polResponseCode | Estado |
---|---|---|
4 | 1 | Transacción aprobada |
6 | 5 | Transacción fallida |
6 | 4 | Transacción rechazada |
12 o 14 | 9994 o 25 | Transacción pendiente, por favor revisar si el débito fue realizado en el banco. |
Llamado a la API
Los siguientes son los cuerpos de la petición y la respuesta para este método de pago.
Ejemplo de una Solicitud:
{
"language": "es",
"command": "SUBMIT_TRANSACTION",
"merchant": {
"apiKey": "4Vj8eK4rloUd272L48hsrarnUA",
"apiLogin": "pRRXKOl8ikMmt9u"
},
"transaction": {
"order": {
"accountId": "512321",
"referenceCode": "PRODUCT_TEST_2021-06-23T19:59:43.229Z",
"description": "Payment test description",
"language": "es",
"signature": "1d6c33aed575c4974ad5c0be7c6a1c87",
"notifyUrl": "http://www.payu.com/notify",
"additionalValues": {
"TX_VALUE": {
"value": 65000,
"currency": "COP"
},
"TX_TAX": {
"value": 10378,
"currency": "COP"
},
"TX_TAX_RETURN_BASE": {
"value": 54622,
"currency": "COP"
}
},
"buyer": {
"merchantBuyerId": "1",
"fullName": "First name and second buyer name",
"emailAddress": "buyer_test@test.com",
"contactPhone": "7563126",
"dniNumber": "123456789",
"shippingAddress": {
"street1": "Cr 23 No. 53-50",
"street2": "5555487",
"city": "Bogotá",
"state": "Bogotá D.C.",
"country": "CO",
"postalCode": "000000",
"phone": "7563126"
}
},
"shippingAddress": {
"street1": "Cr 23 No. 53-50",
"street2": "5555487",
"city": "Bogotá",
"state": "Bogotá D.C.",
"country": "CO",
"postalCode": "0000000",
"phone": "7563126"
}
},
"payer": {
"merchantPayerId": "1",
"fullName": "First name and second payer name",
"emailAddress": "payer_test@test.com",
"contactPhone": "7563126",
"dniNumber": "5415668464654",
"billingAddress": {
"street1": "Cr 23 No. 53-50",
"street2": "125544",
"city": "Bogotá",
"state": "Bogotá D.C.",
"country": "CO",
"postalCode": "000000",
"phone": "7563126"
}
},
"extraParameters": {
"RESPONSE_URL": "http://www.payu.com/response",
"PSE_REFERENCE1": "127.0.0.1",
"FINANCIAL_INSTITUTION_CODE": "1022",
"USER_TYPE": "N",
"PSE_REFERENCE2": "CC",
"PSE_REFERENCE3": "123456789"
},
"type": "AUTHORIZATION_AND_CAPTURE",
"paymentMethod": "PSE",
"paymentCountry": "CO",
"deviceSessionId": "vghs6tvkcle931686k1900o6e1",
"ipAddress": "127.0.0.1",
"cookie": "pt1t38347bs6jc9ruv2ecpv7o2",
"userAgent": "Mozilla/5.0 (Windows NT 5.1; rv:18.0) Gecko/20100101 Firefox/18.0"
},
"test": false
}
Ejemplo de una Respuesta:
{
"code": "SUCCESS",
"error": null,
"transactionResponse": {
"orderId": 1400449959,
"transactionId": "4d49e544-e23f-474e-92b1-59357e0e85e8",
"state": "PENDING",
"paymentNetworkResponseCode": null,
"paymentNetworkResponseErrorMessage": null,
"trazabilityCode": "2204682",
"authorizationCode": null,
"pendingReason": "AWAITING_NOTIFICATION",
"responseCode": "PENDING_TRANSACTION_CONFIRMATION",
"errorCode": null,
"responseMessage": null,
"transactionDate": null,
"transactionTime": null,
"operationDate": 1624471332753,
"referenceQuestionnaire": null,
"extraParameters": {
"TRANSACTION_CYCLE": "1",
"BANK_URL": "https://sandbox.api.payulatam.com/payments-api/pse-caller?enc=aHR0cHM6Ly9yZWdpc3Ryby5kZXNhcnJvbGxvLnBzZS5jb20uY28vUFNFVXNlclJlZ2lzdGVyL1N0YXJ0VHJhbnNhY3Rpb24uYXNweD9lbmM9dG5QY0pITUtsU25tUnBITThmQWJ1NHVWTmt6YW92Q0tWR2g0b0IxbEpkOXNEeGlSU2E5cXl1Uk5TUW5mbkxSdiMjcGF5ZXJfdGVzdEB0ZXN0LmNvbSMjMTIzNDU2Nzg5IyNDQw=="
},
"additionalInfo": {
"paymentNetwork": "PSE",
"rejectionType": "NONE",
"responseNetworkMessage": null,
"travelAgencyAuthorizationCode": null,
"cardType": null,
"transactionType": "AUTHORIZATION_AND_CAPTURE"
}
}
}
Ejemplo de una Solicitud:
<request>
<language>es</language>
<command>SUBMIT_TRANSACTION</command>
<merchant>
<apiKey>4Vj8eK4rloUd272L48hsrarnUA</apiKey>
<apiLogin>pRRXKOl8ikMmt9u</apiLogin>
</merchant>
<transaction>
<order>
<accountId>512321</accountId>
<referenceCode>PRODUCT_TEST_2021-06-23T19:59:43.229Z</referenceCode>
<description>Payment test description</description>
<language>es</language>
<signature>1d6c33aed575c4974ad5c0be7c6a1c87</signature>
<notifyUrl>http://www.payu.com/notify</notifyUrl>
<additionalValues>
<entry>
<string>TX_VALUE</string>
<additionalValue>
<value>65000</value>
<currency>COP</currency>
</additionalValue>
<string>TX_TAX</string>
<additionalValue>
<value>10378</value>
<currency>COP</currency>
</additionalValue>
<string>TX_TAX_RETURN_BASE</string>
<additionalValue>
<value>54622</value>
<currency>COP</currency>
</additionalValue>
</entry>
</additionalValues>
<buyer>
<merchantBuyerId>1</merchantBuyerId>
<fullName>First name and second buyer name</fullName>
<emailAddress>buyer_test@test.com</emailAddress>
<contactPhone>7563126</contactPhone>
<dniNumber>123456789</dniNumber>
<shippingAddress>
<street1>Cr 23 No. 53-50</street1>
<street2>5555487</street2>
<city>Bogotá</city>
<state>Bogotá D.C.</state>
<country>CO</country>
<postalCode>000000</postalCode>
<phone>7563126</phone>
</shippingAddress>
</buyer>
<shippingAddress>
<street1>Cr 23 No. 53-50</street1>
<street2>5555487</street2>
<city>Bogotá</city>
<state>Bogotá D.C.</state>
<country>CO</country>
<postalCode>0000000</postalCode>
<phone>7563126</phone>
</shippingAddress>
</order>
<payer>
<merchantPayerId>1</merchantPayerId>
<fullName>First name and second payer name</fullName>
<emailAddress>payer_test@test.com</emailAddress>
<contactPhone>7563126</contactPhone>
<dniNumber>5415668464654</dniNumber>
<billingAddress>
<street1>Cr 23 No. 53-50</street1>
<street2>5555487</street2>
<city>Bogotá</city>
<state>Bogotá D.C.</state>
<country>CO</country>
<postalCode>000000</postalCode>
<phone>7563126</phone>
</billingAddress>
</payer>
<extraParameters>
<entry>
<string>RESPONSE_URL</string>
<string>http://www.payu.com/response</string>
</entry>
<entry>
<string>PSE_REFERENCE1</string>
<string>127.0.0.1</string>
</entry>
<entry>
<string>FINANCIAL_INSTITUTION_CODE</string>
<string>1022</string>
</entry>
<entry>
<string>USER_TYPE</string>
<string>N</string>
</entry>
<entry>
<string>PSE_REFERENCE2</string>
<string>CC</string>
</entry>
<entry>
<string>PSE_REFERENCE3</string>
<string>123456789</string>
</entry>
</extraParameters>
<type>AUTHORIZATION_AND_CAPTURE</type>
<paymentMethod>PSE</paymentMethod>
<paymentCountry>CO</paymentCountry>
<deviceSessionId>vghs6tvkcle931686k1900o6e1</deviceSessionId>
<ipAddress>127.0.0.1</ipAddress>
<cookie>pt1t38347bs6jc9ruv2ecpv7o2</cookie>
<userAgent>Mozilla/5.0 (Windows NT 5.1; rv:18.0) Gecko/20100101 Firefox/18.0</userAgent>
</transaction>
<isTest>false</isTest>
</request>
Ejemplo de una Respuesta:
<paymentResponse>
<code>SUCCESS</code>
<transactionResponse>
<orderId>1400449974</orderId>
<transactionId>6c99b11b-fe6f-4270-8c9a-dfc35b7c7e34</transactionId>
<state>PENDING</state>
<trazabilityCode>2204695</trazabilityCode>
<pendingReason>AWAITING_NOTIFICATION</pendingReason>
<responseCode>PENDING_TRANSACTION_CONFIRMATION</responseCode>
<operationDate>2021-06-23T13:12:14</operationDate>
<extraParameters>
<entry>
<string>TRANSACTION_CYCLE</string>
<string>1</string>
</entry>
<entry>
<string>BANK_URL</string>
<string>https://sandbox.api.payulatam.com/payments-api/pse-caller?enc=aHR0cHM6Ly9yZWdpc3Ryby5kZXNhcnJvbGxvLnBzZS5jb20uY28vUFNFVXNlclJlZ2lzdGVyL1N0YXJ0VHJhbnNhY3Rpb24uYXNweD9lbmM9dG5QY0pITUtsU25tUnBITThmQWJ1NHVWTmt6YW92Q0tWR2g0b0IxbEpkJTJmSGhQT0oyU2t4UnRmOEdLTk5tcGNYIyNwYXllcl90ZXN0QHRlc3QuY29tIyMxMjM0NTY3ODkjI0ND</string>
</entry>
</extraParameters>
<additionalInfo>
<paymentNetwork>PSE</paymentNetwork>
<rejectionType>NONE</rejectionType>
<transactionType>AUTHORIZATION_AND_CAPTURE</transactionType>
</additionalInfo>
</transactionResponse>
</paymentResponse>
Enviar Transacciones Utilizando Google Pay
Google Pay es una billetera digital que permite realizar pagos con tarjeta de forma sencilla y rápida, sin necesidad de introducir los datos de la tarjeta en cada pago. Los datos de la tarjeta son almacenados de forma segura por Google. Este método de pago está disponible para todos los dispositivos (teléfonos móviles y ordenadores), independientemente del sistema operativo y en casi todos los navegadores web.
En caso de utilizar Google Pay, los comercios deben adherirse a la Política de uso aceptable de las API de Google Pay y aceptar los términos que definen las Condiciones de servicio de las API de Google Pay.
Nota
La descripción que figura a continuación se aplica a la prestación de este servicio directamente mostrando la ventana emergente de Google Pay en el sitio web del receptor del pago (e-commerce).Si deseas ofrecer este método de pago a través de PayU Web-Checkout, no se requiere ningún esfuerzo de integración adicional. Contacta a tu gerente de cuenta para realizar la solicitud de activación. Si deseas probar el método de pago antes de la activación, puedes seguir las instrucciones aquí.
Ten en cuenta que si tu integración con PayU es API, debes realizar los ajustes que se describen en esta sección para procesar transacciones de Google Pay:
Integración API del Medio de Pago
Para integrar el sitio web con el monedero Google Pay, procede según las instrucciones que figuran en este sitio web:
Definiciones de PayU para la Integración API del Medio de Pago
A continuación encontrarás información relevante que debes considerar durante la integración del medio de pago para que tus pagos sean procesados por PayU:
-
Solicitar un Payment Token para PayU
Google encripta la información de la tarjeta seleccionada por el pagador para su procesamiento seguro, esto es realizado por un proveedor de pagos. El parámetro gateway
en el script debe tener el valor constante de payulatam
, y el gatewayMerchantId
debe incluir tu número de cuenta PayU. A continuación un ejemplo:
const tokenizationSpecification = {
type: 'PAYMENT_GATEWAY',
parameters: {
'gateway': 'payulatam',
'gatewayMerchantId': 'YOUR_ACCOUNT_ID '
}
};
-
Medios de Pago Soportados
PayU procesa pagos de Google Pay para tarjetas Mastercard y Visa. Para configurar tu script de Google, utiliza estos ajustes:
const allowedCardNetworks = ["MASTERCARD", "VISA", "ELECTRON", "MAESTRO"];
const allowedCardAuthMethods = ["PAN_ONLY"];
Nota
La disponibilidad de los métodos de pago depende de tu configuración en PayU.Google devolverá un objeto PaymentData
, y el campo paymentMethodData.tokenizationData.token
contendrá un token de Google Pay encriptado de forma segura (una cadena de caracteres).
A continuación, un ejemplo de un token de Google Pay:
{
"protocolVersion":"ECv2",
"signature":"MEUCIG39tbaQPwJe28U+UMsJmxUBUWSkwlOv9Ibohacer+CoAiEA8Wuq3lLUCwLQ06D2kErxaMg3b/oLDFbd2gcFze1zDqU\u003d",
"intermediateSigningKey":{
"signedKey": "{\"keyExpiration\":\"1542394027316\",\"keyValue\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/1+3HBVSbdv+j7NaArdgMyoSAM43yRydzqdg1TxodSzA96Dj4Mc1EiKroxxunavVIvdxGnJeFViTzFvzFRxyCw\\u003d\\u003d\"}",
"signatures": ["MEYCIQDcXCoB4fYJF3EolxrE2zB+7THZCfKA7cWxSztKceXTCgIhAN/d5eBgx/1A6qKBdH0IS7/aQ7dO4MuEt26OrLCUxZnl"]
},
"signedMessage":"{\"tag\":\"TjkIKzIOvCrFvjf7/aeeL8/FZJ3tigaNnerag68hIaw\\u003d\",\"ephemeralPublicKey\":\"BLJoTmxP2z7M2N6JmaN786aJcT/L/OJfuJKQdIXcceuBBZ00sf5nm2+snxAJxeJ4HYFTdNH4MOJrH58GNDJ9lJw\\u003d\",\"encryptedMessage\":\"mleAf23XkKjj\"}"
}
Procesar Transacciones de Google Pay en PayU
La función principal de Google Pay como billetera digital es almacenar tarjetas de crédito para facilitar el procesamiento de pagos. Con eso en mente, para el procesamiento de transacciones de Google Pay en PayU, la lógica a aplicar será la misma que para tarjetas de crédito, excepto por las siguientes particularidades:
- Si estás procesando transacciones de tus clientes con Google Pay, debes configurar la información de la billetera digital en el parámetro
transaction.digitalWallet
. - Dentro del parámetro
transaction.digitalWallet
utilizaGOOGLE_PAY
para el campotransaction.digitalWallet.type
y envía el Google Pay token en el campotransaction.digitalWallet.message
. - Ten en cuenta que dentro del parámetro
transaction.creditcard
, para las transacciones de Google Pay, siempre debes enviar un valor válido para el campotransaction.creditcard.name
. Otros campos de este parámetro no son necesarios ya que Google Pay los entrega dentro del Google Pay token. - Contacta a tu gerente de cuenta para realizar las activaciones necesarias para procesar sin cvv ya que este medio de pago lo requiere.
Probar el Método de Pago
Esta sección está diseñada para guiar a los usuarios sobre el proceso de prueba y familiarización con el método de pago Google Pay en PayU.
Requisitos previos (aplica para la integración API y Web Checkout):
- Asegúrate de haber iniciado sesión en el explorador con la cuenta de Gmail con la que vas a realizar la prueba.
- Únete al grupo de Google en el que estarán disponibles las tarjetas de prueba para PayU. El grupo se encuentra en la siguiente documentación de Google.
Pruebas para Comercios con Integración API:
- Una vez realizados los cambios indicados en los apartados anteriores, utiliza el Archivo Simulador de Token para simular una transacción y obtener un token de Google Pay de muestra. El simulador puede visualizarse aquí.
Nota
Para garantizar un procesamiento correcto, al momento de seleccionar las tarjetas para el pago, utiliza tarjetas cuyo nombre no empiecen por “Test”.- Utiliza la información del token de Google Pay de muestra para completar el request de PayU. Envíala a PayU para obtener prueba de una transacción aprobada. Si tienes algún resultado no aprobado, revisa la documentación de los pasos anteriores.
Pruebas para Comercios con Integración Web Checkout:
Utiliza el Web Checkout en ambiente de prueba para simular una transacción.
Nota
- Para garantizar un procesamiento correcto, al momento de seleccionar las tarjetas para el pago, utiliza tarjetas cuyo nombre no empiecen por “Test”.
- Usa las credenciales de prueba de Colombia para esta prueba. Consulta las credenciales aquí.
Llamado a la API
Los siguientes son ejemplos de los cuerpos de la petición y la respuesta de este método de pago.
Ejemplo de una Solicitud:
{
"language": "es",
"command": "SUBMIT_TRANSACTION",
"merchant": {
"apiKey": "012345678901",
"apiLogin": "012345678901"
},
"transaction": {
"order": {
"accountId": "9",
"language": "es",
"description" : "test",
"signature": "{{payu_signature}}",
"referenceCode": "{{payu_ref_code}}",
"additionalValues": {
"TX_VALUE": {
"value": 100,
"currency": "ARS"
}
}
},
"payer": {
"merchantPayerId": "1",
"fullName": "First name and second payer name",
"emailAddress": "payer.name@payu.com",
"contactPhone": "7563126",
"dniNumber": "5415668464654",
"dniType": null
},
"creditCard": {
"name": "Kevin Pelaez"
},
"digitalWallet": {
"type" : "GOOGLE_PAY",
"message" : "{\"signature\":\"MEUCIQCSsfd63AcUEjNRnpgqEm/B6cm8Fna1ty+HatD4Hqp/bgIgHCtrwKhvO1e5K3vDfE6FxqSaRkP9PHuY63aQ35gV5lk\\u003d\",\"intermediateSigningKey\":{\"signedKey\":\"{\\\"keyValue\\\":\\\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAExtzNORa//EJphgvdpUTsDElAg26mYXxNqs8/UX7DDSDCojJ/2+GCf8CVmClyRM+bukNsYM82pwkjZqOe5AOxUg\\\\u003d\\\\u003d\\\",\\\"keyExpiration\\\":\\\"1695147545256\\\"}\",\"signatures\":[\"MEQCIAxxj2BnQzTyTXLzjJ08JG+s1qdmX1XlOxzFmq1THTJ4AiAe7anOO7l+KZ1nkbGBufXBuQGInFMGR70+I33EyCL5GQ\\u003d\\u003d\"]},\"protocolVersion\":\"ECv2\",\"signedMessage\":\"{\\\"encryptedMessage\\\":\\\"GNKqqZ7bx6btPTkZPjpvi1IHKS79JrdtOI3bRZA6G5936ofXqD/m3f/YpuF4mlADkHIhmBYVq6hzyA0B4M1cjht7BFsQhE5fqA+6PgbPY6eAqaH4PPQGt/3VM9uVxmtcJK6k2JL8N7CCF85vx6s+LASH4wwO3Sk2NIlPB0B2QHdfdrOpwo5r6T3xYJAq6wHqFNrdOLq5NTodDqEaXP3y/kB1eIMrwcz5cPGJAPSmL2RebBofsl5QFJdVUmeXXSS7nQ4aeQpuqCcoI/NqLb5r3bEaq33pbglfv2YyyHK1ERlET3TsTR+rGBcJXv9JLh2ZhdoUJYDkDqP+f+65Fn3/xRppfXbwNCrCnO+DvVsgZTFp7cj69WA6uWBeYM4HejKa1BUpt8TfP132FjaUSnwSlykkJhHK5svQFxf2rpJGFdmz4d06iLREy/N+27pyE9eJeJohO2JJXaVTQgICmVNvGefR4KaNELpxeNAzuhKQsTZBYQY179zveNg4EQqai3CxKIr09G/MwpMufTWEBm2rsk6HqTh1Qz+d72aph3U3bRQVhFj3ZE2ZsIXIc7dwCLGV\\\",\\\"ephemeralPublicKey\\\":\\\"BNgz4XETGJgixJYrYHLXjQrRaZ9i2q2Z2uGTOFNuVY5ZiCFiSJeiP0l+dt+Y0r8I29l5F2Lwd+e8torE3vSMm9g\\\\u003d\\\",\\\"tag\\\":\\\"NUJPbcTwbfWBC3ByHzcwQz/bEsbt80vh1ahXoRY4xAQ\\\\u003d\\\"}\"}"
},
"extraParameters": {
"INSTALLMENTS_NUMBER": 1
},
"type": "AUTHORIZATION_AND_CAPTURE",
"paymentMethod": "MASTERCARD",
"paymentCountry": "BR"
},
"test": false
}
Ejemplo de una Respuesta:
{
"code": "SUCCESS",
"error": null,
"transactionResponse": {
"orderId": 1400437001,
"transactionId": "f0f8c441-43e8-490a-b4f2-c14d2c403175",
"state": "APPROVED",
"paymentNetworkResponseCode": "6",
"paymentNetworkResponseErrorMessage": null,
"trazabilityCode": "282856",
"authorizationCode": "MOCK-CIELO-1624047897817",
"pendingReason": null,
"responseCode": "APPROVED",
"errorCode": null,
"responseMessage": null,
"transactionDate": null,
"transactionTime": null,
"operationDate": 1624029898077,
"referenceQuestionnaire": null,
"extraParameters": {
"BANK_REFERENCED_CODE": "CREDIT",
"CIELO_TID": "1006993069000509C28A"
},
"additionalInfo": null
}
}
Ejemplo de una Solicitud:
<request>
<language>es</language>
<command>SUBMIT_TRANSACTION</command>
<merchant>
<apiKey>012345678901</apiKey>
<apiLogin>012345678901</apiLogin>
</merchant>
<transaction>
<order>
<accountId>9</accountId>
<language>es</language>
<description>test</description>
<signature>{{payu_signature}}</signature>
<referenceCode>{{payu_ref_code}}</referenceCode>
<additionalValues>
<TX_VALUE>
<value>100</value>
<currency>ARS</currency>
</TX_VALUE>
</additionalValues>
</order>
<payer>
<merchantPayerId>1</merchantPayerId>
<fullName>First name and second payer name</fullName>
<emailAddress>payer.name@payu.com</emailAddress>
<contactPhone>7563126</contactPhone>
<dniNumber>5415668464654</dniNumber>
<dniType></dniType>
</payer>
<creditCard>
<name>Kevin Pelaez</name>
</creditCard>
<digitalWallet>
<type>GOOGLE_PAY</type>
<message>{"signature":"MEUCIQCSsfd63AcUEjNRnpgqEm/B6cm8Fna1ty+HatD4Hqp/bgIgHCtrwKhvO1e5K3vDfE6FxqSaRkP9PHuY63aQ35gV5lk\u003d","intermediateSigningKey":{"signedKey":"{\"keyValue\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAExtzNORa//EJphgvdpUTsDElAg26mYXxNqs8/UX7DDSDCojJ/2+GCf8CVmClyRM+bukNsYM82pwkjZqOe5AOxUg\\u003d\\u003d\",\"keyExpiration\":\"1695147545256\"}","signatures":["MEQCIAxxj2BnQzTyTXLzjJ08JG+s1qdmX1XlOxzFmq1THTJ4AiAe7anOO7l+KZ1nkbGBufXBuQGInFMGR70+I33EyCL5GQ\u003d\u003d"]},"protocolVersion":"ECv2","signedMessage":"{\"encryptedMessage\":\"GNKqqZ7bx6btPTkZPjpvi1IHKS79JrdtOI3bRZA6G5936ofXqD/m3f/YpuF4mlADkHIhmBYVq6hzyA0B4M1cjht7BFsQhE5fqA+6PgbPY6eAqaH4PPQGt/3VM9uVxmtcJK6k2JL8N7CCF85vx6s+LASH4wwO3Sk2NIlPB0B2QHdfdrOpwo5r6T3xYJAq6wHqFNrdOLq5NTodDqEaXP3y/kB1eIMrwcz5cPGJAPSmL2RebBofsl5QFJdVUmeXXSS7nQ4aeQpuqCcoI/NqLb5r3bEaq33pbglfv2YyyHK1ERlET3TsTR+rGBcJXv9JLh2ZhdoUJYDkDqP+f+65Fn3/xRppfXbwNCrCnO+DvVsgZTFp7cj69WA6uWBeYM4HejKa1BUpt8TfP132FjaUSnwSlykkJhHK5svQFxf2rpJGFdmz4d06iLREy/N+27pyE9eJeJohO2JJXaVTQgICmVNvGefR4KaNELpxeNAzuhKQsTZBYQY179zveNg4EQqai3CxKIr09G/MwpMufTWEBm2rsk6HqTh1Qz+d72aph3U3bRQVhFj3ZE2ZsIXIc7dwCLGV\",\"ephemeralPublicKey\":\"BNgz4XETGJgixJYrYHLXjQrRaZ9i2q2Z2uGTOFNuVY5ZiCFiSJeiP0l+dt+Y0r8I29l5F2Lwd+e8torE3vSMm9g\\u003d\",\"tag\":\"NUJPbcTwbfWBC3ByHzcwQz/bEsbt80vh1ahXoRY4xAQ\\u003d\"}"}</message>
</digitalWallet>
<extraParameters>
<INSTALLMENTS_NUMBER>1</INSTALLMENTS_NUMBER>
</extraParameters>
<type>AUTHORIZATION_AND_CAPTURE</type>
<paymentMethod>MASTERCARD</paymentMethod>
<paymentCountry>BR</paymentCountry>
</transaction>
<test>false</test>
</request>
Ejemplo de una Respuesta:
<paymentResponse>
<code>SUCCESS</code>
<error></error>
<transactionResponse>
<orderId>1400437001</orderId>
<transactionId>f0f8c441-43e8-490a-b4f2-c14d2c403175</transactionId>
<state>APPROVED</state>
<paymentNetworkResponseCode>6</paymentNetworkResponseCode>
<paymentNetworkResponseErrorMessage></paymentNetworkResponseErrorMessage>
<trazabilityCode>282856</trazabilityCode>
<authorizationCode>MOCK-CIELO-1624047897817</authorizationCode>
<pendingReason></pendingReason>
<responseCode>APPROVED</responseCode>
<errorCode></errorCode>
<responseMessage></responseMessage>
<transactionDate></transactionDate>
<transactionTime></transactionTime>
<operationDate>1624029898077</operationDate>
<referenceQuestionnaire></referenceQuestionnaire>
<extraParameters>
<BANK_REFERENCED_CODE>CREDIT</BANK_REFERENCED_CODE>
<CIELO_TID>1006993069000509C28A</CIELO_TID>
</extraParameters>
<additionalInfo></additionalInfo>
</transactionResponse>
</paymentResponse>
Encuentra la descripción del objeto transaction.digitalWallet
y sus campos en la sección de Parámetros.
Procesar Pagos como Aerolínea o Agencia de Viajes
Esta sección está diseñada para facilitar la integración de los servicios de PayU, específicamente adaptados a las necesidades de aerolíneas y agencias de viajes en Colombia.
Consideraciones:
- Disponible exclusivamente en Colombia para transacciones en moneda COP.
- Permite el procesamiento de pagos mediante el modelo TSP/Gateway.
- Requiere el registro de códigos IATA con los adquirentes.
- Soporta pagos con tarjeta de crédito o débito, incluyendo AMEX, DINERS, MASTERCARD y VISA.
- Admite la dispersión de fondos, permitiendo que las agencias de viajes y aerolíneas reciban sus pagos dentro de la misma transacción.
- Requiere un procesamiento en un solo paso: el sistema transfiere los fondos de la cuenta del cliente a tu banco adquirente tan pronto como se autoriza el pago.
Consideraciones para la Integración:
Esta integración permite a las aerolíneas y agencias de viajes en Colombia optimizar los procesos de pago, proporcionando información esencial con cada transacción para apoyar la identificación y distribución precisa de los fondos. Además, el envío de detalles específicos de la transacción puede calificarlos para la exención del impuesto 4 x 1000 (confirma con tu banco adquirente).
Pasos para la Integración:
- Obtén la lista de aerolíneas disponibles.
- Envía la transacción a través de la API de Pagos de PayU.
- Incluye la información del Passenger Name Record (PNR) (opcional).
Funcionalidad | Aerolíneas | Agencias de Viajes |
---|---|---|
Inclusión de Tarifas | Las aerolíneas pueden enviar su ID de aerolínea, junto con tarifas aeroportuarias y otros impuestos asociados. | Las agencias de viajes pueden enviar sus tarifas de transacción junto con tarifas de aerolíneas, tarifas aeroportuarias, tarifas administrativas y otros cargos. |
Identificación | Los adquirentes pueden identificar específicamente la aerolínea mediante el ID de aerolínea para una distribución dirigida. | Permite al adquirente identificar tanto a la agencia de viajes como a la aerolínea para una distribución precisa de fondos. |
Elegibilidad para la Exención del Impuesto 4 x 1000 | Las aerolíneas colombianas pueden calificar si proporcionan su ID de aerolínea e información de tarifas relevante. | Las agencias de viajes colombianas pueden calificar si proporcionan detalles completos de la transacción. |
Nota
Verifica con tu banco adquirente si tu negocio cumple con los requisitos para la exención del impuesto 4 x 1000. La elegibilidad depende de la información proporcionada en cada transacción y de la normativa vigente.Obtener la Lista de Aerolíneas Disponibles
Para integrarse con PayU, tanto las agencias de viajes como las aerolíneas necesitan obtener los códigos de aerolíneas elegibles para la recolección de pagos y enviarlos a través de la API de Pagos. Esto se puede hacer consultando el sistema de PayU para obtener la lista de aerolíneas disponibles y sus respectivos códigos. El endpoint para obtener los códigos de aerolíneas es el mismo para ambos tipos de comerciantes, aunque el uso específico puede diferir:
-
Aerolíneas:
- Las aerolíneas obtienen y envían sus propios códigos para habilitar una identificación precisa y posibles beneficios fiscales.
- Al proporcionar el código de aerolínea, aseguran transacciones optimizadas para sus tarifas y cargos asociados.
-
Agencias de Viajes:
- Las agencias obtienen el código de aerolínea asociado con cada pago para garantizar la correcta asignación de tarifas e impuestos.
- Esta integración ayuda a identificar la aerolínea involucrada en la transacción para una distribución adecuada de fondos.
Para obtener la lista, utiliza los siguientes endpoints según tu entorno:
- Sandbox:
https://sandbox.api.payulatam.com/payments-api/rest/v4.3/payments/airline
- Producción:
https://api.payulatam.com/payments-api/rest/v4.3/payments/airline
Parámetro de Consulta | Descripción |
---|---|
accountID |
Código de identificación asignado por PayU Latam a la cuenta. |
Parámetro de Cabecera | Descripción |
---|---|
Authorization |
Valor del encabezado de autenticación para realizar una solicitud válida. |
Ejemplo de código en JavaScript para generar el encabezado de autenticación:
var contentToSign = "pRRXKOl8ikMmt9u" + ":" + "4Vj8eK4rloUd272L48hsrarnUA";
var base64 = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(contentToSign));
var authenticationHeader = "Basic " + base64.toString();
Nota
Aunque es poco probable que cambien los códigos de aerolíneas, existe una posibilidad. Recomendamos usar la consulta para almacenar tu código de aerolínea y utilizarlo en pagos con nuestra API de Pagos.Parámetro de Consulta | Descripción |
---|---|
airlines | Array de aerolíneas. |
airlines > code | Código de la aerolínea. |
airlines > description | Descripción de la aerolínea. |
Ejemplo de una respuesta:
{
"airlines": [
{
"code": "81",
"description": "AVIA MARKETING LTDA NAL Nacional"
},
.
.
.
{
"code": "65",
"description": "OCEANAIR LINHAS AEREAS S.A Nacional"
}
]
}
Ejemplo de una respuesta:
<com.pagosonline.ppp4.web.payments.api.v4.model.ApiAirlinesListResponse>
<airlines>
<com.pagosonline.ppp4.web.payments.api.v4.model.ApiAirlines>
<code>80</code>
<description>AVIATUR S.A. BOG Internacional</description>
</com.pagosonline.ppp4.web.payments.api.v4.model.ApiAirlines>
.
.
.
<com.pagosonline.ppp4.web.payments.api.v4.model.ApiAirlines>
<code>87</code>
<description>LAN AIRLINES Nacional</description>
</com.pagosonline.ppp4.web.payments.api.v4.model.ApiAirlines>
</airlines>
</com.pagosonline.ppp4.web.payments.api.v4.model.ApiAirlinesListResponse>
Enviar Transacciones como una Aerolínea
Para completar una solicitud de transacción exitosa, debes incluir los parámetros específicos para aerolíneas, además de los parámetros estándar para pagos con tarjeta de crédito. Opcionalmente, también puedes incluir datos del PNR. Usa el código de aerolínea obtenido del endpoint anterior e incluye las tarifas aeroportuarias y los impuestos que aplican.
Solicitud
Campo | Tipo | Tamaño | Descripción | Ejemplo |
---|---|---|---|---|
transaction > order > airlineCode | Alfanumérico | 4 | Código de la aerolínea. | 29 |
transaction > order > additionalValues > TX_VALUE > value | Numérico | 12,2 | Monto total de la transacción. Puede contener hasta dos decimales. | 119000 |
transaction > order > additionalValues > TX_TAX > value | Numérico | 12,2 | Valor del IVA. Si no se especifica, el sistema aplica una tasa del 19% por defecto en Colombia. Usa 0 para artículos exentos de IVA. | 19000 |
transaction > order > additionalValues > TX_TAX_RETURN_BASE > value | Numérico | 12,2 | Valor base para el cálculo del IVA. Configura en 0 si el producto o servicio está exento de IVA. | 100000 |
transaction > order > additionalValues > TX_ADDITIONAL_VALUE > value | Numérico | 12,2 | Tarifas aeroportuarias y otros impuestos aplicables. | 25000 |
Llamada a la API
A continuación, se presentan ejemplos de una solicitud para este método.
Ejemplo de una Solicitud:
{
...
"transaction": {
"order": {
...
"airlineCode": "29",
"additionalValues": {
"TX_VALUE": {
"value": 119000,
"currency": "COP"
},
"TX_TAX": {
"value": 19000,
"currency": "COP"
},
"TX_TAX_RETURN_BASE": {
"value": 100000,
"currency": "COP"
},
"TX_ADDITIONAL_VALUE": {
"value": 25000,
"currency": "COP"
}
}
},
"creditCard": {
...
},
"extraParameters": {
...
},
"pnr": {
...
}
}
}
Ejemplo de una Solicitud:
<request>
...
<transaction>
<order>
...
<airlineCode>29</airlineCode>
<additionalValues>
<entry>
<string>TX_VALUE</string>
<additionalValue>
<value>119000</value>
<currency>COP</currency>
</additionalValue>
</entry>
<entry>
<string>TX_TAX</string>
<additionalValue>
<value>19000</value>
<currency>COP</currency>
</additionalValue>
</entry>
<entry>
<string>TX_TAX_RETURN_BASE</string>
<additionalValue>
<value>100000</value>
<currency>COP</currency>
</additionalValue>
</entry>
<entry>
<string>TX_ADDITIONAL_VALUE</string>
<additionalValue>
<value>25000</value>
<currency>COP</currency>
</additionalValue>
</entry>
</additionalValues>
</order>
<payer>
...
</payer>
<creditCard>
...
</creditCard>
<extraParameters>
...
</extraParameters>
...
<pnr>
...
</pnr>
</transaction>
</request>
Enviar Transacciones como una Agencia de Viajes
Para completar una solicitud de transacción exitosa, debes incluir los parámetros específicos para agencias de viajes, además de los parámetros estándar para pagos con tarjeta de crédito. Opcionalmente, también puedes incluir datos del PNR. Usa el código de aerolínea obtenido del endpoint anterior e incluye las tarifas aeroportuarias y los impuestos que aplican.
Solicitud
Campo | Tipo | Tamaño | Descripción | Ejemplo |
---|---|---|---|---|
transaction > order > airlineCode | Alfanumérico | 4 | Código de la aerolínea. | 29 |
transaction > order > additionalValues > TX_VALUE > value | Numérico | 12,2 | Monto total de la transacción. Puede contener dos decimales (por ejemplo, 10000.00 o 10000). | 119000 |
transaction > order > additionalValues > TX_TAX > value | Numérico | 12,2 | Valor del IVA de la transacción. Si no se especifica, el sistema aplica automáticamente una tasa del 19% en Colombia. Si está exento de IVA, configura en 0. | 19000 |
transaction > order > additionalValues > TX_TAX_RETURN_BASE > value | Numérico | 12,2 | Valor base para calcular el IVA. Si está exento de IVA, asigna 0 a esta variable. | 100000 |
transaction > order > additionalValues > TX_ADDITIONAL_VALUE > value | Numérico | 12,2 | Tarifas aeroportuarias y otros impuestos. | 25000 |
transaction > order > additionalValues > TX_ADMINISTRATIVE_FEE > value | Numérico | 12,2 | Monto de la tarifa administrativa de la agencia de viajes. | 5950 |
transaction > order > additionalValues > TX_TAX_ADMINISTRATIVE_FEE > value | Numérico | 12,2 | Impuesto de la tarifa administrativa de la agencia de viajes. | 950 |
transaction > order > additionalValues > TX_TAX_ADMINISTRATIVE_FEE_RETURN_BASE > value | Numérico | 12,2 | Valor base para calcular el impuesto de la tarifa administrativa de la agencia de viajes. | 5000 |
Llamada a la API
A continuación, se presentan ejemplos de una solicitud para este método.
Ejemplo de una Solicitud:
{
...
"transaction": {
"order": {
...
"airlineCode": "29",
"additionalValues": {
"TX_VALUE": {
"value": 119000,
"currency": "COP"
},
"TX_TAX": {
"value": 19000,
"currency": "COP"
},
"TX_TAX_RETURN_BASE": {
"value": 100000,
"currency": "COP"
},
"TX_ADDITIONAL_VALUE": {
"value": 25000,
"currency": "COP"
},
"TX_ADMINISTRATIVE_FEE": {
"value": 5950,
"currency": "COP"
},
"TX_TAX_ADMINISTRATIVE_FEE": {
"value": 950,
"currency": "COP"
},
"TX_TAX_ADMINISTRATIVE_FEE_RETURN_BASE": {
"value": 5000,
"currency": "COP"
}
}
},
"creditCard": {
...
},
"extraParameters": {
...
},
"pnr": {
...
}
}
}
Ejemplo de una Solicitud:
<request>
...
<transaction>
<order>
...
<airlineCode>29</airlineCode>
<additionalValues>
<entry>
<string>TX_VALUE</string>
<additionalValue>
<value>119000</value>
<currency>COP</currency>
</additionalValue>
</entry>
<entry>
<string>TX_TAX</string>
<additionalValue>
<value>19000</value>
<currency>COP</currency>
</additionalValue>
</entry>
<entry>
<string>TX_TAX_RETURN_BASE</string>
<additionalValue>
<value>100000</value>
<currency>COP</currency>
</additionalValue>
</entry>
<entry>
<string>TX_ADDITIONAL_VALUE</string>
<additionalValue>
<value>25000</value>
<currency>COP</currency>
</additionalValue>
</entry>
<entry>
<string>TX_ADMINISTRATIVE_FEE</string>
<additionalValue>
<value>5950</value>
<currency>COP</currency>
</additionalValue>
</entry>
<entry>
<string>TX_TAX_ADMINISTRATIVE_FEE</string>
<additionalValue>
<value>950</value>
<currency>COP</currency>
</additionalValue>
</entry>
<entry>
<string>TX_TAX_ADMINISTRATIVE_FEE_RETURN_BASE</string>
<additionalValue>
<value>5000</value>
<currency>COP</currency>
</additionalValue>
</entry>
</additionalValues>
</order>
<payer>
...
</payer>
<creditCard>
...
</creditCard>
<extraParameters>
...
</extraParameters>
...
<pnr>
...
</pnr>
</transaction>
</request>
Incluir Información de Registro de Nombre del Pasajero (Opcional)
Además de los detalles de la transacción proporcionados previamente, la API permite incluir datos del Passenger Name Record (PNR). Esta funcionalidad es particularmente útil al utilizar las herramientas antifraude de PayU para mejorar el análisis de riesgo de las transacciones, adaptándose a las actividades específicas de su negocio.
Los siguientes parámetros están relacionados con los datos PNR y son opcionales. Están disponibles en todos los países de América Latina donde opera PayU. Estos campos no son suficientes por sí solos para completar una solicitud de transacción, pero son complementarios para casos de uso específicos.
Solicitud
Campo | Tipo | Tamaño | Descripción | Ejemplo |
---|---|---|---|---|
transaction > pnr > id | alfanumérico | 32 | ID del registro de nombre del pasajero (PNR). | PNR123456 |
transaction > pnr > reservationAgent > id | alfanumérico | 32 | ID del agente de reservas. | AGENT123 |
transaction > pnr > reservationAgent > firstName | alfanumérico | 255 | Nombre(s) del agente de reservas. | John |
transaction > pnr > reservationAgent > lastName | alfanumérico | 255 | Apellido(s) del agente de reservas. | Doe |
transaction > pnr > reservationAgent > email | alfanumérico | 255 | Correo electrónico del agente de reservas. | agent@example.com |
transaction > pnr > reservationAgent > officePhoneNumber | alfanumérico | 50 | Teléfono de oficina del agente de reservas. | +573001234567 |
transaction > pnr > reservationOffice > id | alfanumérico | 9 | ID de la oficina de reservas. | OFFICE123 |
transaction > pnr > reservationOffice > country | alfanumérico | 2 | País de la oficina de reservas (Código ISO). | CO |
transaction > pnr > saleOffice > id | alfanumérico | 9 | ID de la oficina de ventas. | SALEOFF123 |
transaction > pnr > saleOffice > country | alfanumérico | 2 | País de la oficina de ventas (Código ISO). | US |
transaction > pnr > passengers[] > id | alfanumérico | 32 | ID del pasajero. | PASS12345 |
transaction > pnr > passengers[] > country | alfanumérico | 2 | País del pasajero (Código ISO). | AR |
transaction > pnr > passengers[] > level | alfanumérico | 32 | Nivel del pasajero. | GOLD |
transaction > pnr > passengers[] > firstName | alfanumérico | 255 | Nombre(s) del pasajero. | Maria |
transaction > pnr > passengers[] > lastName | alfanumérico | 255 | Apellido(s) del pasajero. | Gonzalez |
transaction > pnr > passengers[] > documentType | numérico | 2 | Tipo de documento (ver valores a continuación). | 5 |
transaction > pnr > passengers[] > documentNumber | alfanumérico | 50 | Número de documento del pasajero. | P12345678 |
transaction > pnr > passengers[] > email | alfanumérico | 255 | Dirección de correo electrónico del pasajero. | passenger@example.com |
transaction > pnr > passengers[] > officePhoneNumber | alfanumérico | 50 | Teléfono de oficina del pasajero. | +573008765432 |
transaction > pnr > passengers[] > homePhoneNumber | alfanumérico | 50 | Teléfono de casa del pasajero. | +573002345678 |
transaction > pnr > passengers[] > mobilePhoneNumber | alfanumérico | 50 | Teléfono móvil del pasajero. | +573001234567 |
transaction > pnr > passengers[] > address > country | alfanumérico | 2 | País de la dirección del pasajero (Código ISO). | BR |
transaction > pnr > passengers[] > address > city | alfanumérico | 65 | Ciudad de la dirección del pasajero. | São Paulo |
transaction > pnr > passengers[] > address > street | alfanumérico | 255 | Dirección (calle) del pasajero. | Rua das Flores, 123 |
transaction > pnr > itinerary[] > departureDate | alfanumérico | 19 | Fecha de salida en formato UTC. | 2022-01-01T23:59:59 |
transaction > pnr > itinerary[] > arrivalDate | alfanumérico | 19 | Fecha de llegada en formato UTC. | 2022-01-02T23:59:59 |
transaction > pnr > itinerary[] > flightNumber | alfanumérico | 12 | Número de vuelo. | FL1234 |
transaction > pnr > itinerary[] > origin | alfanumérico | 8 | Origen. | BOG |
transaction > pnr > itinerary[] > destination | alfanumérico | 8 | Destino. | MIA |
transaction > pnr > itinerary[] > travelClass | alfanumérico | 2 | Clase de viaje en el segmento de reserva. | Y |
transaction > pnr > itinerary[] > ticketType | alfanumérico | 50 | Tipo de boleto. | E-TICKET |
Nota
Al usar el formato XML, los parámetros del itinerario aparecen bajotransaction > pnr > itinerary > segment
con la misma estructura pero ajustados en anidamiento.
Llamada a la API
A continuación, se presentan ejemplos de una solicitud para este método.
Ejemplo de una Solicitud:
{
"transaction": {
"order": {
...
},
"creditCard": {
...
},
"extraParameters": {
...
},
"pnr": {
"id": "abc123",
"reservationAgent": {
"id": "def456",
"firstName": "CO",
"lastName": "CO",
"email": "first.last@example.org",
"officePhoneNumber": "123456789"
},
"reservationOffice": {
"id": "ghi789",
"country": "CO"
},
"saleOffice": {
"id": "jkl012",
"country": "CO"
},
"passengers": [
{
"id": "mno345",
"country": "CO",
"level": "1",
"firstName": "Firts Name",
"lastName": "Last Name",
"documentType": 0,
"documentNumber": "987654321",
"email": "first.last@example.com",
"officePhoneNumber": "234567891",
"homePhoneNumber": "345678912",
"mobilePhoneNumber": "456789123",
"address": {
"country": "CO",
"city": "Bogota D.C.",
"street": "Calle 1 # 2 - 3"
}
},
{
"id": "mno346",
"country": "CO",
"level": "1",
"firstName": "Firts Name",
"lastName": "Last Name",
"documentType": 0,
"documentNumber": "55545151515",
"email": "first.last@example.com",
"officePhoneNumber": "336259",
"homePhoneNumber": "2156668",
"mobilePhoneNumber": "3001234123",
"address": {
"country": "CO",
"city": "Bogota D.C.",
"street": "Calle 3 # 2 - 1"
}
}
],
"itinerary": [
{
"departureDate": "2022-01-01T23:59:59",
"arrivalDate": "2025-01-01T23:59:59",
"flightNumber": "PQR345",
"origin": "BOGOTA",
"destination": "MADRID",
"travelClass": "BU",
"ticketType": "RT"
},
{
"departureDate": "2022-01-01T23:59:59",
"arrivalDate": "2025-01-01T23:59:59",
"flightNumber": "ARF2525",
"origin": "MADRID",
"destination": "LONDRES",
"travelClass": "EC",
"ticketType": "RT"
}
]
}
}
}
Ejemplo de una Solicitud:
<request>
...
<transaction>
<order>
...
</order>
<payer>
...
</payer>
<creditCard>
...
</creditCard>
<extraParameters>
...
</extraParameters>
<pnr>
<id>abc123</id>
<reservationAgent>
<id>def456</id>
<firstName>First Name</firstName>
<lastName>Last Name</lastName>
<email>first.last@example.org</email>
<officePhoneNumber>123456789</officePhoneNumber>
</reservationAgent>
<reservationOffice>
<id>ghi789</id>
<country>CO</country>
</reservationOffice>
<saleOffice>
<id>jkl012</id>
<country>CO</country>
</saleOffice>
<passengers>
<!-- Passenger 1 -->
<passenger>
<id>mno345</id>
<country>CO</country>
<level>1</level>
<firstName>First Name</firstName>
<lastName>Last Name</lastName>
<documentType>0</documentType>
<documentNumber>987654321</documentNumber>
<email>first.last@example.com</email>
<officePhoneNumber>234567891</officePhoneNumber>
<homePhoneNumber>345678912</homePhoneNumber>
<mobilePhoneNumber>456789123</mobilePhoneNumber>
<address>
<country>CO</country>
<city>Bogota D.C.</city>
<street>Calle 1 # 2 - 3</street>
</address>
</passenger>
<!-- Passenger 2 -->
<passenger>
<id>mno346</id>
<country>CO</country>
<level>1</level>
<firstName>First Name</firstName>
<lastName>Last Name</lastName>
<documentType>0</documentType>
<documentNumber>55545151515</documentNumber>
<email>first.last@example.com</email>
<officePhoneNumber>336259</officePhoneNumber>
<homePhoneNumber>2156668</homePhoneNumber>
<mobilePhoneNumber>3001234123</mobilePhoneNumber>
<address>
<country>CO</country>
<city>Bogota D.C.</city>
<street>Calle 3 # 2 - 1</street>
</address>
</passenger>
</passengers>
<itinerary>
<!-- Flight Journey 1 -->
<segment>
<departureDate>2022-01-01T23:59:59</departureDate>
<arrivalDate>2025-01-01T23:59:59</arrivalDate>
<flightNumber>PQR345</flightNumber>
<origin>BOGOTA</origin>
<destination>MADRID</destination>
<travelClass>U</travelClass>
</segment>
<!-- Flight Journey 2 -->
<segment>
<departureDate>2022-01-01T23:59:59</departureDate>
<arrivalDate>2025-01-01T23:59:59</arrivalDate>
<flightNumber>ARF2525</flightNumber>
<origin>MADRID</origin>
<destination>LONDRES</destination>
<travelClass>EC</travelClass>
</segment>
</itinerary>
</pnr>
<isTest>false</isTest>
</transaction>
</request>
Lista de Bancos - PSE
Este método retorna la lista de bancos disponibles para realizar pagos utilizando PSE.
Parámetros para la Solicitud y la Respuesta
Solicitud
Nombre del Campo | Formato | Tamaño | Descripción | Obligatorio |
---|---|---|---|---|
language | Alfanumérico | 2 | Idioma utilizado en la petición, este idioma se utiliza para mostrar los mensajes de error generados. Ver idiomas soportados. | Sí |
command | Alfanumérico | Máx:32 | Asigna GET_BANKS_LIST . |
Sí |
test (JSON) isTest (XML) |
Booleano | Asigna true si la petición es en modo pruebas. Si no, asigna false . |
Sí | |
merchant | Objeto | Este objeto tiene los datos de autenticación. | Sí | |
merchant > apiLogin | Alfanumérico | Min:12 Máx:32 | Usuario o login entregado por PayU. Cómo obtengo mi API Login | Sí |
merchant > apiKey | Alfanumérico | Min:6 Máx:32 | Contraseña entregada por PayU. Cómo obtengo mi API Key | Sí |
bankListInformation | Objeto | Este objeto tiene la información de la consulta. | Sí | |
bankListInformation > paymentMethod | Alfanumérico | Asigna PSE . |
Sí | |
bankListInformation > paymentCountry | Alfanumérico | Asigna CO . |
Sí |
Respuesta
Nombre del Campo | Formato | Tamaño | Descripción |
---|---|---|---|
code | Alfanumérico | Código de respuesta de la transacción. Los valores posibles son ERROR y SUCCESS . |
|
error | Alfanumérico | Máx:2048 | Mensaje de error asociado cuando el código de respuesta es ERROR . |
banks | Objeto | Lista de bancos disponibles en PSE. | |
banks > id | Numérico | Identificador interno del banco. | |
banks > description | Alfanumérico | Nombre del banco para ser mostrado en la lista. | |
banks > pseCode | Alfanumérico | Código para enviar en el extra parámetro FINANCIAL_INSTITUTION_CODE de la solicitud de pago. |
Llamado a la API
Los siguientes son los cuerpos de la petición y la respuesta para este método.
Ejemplo de una Solicitud:
{
"language": "es",
"command": "GET_BANKS_LIST",
"merchant": {
"apiLogin": "pRRXKOl8ikMmt9u",
"apiKey": "4Vj8eK4rloUd272L48hsrarnUA"
},
"test": false,
"bankListInformation": {
"paymentMethod": "PSE",
"paymentCountry": "CO"
}
}
Ejemplo de una Respuesta:
{
"code": "SUCCESS",
"error": null,
"banks": [
{
"id": "34e6e912-a395-4d31-9599-9baa176c1a61",
"description": "A continuación seleccione su banco",
"pseCode": "0"
},
{
"id": "033aec11-e068-4252-8043-237144be9233",
"description": "BAN.CO",
"pseCode": "1552"
},
{
"id": "a720cb4c-6549-4932-83be-6d72b3eb0016",
"description": "BANCAMIA",
"pseCode": "1059"
},
{
"id": "d9280852-47a5-4e99-94ac-3d7648ba79a3",
"description": "BANCO AGRARIO",
"pseCode": "1040"
},
{
"id": "ff216e8a-28ba-4bf6-9935-b94dfdfd96a0",
"description": "BANCO AGRARIO DESARROLLO",
"pseCode": "1081"
},
{
"id": "5073154e-efd4-4870-9315-abb926e87519",
"description": "BANCO AGRARIO QA DEFECTOS",
"pseCode": "1080"
},
{
"id": "6e61a91d-58bf-46ec-aa09-1f44974dda7e",
"description": "BANCO CAJA SOCIAL",
"pseCode": "10322"
},
{
"id": "e062711e-6bbd-4a13-819a-d60084f9c6fa",
"description": "BANCO CAJA SOCIAL DESARROLLO",
"pseCode": "1032"
},
{
"id": "a9b5cc17-b0ae-4708-9835-586a0bef95df",
"description": "BANCO COMERCIAL AVVILLAS S.A.",
"pseCode": "1052"
},
{
"id": "c5c97dfe-6101-453f-bcd4-691f4b329a3c",
"description": "BANCO COOMEVA S.A. - BANCOOMEVA",
"pseCode": "1061"
},
{
"id": "7a2e8d04-e8c8-404b-8e49-d5d37c107a12",
"description": "BANCO COOPERATIVO COOPCENTRAL",
"pseCode": "1066"
},
{
"id": "197fe0af-f658-4fe0-ad1b-952e174de549",
"description": "BANCO CREDIFINANCIERA",
"pseCode": "1058"
},
{
"id": "b1de44f1-cede-4aca-9d3f-3313d5cc0c63",
"description": "BANCO DAVIVIENDA",
"pseCode": "1051"
},
{
"id": "7a10219e-04a7-4c31-b747-54ded27c7f07",
"description": "BANCO DAVIVIENDA Desarrollo",
"pseCode": "10512"
},
{
"id": "ed06f40e-a1b9-4e48-8851-bffb4cda0480",
"description": "BANCO DE BOGOTA",
"pseCode": "1039"
},
{
"id": "4592a13b-6334-4fba-8402-9d006b599fa8",
"description": "BANCO DE BOGOTA DESARROLLO 2013",
"pseCode": "1001"
},
{
"id": "55f59084-cd3b-47d2-a420-6442cdb9e4b1",
"description": "BANCO DE OCCIDENTE",
"pseCode": "1023"
},
{
"id": "8e134fca-4fde-44e6-b012-55e8f2d338ca",
"description": "BANCO FALABELLA",
"pseCode": "1062"
},
{
"id": "8eb03abf-5608-419b-8d2c-9d90b8ab6b88",
"description": "BANCO GNB COLOMBIA (ANTES HSBC)",
"pseCode": "1010"
},
{
"id": "283e0068-749f-43f1-a2e5-340910f41af3",
"description": "BANCO GNB SUDAMERIS",
"pseCode": "1012"
},
{
"id": "8b0bf5e7-394d-4f7e-a467-e4d21d04c9fb",
"description": "BANCO PICHINCHA S.A.",
"pseCode": "1060"
},
{
"id": "beeb494a-4ce5-41b4-b497-0756f0b6a6d9",
"description": "BANCO POPULAR",
"pseCode": "1002"
},
{
"id": "a5a4b740-1644-4627-ae2a-41b13ffc7c5e",
"description": "BANCO PRODUCTOS POR SEPARADO",
"pseCode": "1203"
},
{
"id": "47e747ef-c817-4be6-9eff-b6b16f50d001",
"description": "Banco PSE",
"pseCode": "1101"
},
{
"id": "589939d7-06d1-4933-a101-8bb29b801d76",
"description": "BANCO SANTANDER COLOMBIA",
"pseCode": "1065"
},
{
"id": "fcdaa98e-99ce-4e76-a504-1e053a05e773",
"description": "BANCO SERFINANZA",
"pseCode": "1069"
},
{
"id": "201608c6-81de-436f-967a-2ec7c212c100",
"description": "BANCO TEQUENDAMA",
"pseCode": "1035"
},
{
"id": "a8f33ba3-0053-464a-afbe-9add7c63fbc3",
"description": "Banco union Colombia Credito",
"pseCode": "1004"
},
{
"id": "5dfa1b2c-64bd-4e8c-9fad-585337cfd4ff",
"description": "BANCO UNION COLOMBIANO",
"pseCode": "1022"
},
{
"id": "56e306ef-6011-4f41-9640-b98449d6a6be",
"description": "BANCO UNION COLOMBIANO FD2",
"pseCode": "1005"
},
{
"id": "bc883c0d-3610-4a88-96ca-2e2baa1dd2e5",
"description": "Banco Web Service ACH",
"pseCode": "1055"
},
{
"id": "4e97e580-fc92-47ea-af4f-7b3b3ddffff8",
"description": "Banco Web Service ACH WSE 3.0",
"pseCode": "1055"
},
{
"id": "931f6bfb-283e-4721-bb86-4a7484bfd28e",
"description": "BANCOLOMBIA DATAPOWER",
"pseCode": "10072"
},
{
"id": "1285de9c-8d47-49f7-b00a-e87882e2a3f9",
"description": "BANCOLOMBIA DESARROLLO",
"pseCode": "10071"
},
{
"id": "451f0e5f-5db4-4f55-a1fc-b38e06526e04",
"description": "BANCOLOMBIA QA",
"pseCode": "1007"
},
{
"id": "448e00ec-c479-497d-9a35-0dfbbf462f72",
"description": "BANKA",
"pseCode": "1077"
},
{
"id": "5f3a7adb-b283-4ca3-bee9-741f1306a03d",
"description": "BBVA COLOMBIA S.A.",
"pseCode": "1013"
},
{
"id": "cd4286fa-850a-4b34-96d1-f71d6a79f44a",
"description": "BBVA DESARROLLO",
"pseCode": "1513"
},
{
"id": "10e9b7b6-7a5f-4d5b-8d7f-4b2020f43f93",
"description": "CITIBANK COLOMBIA S.A.",
"pseCode": "1009"
},
{
"id": "77f0988f-cf45-4931-bbcd-984e07e0fc51",
"description": "COLTEFINANCIERA",
"pseCode": "1370"
},
{
"id": "48c81f6a-e0f1-4c1d-ab9b-9915726e3596",
"description": "CONFIAR COOPERATIVA FINANCIERA",
"pseCode": "1292"
},
{
"id": "8694df26-5ccd-45c0-b5b7-2b995c47f81a",
"description": "COOPERATIVA FINANCIERA COTRAFA",
"pseCode": "1289"
},
{
"id": "1c222feb-2b58-408c-a495-ade06b6825c0",
"description": "COOPERATIVA FINANCIERA DE ANTIOQUIA",
"pseCode": "1283"
},
{
"id": "70a18a09-38f2-4f62-aba6-9ad28c30c966",
"description": "CREDIFIANCIERA",
"pseCode": "1558"
},
{
"id": "3f8b3126-8aa3-4438-8a6c-1d544184f2d7",
"description": "DALE",
"pseCode": "1097"
},
{
"id": "a953078b-5e22-42ea-9301-954558e8f463",
"description": "DAVIPLATA",
"pseCode": "1551"
},
{
"id": "2ad780ba-a1e8-4cb9-9150-670429aae092",
"description": "GIROS Y FINANZAS COMPAÑIA DE FINANCIAMIENTO S.A",
"pseCode": "1303"
},
{
"id": "c0bfb716-a098-40f6-84b5-1972a4846506",
"description": "IRIS",
"pseCode": "1637"
},
{
"id": "7e1efd88-4f88-4e21-a972-28b526b27da5",
"description": "ITAU",
"pseCode": "1006"
},
{
"id": "26c9a2df-6b4f-4309-9137-3692d9bb9f82",
"description": "MOVII S.A",
"pseCode": "1801"
},
{
"id": "d9b48a70-6068-4116-a345-154381e5d953",
"description": "NEQUI CERTIFICACION",
"pseCode": "1508"
},
{
"id": "60199dc5-7d38-49c6-92a5-b839dc0087d2",
"description": "prueba restriccion",
"pseCode": "9988"
},
{
"id": "be467299-d90a-407e-86d3-01e30ade1e06",
"description": "Prueba Steve",
"pseCode": "121212"
},
{
"id": "201acc05-4c4f-49dc-9be6-3261a6ce4a3c",
"description": "RAPPIPAY",
"pseCode": "1151"
},
{
"id": "7602e001-6199-48bc-9ee3-466f8eb2e422",
"description": "SCOTIABANK COLPATRIA DESARROLLO",
"pseCode": "1019"
},
{
"id": "9bb638a0-4c3f-41d2-8811-f8cdd29b0db2",
"description": "SCOTIABANK COLPATRIA UAT",
"pseCode": "1078"
},
{
"id": "086547b5-313b-42c7-acef-93d0f76b1dd5",
"description": "SEIVY – GM FINANCIAL",
"pseCode": "1305"
}
]
}
Ejemplo de una Solicitud:
<request>
<language>en</language>
<command>GET_BANKS_LIST</command>
<merchant>
apiLogin>pRRXKOl8ikMmt9u</apiLogin>
<apiKey>4Vj8eK4rloUd272L48hsrarnUA</apiKey>
</merchant>
<isTest>false</isTest>
<bankListInformation>
<paymentMethod>PSE</paymentMethod>
<paymentCountry>CO</paymentCountry>
</bankListInformation>
</request>
Ejemplo de una Respuesta:
<bankListResponse>
<code>SUCCESS</code>
<banks>
<bank>
<id>34e6e912-a395-4d31-9599-9baa176c1a61</id>
<description>A continuación seleccione su banco</description>
<pseCode>0</pseCode>
</bank>
<bank>
<id>033aec11-e068-4252-8043-237144be9233</id>
<description>BAN.CO</description>
<pseCode>1552</pseCode>
</bank>
<bank>
<id>a720cb4c-6549-4932-83be-6d72b3eb0016</id>
<description>BANCAMIA</description>
<pseCode>1059</pseCode>
</bank>
<bank>
<id>d9280852-47a5-4e99-94ac-3d7648ba79a3</id>
<description>BANCO AGRARIO</description>
<pseCode>1040</pseCode>
</bank>
<bank>
<id>ff216e8a-28ba-4bf6-9935-b94dfdfd96a0</id>
<description>BANCO AGRARIO DESARROLLO</description>
<pseCode>1081</pseCode>
</bank>
<bank>
<id>5073154e-efd4-4870-9315-abb926e87519</id>
<description>BANCO AGRARIO QA DEFECTOS</description>
<pseCode>1080</pseCode>
</bank>
<bank>
<id>6e61a91d-58bf-46ec-aa09-1f44974dda7e</id>
<description>BANCO CAJA SOCIAL</description>
<pseCode>10322</pseCode>
</bank>
<bank>
<id>e062711e-6bbd-4a13-819a-d60084f9c6fa</id>
<description>BANCO CAJA SOCIAL DESARROLLO</description>
<pseCode>1032</pseCode>
</bank>
<bank>
<id>a9b5cc17-b0ae-4708-9835-586a0bef95df</id>
<description>BANCO COMERCIAL AVVILLAS S.A.</description>
<pseCode>1052</pseCode>
</bank>
<bank>
<id>c5c97dfe-6101-453f-bcd4-691f4b329a3c</id>
<description>BANCO COOMEVA S.A. - BANCOOMEVA</description>
<pseCode>1061</pseCode>
</bank>
<bank>
<id>7a2e8d04-e8c8-404b-8e49-d5d37c107a12</id>
<description>BANCO COOPERATIVO COOPCENTRAL</description>
<pseCode>1066</pseCode>
</bank>
<bank>
<id>197fe0af-f658-4fe0-ad1b-952e174de549</id>
<description>BANCO CREDIFINANCIERA</description>
<pseCode>1058</pseCode>
</bank>
<bank>
<id>b1de44f1-cede-4aca-9d3f-3313d5cc0c63</id>
<description>BANCO DAVIVIENDA</description>
<pseCode>1051</pseCode>
</bank>
<bank>
<id>7a10219e-04a7-4c31-b747-54ded27c7f07</id>
<description>BANCO DAVIVIENDA Desarrollo</description>
<pseCode>10512</pseCode>
</bank>
<bank>
<id>ed06f40e-a1b9-4e48-8851-bffb4cda0480</id>
<description>BANCO DE BOGOTA</description>
<pseCode>1039</pseCode>
</bank>
<bank>
<id>4592a13b-6334-4fba-8402-9d006b599fa8</id>
<description>BANCO DE BOGOTA DESARROLLO 2013</description>
<pseCode>1001</pseCode>
</bank>
<bank>
<id>55f59084-cd3b-47d2-a420-6442cdb9e4b1</id>
<description>BANCO DE OCCIDENTE</description>
<pseCode>1023</pseCode>
</bank>
<bank>
<id>8e134fca-4fde-44e6-b012-55e8f2d338ca</id>
<description>BANCO FALABELLA</description>
<pseCode>1062</pseCode>
</bank>
<bank>
<id>8eb03abf-5608-419b-8d2c-9d90b8ab6b88</id>
<description>BANCO GNB COLOMBIA (ANTES HSBC)</description>
<pseCode>1010</pseCode>
</bank>
<bank>
<id>283e0068-749f-43f1-a2e5-340910f41af3</id>
<description>BANCO GNB SUDAMERIS</description>
<pseCode>1012</pseCode>
</bank>
<bank>
<id>8b0bf5e7-394d-4f7e-a467-e4d21d04c9fb</id>
<description>BANCO PICHINCHA S.A.</description>
<pseCode>1060</pseCode>
</bank>
<bank>
<id>beeb494a-4ce5-41b4-b497-0756f0b6a6d9</id>
<description>BANCO POPULAR</description>
<pseCode>1002</pseCode>
</bank>
<bank>
<id>a5a4b740-1644-4627-ae2a-41b13ffc7c5e</id>
<description>BANCO PRODUCTOS POR SEPARADO</description>
<pseCode>1203</pseCode>
</bank>
<bank>
<id>47e747ef-c817-4be6-9eff-b6b16f50d001</id>
<description>Banco PSE</description>
<pseCode>1101</pseCode>
</bank>
<bank>
<id>589939d7-06d1-4933-a101-8bb29b801d76</id>
<description>BANCO SANTANDER COLOMBIA</description>
<pseCode>1065</pseCode>
</bank>
<bank>
<id>fcdaa98e-99ce-4e76-a504-1e053a05e773</id>
<description>BANCO SERFINANZA</description>
<pseCode>1069</pseCode>
</bank>
<bank>
<id>201608c6-81de-436f-967a-2ec7c212c100</id>
<description>BANCO TEQUENDAMA</description>
<pseCode>1035</pseCode>
</bank>
<bank>
<id>a8f33ba3-0053-464a-afbe-9add7c63fbc3</id>
<description>Banco union Colombia Credito</description>
<pseCode>1004</pseCode>
</bank>
<bank>
<id>5dfa1b2c-64bd-4e8c-9fad-585337cfd4ff</id>
<description>BANCO UNION COLOMBIANO</description>
<pseCode>1022</pseCode>
</bank>
<bank>
<id>56e306ef-6011-4f41-9640-b98449d6a6be</id>
<description>BANCO UNION COLOMBIANO FD2</description>
<pseCode>1005</pseCode>
</bank>
<bank>
<id>bc883c0d-3610-4a88-96ca-2e2baa1dd2e5</id>
<description>Banco Web Service ACH</description>
<pseCode>1055</pseCode>
</bank>
<bank>
<id>4e97e580-fc92-47ea-af4f-7b3b3ddffff8</id>
<description>Banco Web Service ACH WSE 3.0</description>
<pseCode>1055</pseCode>
</bank>
<bank>
<id>931f6bfb-283e-4721-bb86-4a7484bfd28e</id>
<description>BANCOLOMBIA DATAPOWER</description>
<pseCode>10072</pseCode>
</bank>
<bank>
<id>1285de9c-8d47-49f7-b00a-e87882e2a3f9</id>
<description>BANCOLOMBIA DESARROLLO</description>
<pseCode>10071</pseCode>
</bank>
<bank>
<id>451f0e5f-5db4-4f55-a1fc-b38e06526e04</id>
<description>BANCOLOMBIA QA</description>
<pseCode>1007</pseCode>
</bank>
<bank>
<id>448e00ec-c479-497d-9a35-0dfbbf462f72</id>
<description>BANKA</description>
<pseCode>1077</pseCode>
</bank>
<bank>
<id>5f3a7adb-b283-4ca3-bee9-741f1306a03d</id>
<description>BBVA COLOMBIA S.A.</description>
<pseCode>1013</pseCode>
</bank>
<bank>
<id>cd4286fa-850a-4b34-96d1-f71d6a79f44a</id>
<description>BBVA DESARROLLO</description>
<pseCode>1513</pseCode>
</bank>
<bank>
<id>10e9b7b6-7a5f-4d5b-8d7f-4b2020f43f93</id>
<description>CITIBANK COLOMBIA S.A.</description>
<pseCode>1009</pseCode>
</bank>
<bank>
<id>77f0988f-cf45-4931-bbcd-984e07e0fc51</id>
<description>COLTEFINANCIERA</description>
<pseCode>1370</pseCode>
</bank>
<bank>
<id>48c81f6a-e0f1-4c1d-ab9b-9915726e3596</id>
<description>CONFIAR COOPERATIVA FINANCIERA</description>
<pseCode>1292</pseCode>
</bank>
<bank>
<id>8694df26-5ccd-45c0-b5b7-2b995c47f81a</id>
<description>COOPERATIVA FINANCIERA COTRAFA</description>
<pseCode>1289</pseCode>
</bank>
<bank>
<id>1c222feb-2b58-408c-a495-ade06b6825c0</id>
<description>COOPERATIVA FINANCIERA DE ANTIOQUIA</description>
<pseCode>1283</pseCode>
</bank>
<bank>
<id>70a18a09-38f2-4f62-aba6-9ad28c30c966</id>
<description>CREDIFIANCIERA</description>
<pseCode>1558</pseCode>
</bank>
<bank>
<id>3f8b3126-8aa3-4438-8a6c-1d544184f2d7</id>
<description>DALE</description>
<pseCode>1097</pseCode>
</bank>
<bank>
<id>a953078b-5e22-42ea-9301-954558e8f463</id>
<description>DAVIPLATA</description>
<pseCode>1551</pseCode>
</bank>
<bank>
<id>2ad780ba-a1e8-4cb9-9150-670429aae092</id>
<description>GIROS Y FINANZAS COMPAÑIA DE FINANCIAMIENTO S.A</description>
<pseCode>1303</pseCode>
</bank>
<bank>
<id>c0bfb716-a098-40f6-84b5-1972a4846506</id>
<description>IRIS</description>
<pseCode>1637</pseCode>
</bank>
<bank>
<id>7e1efd88-4f88-4e21-a972-28b526b27da5</id>
<description>ITAU</description>
<pseCode>1006</pseCode>
</bank>
<bank>
<id>26c9a2df-6b4f-4309-9137-3692d9bb9f82</id>
<description>MOVII S.A</description>
<pseCode>1801</pseCode>
</bank>
<bank>
<id>d9b48a70-6068-4116-a345-154381e5d953</id>
<description>NEQUI CERTIFICACION</description>
<pseCode>1508</pseCode>
</bank>
<bank>
<id>60199dc5-7d38-49c6-92a5-b839dc0087d2</id>
<description>prueba restriccion</description>
<pseCode>9988</pseCode>
</bank>
<bank>
<id>be467299-d90a-407e-86d3-01e30ade1e06</id>
<description>Prueba Steve</description>
<pseCode>121212</pseCode>
</bank>
<bank>
<id>201acc05-4c4f-49dc-9be6-3261a6ce4a3c</id>
<description>RAPPIPAY</description>
<pseCode>1151</pseCode>
</bank>
<bank>
<id>7602e001-6199-48bc-9ee3-466f8eb2e422</id>
<description>SCOTIABANK COLPATRIA DESARROLLO</description>
<pseCode>1019</pseCode>
</bank>
<bank>
<id>9bb638a0-4c3f-41d2-8811-f8cdd29b0db2</id>
<description>SCOTIABANK COLPATRIA UAT</description>
<pseCode>1078</pseCode>
</bank>
<bank>
<id>086547b5-313b-42c7-acef-93d0f76b1dd5</id>
<description>SEIVY – GM FINANCIAL</description>
<pseCode>1305</pseCode>
</bank>
</banks>
</bankListResponse>
Consultar Métodos de Pago Disponibles
Este método retorna la lista de los métodos de pago disponibles en todos los paises.
Parámetros para la Solicitud y la Respuesta
Solicitud
Nombre del Campo | Formato | Tamaño | Descripción | Obligatorio |
---|---|---|---|---|
language | Alfanumérico | 2 | Idioma utilizado en la petición, este idioma se utiliza para mostrar los mensajes de error generados. Ver idiomas soportados. | Sí |
command | Alfanumérico | Máx:32 | Asigna GET_PAYMENT_METHODS . |
Sí |
test (JSON) isTest (XML) |
Booleano | Asigna true si la petición es en modo pruebas. Si no, asigna false . |
Sí | |
merchant | Objeto | Este objeto tiene los datos de autenticación. | Sí | |
merchant > apiLogin | Alfanumérico | Min:12 Máx:32 | Usuario o login entregado por PayU. Cómo obtengo mi API Login | Sí |
merchant > apiKey | Alfanumérico | Min:6 Máx:32 | Contraseña entregada por PayU. Cómo obtengo mi API Key | Sí |
Respuesta
Nombre del Campo | Formato | Tamaño | Descripción |
---|---|---|---|
code | Alfanumérico | Código de respuesta de la transacción. Los valores posibles son ERROR y SUCCESS . |
|
error | Alfanumérico | Máx:2048 | Mensaje de error asociado cuando el código de respuesta es ERROR . |
paymentMethods | Objeto | Lista de métodos de pago. | |
paymentMethods > paymentMethodComplete | Objeto | Este objeto tiene la información de un método de pago. | |
paymentMethods > paymentMethodComplete > id | Numérico | Identificador del método de pago. | |
paymentMethods > paymentMethodComplete > description | Alfanumérico | Máx:32 | Nombre del método de pago. |
paymentMethods > paymentMethodComplete > country | Alfanumérico | 2 | Código ISO del país del método de pago. |
Llamado a la API
Los siguientes son los cuerpos de la petición y la respuesta para este método. Para el propósito de este ejemplo, la respuesta muestra dos métodos de pago.
Ejemplo de una Solicitud:
{
"test": false,
"language": "en",
"command": "GET_PAYMENT_METHODS",
"merchant": {
"apiLogin": "pRRXKOl8ikMmt9u",
"apiKey": "4Vj8eK4rloUd272L48hsrarnUA"
}
}
Ejemplo de una Respuesta:
{
"code": "SUCCESS",
"error": null,
"paymentMethods": [
{
"id": "36",
"description": "EFECTY",
"country": "CO",
"enabled": true,
"reason": null
},
{
"id": "10",
"description": "MASTERCARD",
"country": "co",
"enabled": true,
"reason": null
}
]
}
Ejemplo de una Solicitud:
<request>
<language>en</language>
<command>GET_PAYMENT_METHODS</command>
<merchant>
<apiLogin>pRRXKOl8ikMmt9u</apiLogin>
<apiKey>4Vj8eK4rloUd272L48hsrarnUA</apiKey>
</merchant>
<isTest>false</isTest>
</request>
Ejemplo de una Respuesta:
<paymentMethodsResponse>
<code>SUCCESS</code>
<paymentMethods>
<paymentMethodComplete>
<id>36</id>
<description>EFECTY</description>
<country>CO</country>
<enabled>true</enabled>
</paymentMethodComplete>
<paymentMethodComplete>
<id>10</id>
<description>MASTERCARD</description>
<country>CO</country>
<enabled>true</enabled>
</paymentMethodComplete>
</paymentMethods>
</paymentMethodsResponse>
Ping
El método PING
te permite verificar la conexión con nuestra plataforma.
Parámetros para la Solicitud y la Respuesta
Solicitud
Nombre del Campo | Formato | Tamaño | Descripción | Obligatorio |
---|---|---|---|---|
language | Alfanumérico | 2 | Idioma utilizado en la petición, este idioma se utiliza para mostrar los mensajes de error generados. Ver idiomas soportados. | Sí |
command | Alfanumérico | Máx:32 | Asigna PING . |
Sí |
test (JSON) isTest (XML) |
Booleano | Asigna true si la petición es en modo pruebas. Si no, asigna false . |
Sí | |
merchant | Objeto | Este objeto tiene los datos de autenticación. | Sí | |
merchant > apiLogin | Alfanumérico | Min:12 Máx:32 | Usuario o login entregado por PayU. Cómo obtengo mi API Login | Sí |
merchant > apiKey | Alfanumérico | Min:6 Máx:32 | Contraseña entregada por PayU. Cómo obtengo mi API Key | Sí |
Respuesta
Nombre del Campo | Formato | Tamaño | Descripción |
---|---|---|---|
code | Alfanumérico | Código de respuesta de la transacción. | |
error | Alfanumérico | Máx:2048 | Mensaje de error asociado si ocurrió un error. |
transactionResponse | Objeto | Máx:2048 | La respuesta del método PING si ocurrió un error. |
Llamado a la API
Los siguientes son los cuerpos de la petición y la respuesta para este método.
Ejemplo de una Solicitud:
{
"test": false,
"language": "en",
"command": "PING",
"merchant": {
"apiLogin": "pRRXKOl8ikMmt9u",
"apiKey": "4Vj8eK4rloUd272L48hsrarnUA"
}
}
Ejemplo de una Respuesta:
{
"code": "SUCCESS",
"error": null,
"transactionResponse": null
}
Ejemplo de una Solicitud:
<request>
<language>en</language>
<command>PING</command>
<merchant>
<apiLogin>pRRXKOl8ikMmt9u</apiLogin>
<apiKey>4Vj8eK4rloUd272L48hsrarnUA</apiKey>
</merchant>
<isTest>false</isTest>
</request>
Ejemplo de una Respuesta:
<paymentResponse>
<code>SUCCESS</code>
</paymentResponse>