Checkout Clip te ayuda a integrar una solución de pago segura a tu tienda en línea. Cuando tus clientes estén listos para pagar, serán redirigidos a un sitio de pago en línea generado por tu tienda en línea a través de la API de Checkout.
El siguiente diagrama muestra cómo funciona la API de Checkout al integrarla a tu tienda en línea:
Objeto Completo
Ya sea que hayas generado un nuevo link de pago o estés revisando el estado de un link de pago generado previamente, la siguiente tabla describe los elementos del objeto de respuesta completo que recibirá tu sistema:
Elemento |
Descripción |
Tipo |
Notas |
|||||||
payment_request_id |
Identificador del link de pago. |
String |
Formato UUID. Longitud máxima 36 caracteres.
Se genera un nuevo payment_request_id en cada solicitud para Crear un nuevo link de pago |
|||||||
object_type |
Valor estático del link de pago “payment_request”. |
String |
Valor fijo |
|||||||
status |
Estado actual del link de pago. |
String |
Los estados posibles son: CHECKOUT_CREATED: El link de pago fue creado exitosamente. CHECKOUT_PENDING: El link de pago tuvo un intento de pago y se encuentra activo. CHECKOUT_CANCELLED: El link de pago fue cancelado por exceso de intentos (máximo 5). CHECKOUT_EXPIRED: El link de pago expiró. El link de pago expira después de 72 horas. CHECKOUT_COMPLETED:El link de pago se liquidó. |
|||||||
last_status_message |
Mensaje del último estado del link de pago dependiendo del elemento status. |
String |
|
|||||||
amount |
Número con decimales que representa el monto a cobrar. |
Float |
El número mínimo entero es 1. Utilizar dos decimales. Para representar 50 pesos y 50 centavos el valor del parámetro amount sería ‘50.50’
En caso de que el monto contenga más de dos decimales se redondea con el siguiente criterio:
|
|||||||
receipt_no |
Identificador de la transacción, se mostrará en el evoucher de la transacción. |
String |
Este campo se muestra cuando el valor de status es CHECKOUT_COMPLETED |
|||||||
currency |
Código de tres caracteres representando la moneda. |
String |
Formato ISO 4217 (Mayúsculas).
Nota: Por el momento, solo aceptamos pesos mexicanos “MXN” |
|||||||
purchase_description |
Texto describiendo el cargo. |
String |
Formato UTF-8 Se aceptan los siguientes caracteres especiales ~!@#$%^&*()\\=+\\\\|\\[{\\]};:'\"<>/?
No se aceptan emojis.
Longitud mínima: 1 Longitud máxima: 255 |
|||||||
redirection_url |
Objeto con las URLs para redirección del cliente después del pago. |
Objeto |
|
|||||||
|
success |
URL a la que se redireccionará al cliente cuando el pago es exitoso. |
String |
|
||||||
|
failure |
URL a la que se redireccionará al cliente cuando han fallado varios intentos. |
String |
|
||||||
|
default |
URL de la tienda virtual. |
String |
|
||||||
expires_at |
Indica la fecha y hora de expiración de la solicitud de pago. Tiene que ser mayor a 00:01:00 minuto y menor a las 23:59:59 horas (UTC) del mismo dia de creación de la solicitud |
String |
Este objeto es opcional Formato ISO 8601 ( YYYY-MM-DDTHH-MM-SSZ). Su valor default es tres días |
|||||||
metadata |
Objeto que el servicio solicitante puede utilizar para identificar la intención de pago. |
Objeto |
Formato JSON El conjunto de parejas llave:valor lo puede definir el desarrollador.
Este objeto es opcional , los elementos me_reference_id y customer_info se muestran como ejemplo. |
|||||||
|
me_reference_id |
ID de referencia de la orden para rastrear las transacciones. |
String |
Longitud máxima: 36 caracteres.
Caracteres especiales permitidos: Guión medio (-) y Guión bajo (_). Los espacios en blanco serán removidos.
Este elemento es opcional y es un ejemplo de lo que puedes incluir dentro del objeto metadata. |
||||||
|
customer_info |
Objeto con la información del cliente para el link de pago. |
Objeto |
Este objeto es opcional
|
||||||
|
|
name |
Nombre del cliente que realiza la transacción. |
String |
Este elemento es opcional Si se incluye se mostrará pre-llenado en el Checkout. |
|||||
|
|
|
Correo electrónico del cliente que realiza la transacción. |
String |
Este elemento es opcional Si se incluye se mostrará pre-llenado en el Checkout. |
|||||
|
|
phone |
Número telefónico del cliente que realiza la transacción. |
Number |
Este elemento es opcional Si se incluye se mostrará pre-llenado en el Checkout. |
|||||
|
billing_address |
Objeto con la dirección de facturación. |
Objeto |
Este objeto es opcional |
||||||
|
|
zip_code |
Código postal. |
String |
Longitud máxima: 10 caracteres.
Caracteres especiales permitidos: Guión medio (-) y punto (.).
Este elemento es opcional Si se incluye se mostrará pre-llenado en el Checkout. |
|||||
|
|
locality |
Colonia. |
String |
Longitud máxima: 255 caracteres.
Caracteres especiales permitidos: Guión medio (-) y espacio ( ).
Este elemento es opcional Si se incluye se mostrará pre-llenado en el Checkout. |
|||||
|
|
city |
Delegación o municipio. |
String |
Longitud máxima: 255 caracteres.
Caracteres especiales permitidos: Guión medio (-) y espacios.
Este elemento es opcional Si se incluye se mostrará pre-llenado en el Checkout. |
|||||
|
|
State |
Estado. |
String |
Longitud máxima: 255 caracteres.
Caracteres especiales permitidos: Guión medio (-) y espacios.
Este elemento es opcional Si se incluye se mostrará pre-llenado en el Checkout. |
|||||
|
|
country |
País. |
String |
Longitud máxima: 255 caracteres.
Caracteres especiales permitidos: Guión medio (-) y espacios.
Este elemento es opcional Si se incluye se mostrará pre-llenado en el Checkout. |
|||||
|
|
street |
Nombre de la calle. |
String |
Longitud máxima: 255 caracteres.
Caracteres especiales permitidos: Guión medio (-) y espacios.
Este elemento es opcional Si se incluye se mostrará pre-llenado en el Checkout. |
|||||
|
|
outdoor_number |
Número exterior del domicilio. |
String |
Longitud máxima: 10 caracteres.
Caracteres especiales permitidos: Guión medio (-) y espacios.
Este elemento es opcional Si se incluye se mostrará pre-llenado en el Checkout. |
|||||
|
|
interior_number |
Número interior del domicilio. |
String |
Longitud máxima: 10 caracteres.
Caracteres especiales permitidos: Guión medio (-) y espacios.
Este elemento es opcional Si se incluye se mostrará pre-llenado en el Checkout. |
|||||
|
|
reference |
Referencia del domicilio. |
String |
Longitud máxima: 255 caracteres.
Caracteres especiales permitidos: Guión medio (-) y espacios.
Este elemento es opcional Si se incluye se mostrará pre-llenado en el Checkout. |
|||||
|
|
between_streets |
Entre calles que rodean al domicilio. |
String |
Longitud máxima: 255 caracteres.
Caracteres especiales permitidos: Guión medio (-) y espacios.
Este elemento es opcional Si se incluye se mostrará pre-llenado en el Checkout. |
|||||
|
|
floor |
Número de piso del domicilio. |
String |
Longitud máxima: 10 caracteres.
Caracteres especiales permitidos: Guión medio (-) y espacios.
Este elemento es opcional Si se incluye se mostrará pre-llenado en el Checkout. |
|||||
created_at
|
Indica la fecha y hora de creación del enlace de pago. |
String |
Formato ISO 8601 ( YYYY-MM-DDTHH-MM-SSZ ) |
|||||||
modified_at
|
Indica la fecha y hora de modificación del enlace de pago. |
String |
Formato ISO 8601 ( YYYY-MM-DDTHH-MM-SSZ ) |
|||||||
payment_request_url |
Link de pago a donde se redirigirá al cliente. |
String |
|
|||||||
payment_request_code |
ID de la solicitud de pago |
String |
|
|||||||
expired_at |
Indica la fecha y hora de expiración del enlace de pago. |
String |
Formato ISO 8601 ( YYYY-MM-DDTHH-MM-SSZ ) |
|||||||
override_settings |
Objeto que el servicio solicitante puede utilizar para cambiar la configuración por default del Checkout. |
Objeto |
Este objeto es opcional
|
|||||||
|
payment_method |
Métodos de pago aceptados en el link de pago. |
String |
Este elemento es opcional
|
||||||
|
enable_tip |
Muestra u oculta las propinas. |
Boolean |
Este elemento es opcional
|
||||||
|
locale* |
Seleccionador de lenguaje: es-MX (español) o en-US (inglés). |
String |
Longitud máxima 85 caracteres. El valor default es es-MX. Este parámetro es opcional, si no se envía en la solicitud se utiliza el valor default. Acepta mayúsculas y minúsculas. |
||||||
|
currency |
Objeto que contiene la información del tipo de moneda. |
Objeto |
Este elemento es opcional |
||||||
|
|
show_currency_code |
Muestra u oculta el tipo de moneda. |
Boolean |
Este elemento es opcional
|
|||||
webhook_url |
URL del endpoint que recibirá notificaciones webhook del link de pago. |
String |
Puedes consultar la estructura de la notificación webhook en el siguiente link |
|||||||
qr_image_url |
URL del código QR del link de pago que podrá ser escaneado por tu cliente. |
String |
|
*La API de Checkout de Clip tiene cuatro factores de prioridad para determinar el idioma de la página de pago:
- El idioma elegido por el usuario.
- El campo locale en
override_settings
. - El idioma del navegador.
- El idioma predeterminado: es-MX.
El objeto completo en formato JSON se muestra a continuación:
{
"payment_request_id": "2cbf5775-1cdd-4601-9712-c4a6ab7fa6f5",
"object_type": "payment_link",
"status": "CHECKOUT_CREATED",
"last_status_message": "Payment Request is active",
"amount": 100.25,
"receipt_no": "EyCtYWF",
"currency": "MXN",
"purchase_description": "Backpack's sale",
"redirect_url": {
"success": "https://my-website.com/redirection/success",
"error": "https://my-website.com/redirection/error",
"default": "https://my-website.com/redirection/default",
},
"metadata": {
"me_reference_id": "OID123456789",
"customer_info": {
"name": "Alejandro Lee",
"email": "[email protected]",
"phone": "5512345678"
},
"billing_address": {
"zip_code": "03800",
"locality": "San Pedro",
"city": "Benito Juárez",
"country": "México",
"state": "Ciudad de México",
"street": "Av Uno",
"outdoor_number": "104",
"interior_number": "A203",
"reference": "Edificio gris",
"between_streets": "Entre calle 13 y calle 9",
"floor": "2"
}
},
"override_settings": {
"payment_method": [
"CARD",
"CASH"
],
"locale": "en-US",
"enable_tip": false,
"currency": {
"show_currency_code": false
}
},
"webhook_url": "https://hook.us1.make.com/k5f98kqxuuxgn4td6hgejrnu6lsi362p",
"created_at": "2020-04-30T00:00:00.000Z",
"modified_at": "2020-04-30T00:00:00.000Z",
"payment_request_url": "https://completa-tu-pago.payclip.com/b7192811-6fa0-4038-b8dc-ad755dad1975",
"expired_at": "2020-04-30T00:00:00.000Z",
"payment_request_code": "TG7SBSMF",
"qr_image_url": "https://clip.mx/qr/bee00b60-595f-4540-bdfc-b9d85eb00b5b"
}
Mensajes de error
La siguiente tabla detalla los mensajes de error para la API de Checkout Clip
Código HTTP |
Mensaje |
Código de mensaje |
Detalle |
|
400 |
Objeto no encontrado |
001 |
Cuerpo de la solicitud vacío |
|
400 |
Entrada inválida |
002 |
Error de validación de formato |
|
400 |
Entrada inválida |
002 |
Error de validación del monto |
|
400 |
Entrada inválida |
002 |
Error de validación del campo "expires_at" |
|
400 |
Campo inválido |
003 |
Error de validación de contenido |
|
400 |
Solicitud incorrecta |
004 |
Error al crear payment_link |
|
400 |
Método de pago inválido/Desconocido |
005 |
El método de pago tiene un valor incorrecto |
|
401 |
Error de autorización |
011 |
Token de autenticación incorrecto |
|
403 |
Prohibido |
- |
Solicitud bloqueada.Si tu sitio web está alojado en un servidor fuera de México o EUA, favor de contactar a Customer Happiness para recibir asistencia.
|
|
404 |
No encontrada |
021 |
Página no encontrada |
|
412 |
Límite de solicitudes alcanzado |
031 |
Las siguientes son los motivos de excedentes del límite de solicitudes:
* Monto máximo por link de pago * Número de links creados por día * Max TPV acumulado por link creado por día
|
|
500 |
Error de Servidor Interno |
101 |
Hubo un error en la validación del payment_link. |
Este es un ejemplo del objeto de error en formato JSON:
{
“message”: ”Solicitud incorrecta”,
“code_message”: ”004”,
“detail”: “Error al crear payment_link”
}
Colección Postman
Descarga la colección Postman de los endopoints de la API de Checkout en el siguiente link.
Incorpora el botón Clip
Completa el proceso usando nuestros botones y comunica a tus clientes que cobras con Clip.
- En distintos formatos visuales
- Adaptables a cada tamaño de pantalla
- Con varios estilos para cada contexto de uso
¿Necesitas Ayuda?
Consulta las preguntas frecuentes y guías de solución de problemas de nuestro centro de soporte a desarrolladores .
Si lo que buscas no está documentado, contáctanos por alguno de los siguientes medios:
- Activa el botón de Ayuda y llena el formulario. No olvides proporcionar un correo electrónico y tus dudas para que podamos asistirte de manera eficiente.
- Publica tu pregunta en nuestro Foro. Publicar en el foro puede ayudar a otros desarrolladores que están experimentando el mismo problema.
- Envía un correo electrónico a la dirección [email protected].
O comunícate con nuestra área de Customer Happiness:
- Llámanos al 55 6393-2323, Clip es el único con atención personalizada 24/7 los 365 días del año.
- Envíanos un mensaje por WhatsApp al 55 6393-2323.
- Escríbenos al correo [email protected]