Solicitud de link de pago
POST {endpoint definido por la aplicación}Para aplicaciones de pago, se debe implementar el siguiente flujo que requiere la creación de un endpoint de tipo POST que reciba el siguiente body y headers, y retorne la url para que el usuario abone dicha orden.
A diferencia de los demás endpoints de esta documentación, en este caso es Empretienda quien realiza la petición HTTP hacia un endpoint provisto por la aplicación.
Headers
{
"X-Shop-Id": "1234",
"X-API-Key": "api-key-provisto-por-app"
}| Parámetro | Tipo | Descripción |
|---|---|---|
X-Shop-Id | string | Identificador único de la tienda que desea obtener un link de pago. |
X-API-Key | string | API Key provisto por la aplicación para validar la solicitud. |
Body
{
"title": "Orden de TiendaOnline #12",
"logo": "https://cdn.com/logo.jpg",
"external_reference": "order-4542523",
"currency": "ARS",
"total": 1100.00,
"subtotal": 1000.00,
"coupon_discount": 0.00,
"payment_method_discount": 0.00,
"shipment_price": 100.00,
"customer": {
"email": "usuario@example.com",
"name": "John",
"surname": "Doe",
"identification": {
"type": "DNI",
"value": "12345678"
},
"phone": "5491100000000",
"address": {
"street": "Calle Falsa",
"number": "123",
"floor": "3",
"apartment": "B",
"city": "La Plata",
"state": "Buenos Aires",
"zip_code": "1900",
"country": "Argentina"
}
},
"urls": {
"success": "https://tiendaonline.com.ar/order?order_status=success",
"error": "https://tiendaonline.com.ar/order?order_status=error",
"pending": "https://tiendaonline.com.ar/order?order_status=pending"
}
}| Nombre | Tipo | Opcional | Descripción |
|---|---|---|---|
title | string | No | Corresponde al título para el link de pago. |
logo | string | No | Link para logo de la tienda. Puede valer null. |
external_reference | string | No | Corresponde al id de la orden en Empretienda. Debe ser utilizado para posteriormente actualizar el estado de pago de la orden mediante el endpoint “Actualizar estado de pago de una orden”. |
currency | string | No | Identificador al tipo de moneda. ARS para aplicaciones de Argentina, COP para aplicaciones de Colombia. |
total | float | No | Corresponde al monto que debe pagar el usuario, es calculado como: total = subtotal - coupon_discount - payment_method_discount + shipment_price. |
subtotal | float | No | Corresponde a la suma de los precios de los productos de la orden. |
coupon_discount | float | No | Indica el monto de descuento generado por un cupón de descuento de la orden. En caso de que su valor sea 0, entonces no hay cupón de descuento aplicado. |
payment_method_discount | float | No | Indica si se hizo un descuento por abonar la orden con el método de pago. En caso de que su valor sea 0, entonces no se hizo dicho descuento. |
shipment_price | float | No | Indica el costo del envío de la orden (vale null si no aplica, 0 envío gratis y x>0 si posee envío que se abona en la orden). |
customer | object | No | Objeto que contiene información del cliente. |
customer.name | string | No | Corresponde al nombre del cliente. |
customer.surname | string | No | Corresponde al apellido del cliente. |
customer.identification.type | string | No | Corresponde al tipo de identificación del cliente. Valor posible: DNI. |
customer.identification.value | string | No | Corresponde al identificador del cliente. |
customer.email | string | No | Corresponde al email del cliente. |
customer.phone | string | No | Corresponde al teléfono del cliente. |
customer.address | object | Si | Objeto que contiene información de la dirección del cliente. Puede no venir. |
customer.address.street | string | No | Calle de la dirección del cliente. |
customer.address.number | string | No | Número de calle de la dirección del cliente. |
customer.address.floor | string | Si | Piso del departamento del cliente. Puede valer null. |
customer.address.apartment | string | Si | Departamento del cliente. Puede valer null. |
customer.address.city | string | No | Ciudad del cliente. |
customer.address.state | string | No | Provincia o estado del cliente. |
customer.address.zip_code | string | Si | Código postal del cliente. Puede valer null. |
customer.address.country | string | No | País del cliente. |
urls | object | No | Contiene las urls de redirección para pago exitoso, pago pendiente y pago con error. |
urls.success | string | No | Url para que la aplicación haga redirección en caso de que el pago fue exitoso. |
urls.error | string | No | Url para que la aplicación haga redirección en caso de que el pago no se pudo procesar. |
urls.pending | string | No | Url para que la aplicación haga redirección en caso de que el pago haya quedado en estado pendiente y requiera de una acción del usuario, por ejemplo: si el cobro es por pago fácil. |
Response exitosa: 200 Ok
El endpoint debe retornar una respuesta HTTP Code 200 con el siguiente payload:
{
"url": "https://plataformadepago.com/link-de-pago",
"payment": {
"status": -1,
"main_reference_id": "some-main-code-22370fd1-e1ea-4dd6-bc27-8d3b081e8d4c",
"extra_reference_id": "some-extra-code-22370fd1-e1ea-4dd6-bc27-8d3b081e8d4c"
}
}Campos de la respuesta
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
url | string | Si | Link de pago para redireccionar al usuario. |
payment | object | Si | Información del pago. |
payment.status | number | Si | Contiene el identificador de estado de pago inicial de la orden. Los valores permitidos son del -1 al 7: -1: Esperando pago, 0: Pendiente, 1: Finalizado, 2: En proceso, 3: En mediación, 4: Rechazada, 5: Cancelada, 6: Pago devuelto, 7: En contracargo. |
payment.main_reference_id | string | No | Corresponde al identificador principal de la integración utilizada para el cobro de la orden. Nota: campo opcional. |
payment.extra_reference_id | string | No | Corresponde al identificador secundario de la integración utilizada para el cobro de la orden. Nota: campo opcional. |
Responses de error
A diferencia del resto de los endpoints de esta documentación, en este caso la respuesta HTTP la genera la aplicación, no Empretienda. Se recomienda que el endpoint responda con un HTTP Code distinto de 200 ante cualquier error para que Empretienda pueda identificarlo como tal.