Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Página 1
API RESTful – V2.2.1
Modelo Respuesta Transacción Pendiente ................................................................. 52
Modelo Respuesta Transacción PSE Aprobada ......................................................... 52
Modelo Respuesta Transacción PSE Fallida .............................................................. 52
Modelo Respuesta Transacción Tarjeta de Crédito Aprobada ................................. 52
Modelo Respuesta Transacción Tarjeta de Crédito Rechazada ............................... 52
Modelo HTML para Solicitud de Procesamiento de Pago TC - PSE......................... 52
Modelo HTML Uso Url de Retono al Comercio ........................................................... 52
Colección de Postman – Modelo de Uso Url Notificación Resultado ...................... 52
Página 2
API RESTful – V2.2.1
1. INFORMACIÓN DE VERSIONAMIENTO
Observación general: Los ejemplo de peticiones contenidas en el presente documento, que se
realizan mediante cURL son modelos probados, sin embargo no son regla, tenga en cuenta que de
acuerdo a la librería/versión de cURL que utilice, podrían tener variaciones en su ejecución.
Página 3
API RESTful – V2.2.1
transparente hacia esta versión. No obstante lo anterior, dichos comercios deberán realizar la
actualización de sus integraciones, conforme al actual manual de integración, antes del 31 de
marzo de 2021.
Página 4
API RESTful – V2.2.1
parámetro ‘clt_url_retorno_automatico’ cuando se crea la transacción, si dicho parámetro no
es recibido o se recibe vacío, el valor retornado será la url de retorno automático global
configurada para el comercio
- Agrega campo ‘informacionAdicional’ a la respuesta al procesamiento de una solicitud de
pago y a la consulta de transacciones, la información retornada corresponde con la
información recibida en el parámetro clt_informacion_adicional cuando se crea la
transacción
- Agrega campo ‘pagador’ a la respuesta al procesamiento de una solicitud de pago y a la
consulta de transacciones, este campo contiene un objeto json con información que recibe
Pagueatiempo.com al iniciar una transacción tales como: nombres, apellidos, email,
dirección, teléfono, móvil, país, ciudad y nacionalidad.
Página 5
API RESTful – V2.2.1
Página 6
API RESTful – V2.2.1
2. AMBIENTES DE INTEGRACIÓN
Los comercios cuentan con dos ambientes de integración: QA y Producción
URL QA
https://apiqa.pagueatiempo.io
URL Producción
https://api.pagueatiempo.com
Página 7
API RESTful – V2.2.1
3. AUTENTICACIÓN
Para iniciar el procesamiento de cualquier tipo de solicitud, por ejemplo: una
solicitud de pago, el comercio deberá autenticarse con el objetivo de obtener el
token de autenticación correspondiente.
Cada token estará vigente para una (1) sola petición independiente del endpoint a
consumir. Del mismo modo, el tiempo máximo de vida de cada token es de una (1)
hora.
Cabe anotar que todos los tokens generados son firmados electrónicamente por la
plataforma y en cada respuesta retornada por el sistema se devolverá un token de
refresco dentro de los encabezados correspondientes a Response Headers, token
que podrá ser utilizado en la siguiente petición conforme a su ciclo de vida.
Endpoint
https://{url_ambiente_pagueatiempo}/api/v2/login
Método HTTP
POST
Parámetros Requeridos
email comercio@dominio.com
password 123456
Tipo de Respuesta
Objeto JSON
1 https://es.wikipedia.org/wiki/JSON_Web_Token
Página 8
API RESTful – V2.2.1
Ejemplo Request
curl --location --request POST 'https://
https://{url_ambiente_pagueatiempo}/api/v2/login?email=comercio@example.com&password=@PassWord' \
--header 'Content-Type: application/json' \
--header 'X-Requested-With: XMLHttpRequest' \
--header 'Accept: application/json'
Endpoint
https://{url_ambiente_pagueatiempo}/api/v2/cambiar-password
Método HTTP
POST
Página 9
API RESTful – V2.2.1
Headers
Content-Type: application/json
X-Requested-With: XMLHttpRequest
Accept: application/json
Authorization: Bearer token_autenticacion (previamente obtenido)
Parámetros Requeridos
claveActual 123456
claveNueva 654321
Tipo de Respuesta
Objeto JSON
Ejemplo Request
curl --location --request POST 'https://{url_ambiente_pagueatiempo}/api/v2/cambiar-password?claveActual=123456&claveNueva=123456' \
--header 'Content-Type: application/json' \
--header 'X-Requested-With: XMLHttpRequest' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1N…'
Página 10
API RESTful – V2.2.1
Ejemplo de Respuesta No Procesable (Código HTTP 422)
{
"message": "Error en Clave Nueva",
"errors": [
"El formato del campo clave nueva no es válido."
]
}
Para dar cumplimiento a los requerimientos establecidos por la ley 1581 de 2012,
y para obtener la aprobación final del proceso de integración con
Pagueatiempo.com, es obligación del comercio agregar en su proceso de
checkout una casilla de verificación que indique al usuario pagador que debe dar
click y aceptar los “Términos y condiciones de uso y la política de privacidad y
tratamiento de datos personales” de Pagueatiempo.com.
Página 11
API RESTful – V2.2.1
6. PAGOS CON TARJETA DE CRÉDITO Y PSE
Url de Procesamiento
La URL de procesamiento se obtiene en el momento de la autenticación en el
parámetro url_procesamiento.
Método HTTP
POST
Parámetros Requeridos
Parámetro Tipo / Longitud Descripción Obligatorio
metodo_pago Alfanumérico Indica el método de pago, NO
Max 10 para transacciones PSE o TC
el valor enviado debe ser:
pse_tc
token Alfanumérico Token de Autenticación Si
Max N/A
nit_comercio Numérico NIT del Comercio o Si
Max 20 documento registrado en
pagueatiempo.com, NO debe
incluir el dígito de verificación,
ni separadores de miles o
decimales
valor Decimal 15.2 Valor total a pagar o de Si
Max 15 enteros con compra. El valor debe ir sin
2 decimales separadores de miles y usar
punto (.) como separador de
decimales
Página 12
API RESTful – V2.2.1
Parámetro Tipo / Longitud Descripción Obligatorio
iva Decimal 15.2 Monto del valor IVA, relativo Si
Max 15 enteros con al impuesto asociado a la
2 decimales compra, si la compra NO
tiene IVA el parámetro debe
enviarse en ceros: 0.00
moneda Alfanumérico Código de moneda según Si
Max 3 estándar ISO-4217, ej, Peso
Colombiano COP
numero_orden Numérico Número (identificador) del Si
Max 18 pedido en el sistema del
comercio, debe ser único
para cada transacción del
comercio en el sistema.
nombre_usuario Alfanumérico Nombre del usuario que No
Max 150 realiza el pago
correo_usuario Alfanumérico Correo del usuario que realiza Obligatorio si
Max 100 el pago posee módulo
antifraude
tipo_documento_usuario Alfanumérico Tipo de documento del Obligatorio si
Max 3 usuario que realiza el pago: posee módulo
antifraude
NIT => NIT
CC => CEDULA DE CIUDADANIA
CE => CEDULA EXTRANJERIA
Página 13
API RESTful – V2.2.1
Parámetro Tipo / Longitud Descripción Obligatorio
url_retorno_comercio Alfanumérico URL de retorno al comercio. Si
Max 255
Esta url se utiliza para
redirigir al usuario de vuelta al
comercio, la redirección se
realiza mediante FormData2
url_notificacion_resultado Alfanumérico URL de notificación Si
Max 255 automática del resultado de la
transacción (Webhook3)
La información es enviada
mediante método POST y el
body del request contendrá
un objeto json con los
parámetros retornados.
json_params Json4 Json en donde el comercio No
puede enviar información
relevante para la transacción,
esta información es retornada
al comercio cuando se le
notifica el resultado de la
transacción.
{
"<name1>":"<value1>",
…
"<nameN>":"<valueN>"
}
2
https://developer.mozilla.org/es/docs/Learn/HTML/Forms/Sending_and_retrieving_form_data
3
https://es.wikipedia.org/wiki/Webhook
4
https://www.json.org/json-en.html
Página 14
API RESTful – V2.2.1
En el primer intento si NO se obtiene respuesta del comercio (timeout) o si el
código HTTP de respuesta del comercio es diferente de 200 se reintenta:
Página 15
API RESTful – V2.2.1
Parámetro Tipo / Longitud Descripción
transacción es abandonada antes de realizar
el pago
numero_orden Numérico Número (identificador) del pedido en el
Max 32 sistema del comercio es único para cada
comercio en el sistema.
idtr_pagueatiempo Numérico Número (identificador) de la transacción en
Max 32 pagueatiempo.com
valor Decimal 15.2 Valor total de pago o compra.
Max 15 enteros con
2 decimales
iva Decimal 15.2 Monto del valor IVA, relativo al impuesto
Max 15 enteros con asociado a la compra, si la compra NO tiene
2 decimales IVA el parámetro se retornará en ceros: 0.00
moneda Alfanumérico Código de moneda según estándar ISO-4217,
Max 3 ej, Peso Colombiano COP
autorizacion Alfanumérico En caso que la transacción haya sido
Max 20 autorizada/rechazada/negada/fallida, este
parámetro podrá contener el código de la
transacción.
error_code Alfanumérico Código de resultado de procesamiento de la
Max 4 transacción:
0 = Rechazada
2 = Aprobada
4 = Anulada
6 = Rechazada
7 = Pendiente
8 = Fallida o Abandonada
error_message Alfanumérico Mensaje complementario al parámetro
Max 100 error_code
estado Alfanumerico Estado de procesamiento de la transacción:
Max 50
Aprobada
Anulada
Rechazada
Pendiente
Fallida o Abandonada
detalle_pse Json Json conteniendo información relacionada con
el procesamiento de la transacción cuando el
pago es realizado mediante PSE:
{
"docType": "CC",
"userType": "0",
"docNumber": "1010123456",
"finalizeStatus": "SUCCESS",
"traceabilityCode": "1874622",
"financialInstitutionCode": "1022"
}
Página 16
API RESTful – V2.2.1
Parámetro Tipo / Longitud Descripción
detalle_tc Json Json conteniendo información relacionada con
el procesamiento de la transacción cuando el
pago es realizado mediante Tarjeta de Crédito:
{
"pan": "456396**1999",
"maskedPan": "456396**1999",
"expiration": "202412",
"approvalCode": "097295",
"paymentSystem": "VISA",
"cardholderName": "Pedro Perez"
}
456396**1999
numero_cuotas Numérico Numero de cuotas cuando el pago es
realizado con Tarjeta de Crédito
ip Alfanumérico Dirección IP desde donde se realizó el pago
Max 15
json_params Json Json enviado por el comercio al inicio de la
transacción, si el comercio NO envió el
parámetro, de todas maneras es retornado
con valores agregados por
pagueatiempo.com:
{
"IVA.amount": "1900000",
"installments": 1,
}
Página 17
API RESTful – V2.2.1
Parámetro Tipo / Longitud Descripción
"nombres" : "",
"email" : "",
"tipo_documento": "",
"documento" : "",
"direccion" : "",
"telefono" : ""
}
Página 18
API RESTful – V2.2.1
● estado
● ip
o identificacion_comercio
o fecha_hora_final
o numero_orden
o moneda
o valor
o autorizacion
o error_code
o error_message
o estado
o ip
Una vez el hash es calculado por el comercio deberá compararlo contra el hash
retornado por pagueatiempo.com, dicha comparación derivará en dos posibles
opciones:
1. Los hash son iguales, en cuyo caso la transacción es válida y puede ser
procesada por el comercio.
2. Los hash son diferentes, lo que implica que la data transmitida por
pagueatiempo.com fue modificada en algún punto antes de ser recibida
por el comercio y dicha data NO puede ser utilizada por el comercio. En
este caso se sugiere que el comercio consulte la transacción a través del
endpoint de Consulta de Transacciones Por Número de Transacción
y que utilice como válidos los valores retornados por dicha consulta.
Documentación Relacionada:
Página 19
API RESTful – V2.2.1
https://es.wikipedia.org/wiki/HMAC
Observaciones:
Página 20
API RESTful – V2.2.1
Página 21
API RESTful – V2.2.1
Endpoint
https://{url_ambiente_pagueatiempo}/api/v2/consultar-transaccion
Método HTTP
POST
Headers
Content-Type: application/json
Página 22
API RESTful – V2.2.1
X-Requested-With: XMLHttpRequest
Accept: application/json
Authorization: Bearer token_autenticacion (previamente obtenido)
Parámetros Requeridos
nit_comercio NIT del Comercio o documento de identidad con el que se registró
en pagueatiempo.com, NO debe incluir el dígito de verificación, ni
separadores de miles o decimales (Solo números)
numero_orden 123456 (Identificador de la orden en el comercio)
idtr_pagueatiempo 654321 (Identificador de la orden en pagueatiempo – no
obligatorio)
Tipo de Respuesta
Objeto JSON
Ejemplo Request
curl --location --request POST 'https://{url_ambiente_pagueatiempo}/api/v2/consultar-transaccion' \
--header 'Content-Type: application/application-json' \
--header 'X-Requested-With: XMLHttpRequest' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1N…' \
--form 'numero_orden=123456' \
--form 'idtr_pagueatiempo=654321' \
--form 'nit_comercio=900123456'
Página 23
API RESTful – V2.2.1
"valor": "",
"iva": "",
"autorizacion": "",
"error_code": "",
"error_message": "",
"estado": "",
"detalle_pse": "",
"detalle_tc": "",
"numero_tarjeta": "",
"numero_cuotas": "",
"ip": "",
"json_params": {},
"url_retorno_comercio": "",
"url_notificacion_resultado": "",
"usuario": {}
}
}
Endpoint
https://{url_ambiente_pagueatiempo}/api/v2/consulta-transacciones
Método HTTP
Página 24
API RESTful – V2.2.1
POST
Headers
Content-Type: application/json
X-Requested-With: XMLHttpRequest
Accept: application/json
Authorization: Bearer token_autenticacion (previamente obtenido)
Parámetros Requeridos
nit_comercio NIT del Comercio o documento de identidad con el que se registro
en pagueatiempo.com, NO debe incluir el dígito de verificación, ni
separadores de miles o decimales (Solo números)
fecha_inicial 2020-05-01 (Fecha en formato YYYY-MM-DD)
fecha_final 2020-05-31 (Fecha en formato YYYY-MM-DD)
Tipo de Respuesta
Objeto JSON
En la respuesta exitosa se retornará una colección de objetos Json (uno por cada
transacción encontrada), en donde cada objeto Json contendrá los parámetros
relacionados en el Numeral 3 - Parámetros Retornados
Ejemplo Request
curl --location --request POST 'https://{url_ambiente_pagueatiempo}/api/v2/consulta-transacciones' \
--header 'Content-Type: application/json' \
--header 'X-Requested-With: XMLHttpRequest' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1N…' \
--form 'nit_comercio=900123456' \
--form 'fecha_inicial=2020-09-01' \
--form 'fecha_final=2020-09-30'
Página 25
API RESTful – V2.2.1
"data": [
{
"comercio": "",
"identificacion_comercio": "",
"codigo_unico": "",
"terminal": "",
"fecha_hora_inicio": "",
"fecha_hora_final": "",
"tipo_pago": "",
"numero_orden": "",
"idtr_pagueatiempo": "",
"moneda": "",
"valor": "",
"iva": "",
"autorizacion": "",
"error_code": "",
"error_message": "",
"estado": "",
"detalle_pse": "",
"detalle_tc": "",
"numero_tarjeta": "",
"numero_cuotas": "",
"ip": "",
"json_params": {},
"url_retorno_comercio": "",
"url_notificacion_resultado": "",
"usuario": {}
},
{
"comercio": "",
"identificacion_comercio": "",
"codigo_unico": "",
"terminal": "",
"fecha_hora_inicio": "",
"fecha_hora_final": "",
"tipo_pago": "",
"numero_orden": "",
"idtr_pagueatiempo": "",
"moneda": "",
"valor": "",
"iva": "",
"autorizacion": "",
"error_code": "",
"error_message": "",
"estado": "",
"detalle_pse": "",
Página 26
API RESTful – V2.2.1
"detalle_tc": "",
"numero_tarjeta": "",
"numero_cuotas": "",
"ip": "",
"json_params": {},
"url_retorno_comercio": "",
"url_notificacion_resultado": "",
"usuario": {}
}
]
}
7. PAGOS EN EFECTIVO
Este servicio NO se encuentra activado por defecto para los comercios y debe ser
habilitado previa solicitud.
Página 27
API RESTful – V2.2.1
Url de Procesamiento
La URL de procesamiento se obtiene en el momento de la autenticación en el
parámetro url_procesamiento.
Método HTTP
POST
Parámetros Requeridos
Parámetro Tipo / Longitud Descripción Obligatorio
token Alfanumérico Token de Autenticación Si
Max N/A
nit_comercio Numérico NIT del Comercio o Si
Max 20 documento registrado en
pagueatiempo.com, NO debe
incluir el dígito de verificación,
ni separadores de miles o
decimales
metodo_pago Alfanumérico Indica el método de pago, Si
Max 10 único valor aceptado:
efectivo
medio_pago_efectivo Alfanumérico Indica el medio de pago, su Si
Max 25 valor debe ser alguno de los
siguientes:
efecty apostar
gana sured
baloto susuerte
puntored
valor Numérico Valor total a pagar o de Si
compra. El valor debe ser un
valor entero positivo, no
puede tener decimales, si se
envían decimales
pagueatiempo.com
redondeará el valor hacia
arriba, ej, 500.58 sera
procesado como 501
iva Decimal 1.3 Monto porcentual Si
Max 1 entero con 3 correspondiente al IVA de la
decimales orden, ej, para IVA del 19% el
valor a enviar debe ser 0.19
Si la transacción NO tiene
IVA deberá enviarse el valor
en ceros: 0.00
Página 28
API RESTful – V2.2.1
Parámetro Tipo / Longitud Descripción Obligatorio
descripcion Alfanumerico Descripción de la transacción Si
Max 250
moneda Alfanumérico Código de moneda según Si
Max 3 estándar ISO-4217, ej, Peso
Colombiano COP
numero_orden Numérico Número (identificador) del Si
Max 16 pedido en el sistema del
comercio es único para cada
comercio en el sistema.
nombre_usuario Alfanumérico Nombre del usuario que No
Max 150 realiza el pago
correo_usuario Alfanumérico Correo del usuario que realiza No
Max 100 el pago
tipo_documento_usuario Alfanumérico Tipo de documento del No
Max 3 usuario que realiza el pago:
La información es enviada
mediante método POST y el
body del request contendrá
un objeto json con los
parámetros retornados.
5
https://es.wikipedia.org/wiki/Webhook
Página 29
API RESTful – V2.2.1
efectivo
medio_pago_efectivo Alfanumérico Indica el medio de pago utilizado
Max 25
descripcion Alfanumérico Descripción de la transacción
Max 250
url_notificacion_resultado Alfanumérico URL de retorno automático para la transacción
Max 255 (webhook). La información de la respuesta es
enviada a esta URL mediante método POST y
el body del request contendrá un objeto json
con los parámetros.
usuario Json Json conteniendo informacion del usuario que
realizó el pago, contendrá valores siempre que
el comercio halla enviado los parámetros
correspondientes al inicio de la transacción:
Página 30
API RESTful – V2.2.1
Parámetro Tipo / Longitud Descripción
"nombres" : "",
"email" : "",
"tipo_documento": "",
"documento" : "",
"direccion" : "",
"telefono" : ""
}
Página 31
API RESTful – V2.2.1
hash del request, este hash es calculado teniendo en cuenta que la cadena a cifrar
es precisamente el request de la petición, el cual es un objeto json (body del
request).
Una vez el hash es calculado por el comercio deberá compararlo contra el hash
retornado por pagueatiempo.com, dicha comparación derivará en dos posibles
opciones:
1. Los hash son iguales, en cuyo caso la transacción es válida y puede ser
procesada por el comercio.
2. Los hash son diferentes, lo que implica que la data transmitida por
pagueatiempo.com fue modificada en algún punto antes de ser recibida
por el comercio y dicha data NO puede ser utilizada por el comercio. En
este caso se sugiere que el comercio consulte la transacción haciendo
uso del endpoint de consulta de transacciones en efectivo por numero de
transacción de la presente documentación y que utilice como válidos los
valores retornados por dicha consulta.
Documentación Relacionada:
https://es.wikipedia.org/wiki/HMAC
Observaciones:
Endpoint
https://{url_ambiente_pagueatiempo}/api/v2/consultar-transaccion-efectivo
Método HTTP
POST
Página 32
API RESTful – V2.2.1
API Rate Limit
Máximo 12 consultas por hora por comercio
Headers
Content-Type: application/json
X-Requested-With: XMLHttpRequest
Accept: application/json
Authorization: Bearer token_autenticacion (previamente obtenido)
Parámetros Requeridos
nit_comercio NIT del Comercio o documento de identidad con el que se registró en
pagueatiempo.com, NO debe incluir el dígito de verificación, ni
separadores de miles o decimales (Solo números)
numero_orden 123456 (Identificador único de la transacción)
idtr_pagueatiempo 654321 (Identificador de la orden en pagueatiempo – no obligatorio)
Tipo de Respuesta
Objeto JSON
Ejemplo Request
curl --location --request POST 'https://{url_ambiente_pagueatiempo}/api/v2/consultar-transaccion-efectivo' \
--header 'Content-Type: application/application-json' \
--header 'X-Requested-With: XMLHttpRequest' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1N…' \
--form 'numero_orden =123456' \
--form 'nit_comercio=900123456' \
--form 'idtr_pagueatiempo=654321'
{
"data": {
"comercio": "",
Página 33
API RESTful – V2.2.1
"identificacion_comercio": "",
"fecha_hora_respuesta": "",
"idtr_pagueatiempo": "",
"numero_orden": "",
"moneda": "",
"valor": "",
"iva": "",
"autorizacion": "",
"mensaje_autorizacion": "",
"metodo_pago": "",
"medio_pago_efectivo": "",
"descripcion": "",
"url_notificacion_resultado": "",
"usuario": {}
}
}
Endpoint
https://{url_ambiente_pagueatiempo}/api/v2/consulta-transacciones-efectivo
Método HTTP
POST
Página 34
API RESTful – V2.2.1
API Rate Limit
Máximo 1 consulta por hora por comercio
Rango máximo de consulta un (1) mes calendario
Headers
Content-Type: application/json
X-Requested-With: XMLHttpRequest
Accept: application/json
Authorization: Bearer token_autenticacion (previamente obtenido)
Parámetros Requeridos
nit_comercio NIT del Comercio o documento de identidad con el que se registro
en pagueatiempo.com, NO debe incluir el dígito de verificación, ni
separadores de miles o decimales (Solo números)
clt_start_date 2019-05-01 (Fecha en formato YYYY-MM-DD)
clt_end_date 2019-05-31 (Fecha en formato YYYY-MM-DD)
Tipo de Respuesta
Objeto JSON
En la respuesta exitosa se retornará una colección de objetos Json (uno por cada
transacción encontrada), en donde cada objeto Json contendrá los parámetros
relacionados en los Parámetros Retornados
Ejemplo Request
curl --location --request POST 'https://{url_ambiente_pagueatiempo}/api/v2/consulta-transacciones-efectivo' \
--header 'Content-Type: application/json' \
--header 'X-Requested-With: XMLHttpRequest' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1N…' \
--form 'nit_comercio=900123456' \
--form 'clt_start_date=2019-09-01' \
--form 'clt_end_date=2019-09-30'
Página 35
API RESTful – V2.2.1
"comercio": "",
"identificacion_comercio": "",
"fecha_hora_respuesta": "",
"idtr_pagueatiempo": "",
"numero_orden": "",
"moneda": "",
"valor": "",
"iva": "",
"autorizacion": "",
"mensaje_autorizacion": "",
"metodo_pago": "",
"medio_pago_efectivo": "",
"descripcion": "",
"url_notificacion_resultado": "",
"usuario": {}
},
{
"comercio": "",
"identificacion_comercio": "",
"fecha_hora_respuesta": "",
"idtr_pagueatiempo": "",
"numero_orden": "",
"moneda": "",
"valor": "",
"iva": "",
"autorizacion": "",
"mensaje_autorizacion": "",
"metodo_pago": "",
"medio_pago_efectivo": "",
"descripcion": "",
"url_notificacion_resultado": "",
"usuario": {}
}
]
}
Página 36
API RESTful – V2.2.1
{
"data":[]
}
8. LINKS DE PAGOS
Los links de pagos generados por un comercio pueden ser administrados (crear,
modificar, activar/inactivar) a través del panel de control del comercio en
pagueatiempo.com, este método le facilita al comercio el proceso de
automatización en la creación de los mismos.
Endpoint
https://{url_ambiente_pagueatiempo}/api/v2/sistema/transacciones/links-de-
pagos/crear
Método HTTP
POST
Página 37
API RESTful – V2.2.1
clp_moneda_id Alfanumérico Código de moneda según SI
Max 3 estándar ISO-4217
correspondiente a la moneda
de Colombia, único valor
válido: COP
clp_valor Decimal 15.2 Valor total a pagar o de SI
Max 15 enteros con compra. El valor debe ir sin
2 decimales separadores de miles y usar
punto (.) como separador de
decimales. Este valor debe
incluir el valor del IVA
clp_iva_porcentaje Decimal 3.2 Procentaje correspondiente al SI
Max 3 enteros con 2 IVA. El valor debe ir sin
decimales separadores de miles y usar
punto (.) como separador de
decimales, ej 19.00.
Headers
Content-Type: application/json
X-Requested-With: XMLHttpRequest
Accept: application/json
Authorization: Bearer token_autenticacion
Tipo de Respuesta
Objeto JSON
Ejemplo Request
curl --location --request POST \
'https://{url_ambiente_pagueatiempo}/api/v2/sistema/transacciones/links-de-pagos/crear' \
--header 'Content-Type: application/json' \
--header 'X-Requested-With: XMLHttpRequest' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1N…' \
--form 'cli_identificacion=900123456' \
Página 38
API RESTful – V2.2.1
--form 'clp_concepto=Link de pago de prueba' \
--form 'clp_descripcion=Generación de un link de pago de prueba' \
--form 'clp_factura_orden=123456' \
--form 'clp_moneda_id=COP' \
--form 'clp_valor=119000.00' \
--form 'clp_iva_porcentaje=19.00' \
--form 'clp_iva_valor=19000.00'
• Tarjeta de Crédito
• PSE
• Efectivo
Página 39
API RESTful – V2.2.1
Página 40
API RESTful – V2.2.1
Página 41
API RESTful – V2.2.1
Página 42
API RESTful – V2.2.1
CÓDIGO DESCRIPCIÓN
0000 Aprobada
0001 El id de Cliente no es válido
0002 El código no es válido
0003 El password indicado no es válido
0004 Aliado no registrado en Pagueatiempo
0005 Aliado no autorizado
0006 Password incorrecto
0007 La Referencia no esta registrada o no es válida
0008 Cliente inactivo
0009 Error en procesamiento:
0010 ID de transacción no valido
0011 ID de transacción ya existe
0012 Imposible completar el registro
0013 ID de transacción no existe
0014 La transacción ya fue anulada
0015 La transacción no puede ser anulada. Comuníquese con atención al cliente de
Pagueatiempo
0016 Los datos del cliente no corresponden con nuestros registros. Comuníquese
Pagueatiempo
0017 El merchantID no es válido
0018 Comercio no registrado en Pagueatiempo
0019 Comercio no autorizado
0020 La orden de compra ya se encuentra registrada
0021 El monto no es válido
0022 Código del país no es válido
0023 La moneda no es válida
0024 El tiempo máximo de la orden debe estar entre 30m y 30d
0025 El checksum no es válido
0026 No puede crear una orden de compra en la moneda especificada para el país
indicado
0027 El método de pago no es valido
0028 Ha ocurrido un error en la transacción, espere unos minutos e intente de nuevo
0029 La descripción no puede estar vacía
0030 Ocurrió un error al registrar la orden. Intente de nuevo en unos minutos. Si el
persiste el error comuníquese con Pagueatiempo
Página 43
API RESTful – V2.2.1
CÓDIGO DESCRIPCIÓN
0031 La fecha de expiración no es valida. Debe indicar DDMMAAAA
0032 La fecha de expiración debe ser mayor a la fecha de hoy
0033 La fecha de expiración debe ser mayor a 24 horas
0034 La cantidad de pagos debe ser mayor a 1
0035 La frecuencia de pagos debe ser mayor a un día
0036 Imposible registrar la compra con los datos proporcionados. Comuniquese con
Pagueatiempo
0037 Merchant no autorizado
0038 El cliente ya se encuentra vinculado
0039 Las cuentas no están vinculadas
0040 Los datos no coinciden
0041 La orden no se encuentra registrada o se encuentra APROBADA, VENCIDA o
CANCELADA
0042 Ya existe una orden con el mismo PO_ID
0043 Ya existe una orden activa con la misma referencia de pago
0044 El tiempo de vida no es valido. Debe tener formato NNNX, donde NNN es un
número entero y X una letra (m, h o d)
0045 Debe indicar una referencia de pago
0046 La orden indicada no pertenece al comercio indicado
0047 Debe indicar el email
0050 Operación no definida
0051 Falta o no es valido el lifetime
0052 Falta o no es valido el lifetime
0053 Tiene una operación en proceso de pago
0060 Ha superado el limite de transacciones permitidas, por favor contáctenos para
completar su proceso de inscripción
0061 El código de comercio no existe
0062 Debe indicar true o false en confirm
0063 La fecha de vencimiento no es valida
9996 Fallida
9997 No Definido
9998 Vencida
9999 Pendiente
Página 44
API RESTful – V2.2.1
Página 45
API RESTful – V2.2.1
Página 46
API RESTful – V2.2.1
Página 47
API RESTful – V2.2.1
<?php
$coincide = 'NO';
if(isset($_POST['hash_transaccion'])) {
$hash = hash_hmac(
'sha256',
'900280984' . // Nit del comercio sin dígito de verificación
$_POST['fecha_hora_final'] .
$_POST['numero_orden'] .
$_POST['moneda'] .
$_POST['valor'] .
$_POST['autorizacion'] .
$_POST['error_code'] .
$_POST['error_message'] .
$_POST['estado'] .
$_POST['ip'],
'bdULe11sJQ01zOh1E6Xj9ERPWSPo3BhCgz61nzyprVAblVIbWolKir4+Xh+RkR6f6Ut6wf7afEU8gFqHXxyqKA=='
// Hash Key del comercio
);
if ($_POST['hash_transaccion'] == $hash) { $coincide = 'SI'; }
}
Página 48
API RESTful – V2.2.1
2. url_notificacion_resultado, es la URL que se utiliza como webhook o endpoint
del comercio para enviarle un request o petición automática mediante método
POST, y en los headers del request se incluye el header X-PAT-SIGNATURE el
cual contiene el hash de la transacción (tener en cuenta que el hash no se envía
como parámetro sino como header). En este caso el hash debe ser calculado
teniendo en cuenta que los parámetros retornados de la transacción son un json
que componen el body de la petición, y se debe tener en cuenta ese json como
string para el cálculo.
$bodyHash = '';
foreach($_SERVER as $index => $value) {
if($index == 'HTTP_X_PAT_SIGNATURE')
$bodyHash = $value;
}
if ($bodyHash == $hash) { $coincide = 'SI'; }
Página 49
API RESTful – V2.2.1
Página 50
API RESTful – V2.2.1
Página 51
API RESTful – V2.2.1
El siguiente material puede ser descargado desde las url indicadas y sirve como
material de apoyo técnico a los comercios en su labor de integración:
Página 52