Skip to the content.

<- Regresar a la documentación

6.3. Generar intención de pago (API de facturación).

Este método permite crear una intención de pagó mediante un sistema de facturación para solicitar a un cliente.

Importante: En el parámetro “paymentintent[intent]” debe enviar el valor “request” y el parámetro “paymentintent[recipient]” es requerido, debe enviar el nombre del usuario destinatario que realizará el pago, puede usar el nombre de usuario (pizzaexpress), numero de teléfono (584120000010) y numero de identificación (V19123456).

URL: api/payment-intent/.json

Método HTTP: POST

Documentación completa de la API: Ir a la documentación

Datos mínimos a enviar:

{
    "paymentintent": {
        "intent": "request",
        "redirectUrls": {
            "returnUrl": "http://localhost:5000/payments/ExecutePayment.php?success=true&carId=200",
            "cancelUrl": "http://localhost:5000/payments/ExecutePayment.php?success=false&carId=200"
        },
        "transactions": {
            "0": {
                "amount": {
                    "total": "20"
                },
                "description": "Compra por eBay",
                "items": {
                    "0": {
                        "name": "telefono",
                        "price": "7.5"
                    }
                }
            }
        },
        "recipient": "V25550099"
    }
}

Ejemplo de petición:

curl -X POST \
  https://test.mpandco.com/api/payment-intent/.json \
  -H 'authorization: Bearer OAUTH-TOKEN' \
  -F 'paymentintent[intent]=request' \
  -F 'paymentintent[redirectUrls][returnUrl]=http://localhost:5000/payments/ExecutePayment.php?success=true&carId=200' \
  -F 'paymentintent[redirectUrls][cancelUrl]=http://localhost/payments/ExecutePayment.php?success=false&carId=200' \
  -F 'paymentintent[transactions][0][digitalAccountDestination]=demo01' \
  -F 'paymentintent[transactions][0][amount][total]=20' \
  -F 'paymentintent[transactions][0][amount][currency]=VES' \
  -F 'paymentintent[transactions][0][amount][details][shipping]=0' \
  -F 'paymentintent[transactions][0][amount][details][tax]=1.3' \
  -F 'paymentintent[transactions][0][amount][details][subTotal]=17.50' \
  -F 'paymentintent[transactions][0][description]=Compra por eBay' \
  -F 'paymentintent[transactions][0][invoiceNumber]=F00015' \
  -F 'paymentintent[transactions][0][items][0][name]=telefono' \
  -F 'paymentintent[transactions][0][items][0][quantity]=1' \
  -F 'paymentintent[transactions][0][items][0][sku]=P001' \
  -F 'paymentintent[transactions][0][items][0][price]=7.5' \
  -F 'paymentintent[transactions][0][items][0][currency]=VES' \
  -F 'paymentintent[recipient]=demo03'

Respuesta:

200 - Correcto. Retorna JSON de tipo ‘PaymentIntent’

Ejemplo de respuesta (200):

{
"id":"0f78eef2-ff02-11e8-a647-b62cbc289574",
"payer":{
   "payer_info":{
         "id":"0cac1d76-ff01-11e8-a647-b62cbc289574",
         "_data":{
"fullname":"584125550000"
        }
      }
   },
   "intent":"request",
   "state":"created",
   "redirect_urls":{
 "return_url":"http://localhost/payments/ExecutePayment.php?success=true&carId=200",
"cancel_url":"http://localhost/payments/ExecutePayment.php?success=false&carId=200",
    "history_responses":[

      ]
   },
   "total":{
      "currency":{
        "id":"VES"
      },
      "items":17.5,
      "shipping":0,
      "tax":1.3,
      "amount":18.8
   },
   "transactions":[
      {
         "id":"0f7a8104-ff02-11e8-a647-b62cbc289574",
         "amount":{
             "currency":{
                "id":"VES"
            },
            "total":20,
            "details":{
               "shipping":0,
               "tax":1.3,
               "sub_total":17.5
            }
         },
         "items":[
           {
               "name":"telefono",
               "quantity":1,
               "currency":{
                 "id":"VES"
               },
               "sku":"P001",
               "price":7.5
            }
         ],
         "description":"Compra por eBay",
         "invoice_number":"F00015"
      }
   ],
   "pay_tokens":[
     {
        "id":"0f7b8f72-ff02-11e8-a647-b62cbc289574",
        "_data":{
           "name":"J255500006-Pepitos House"
         }
     }
   ],
   "_links":{
     "self":{
        "href":"http://test.mpandco.com/api/payment-intent/show?id=0f78eef2-ff02-11e8-a647-b62cbc289574",
        "method":"GET"
      },
      "execute":{
        "href":"http://test.mpandco.com/api/payment-intent/execute/request?id=0f78eef2-ff02-11e8-a647-b62cbc289574",
        "method":"POST"
      }
   }
}

Al realizar una solicitud mediante el API de facturación, el cliente puede pagar de dos formas:

a) Mediante su teléfono: el cliente recibirá una notificación en su teléfono móvil donde se le indica que debe pagar la solicitud, una vez el cliente pague se llamará la dirección enviada en “redirect_urls.return_url” con el id de la intención de pago aprobada, usted debe obtener la intención con el enlace contenido en “_links.self” y verificar que el estatus sea “executed”.

b) Mediante el teclado numérico de su caja: Cada transacción retornará una lista con de tokens para pagar (pay_tokens), usted deberá mostrar una lista de los tokens para permitir seleccionar el origen de los fondos del cliente con un campo numérico de 4 dígitos, donde el cliente ingresará su pin de operaciones para autorizar el pago, al tener ambos datos deberá ejecutar el pago llamando el enlace “_links.execute”, tal como se indica en el paso 5.4.

6.4. Ejecutar intención de pago (API de facturación).

Ejecuta una intención de pago de tipo “request” autorizada por un cliente y abona el dinero al comercio.

URL: api/payment-intent/request.json

Método HTTP: POST

Documentación completa de la API: Ir a la documentación

Ejemplo de petición:

curl -X POST \
  'https://test.mpandco.com/api/payment-intent/execute/request.json?id=03b9f66c-fefb-11e8-a647-b62cbc289574' \
  -H 'authorization: Bearer OAUTH-TOKEN' \
  -F 'payment_execution[payToken]=9859f66c-fefb-11e8-a647-b62cbc289241' \
  -F 'payment_execution[pin]=1111'

Respuesta:

200 - Correcto. Retorna JSON de tipo ‘PaymentIntent’

Ejemplo de respuesta (200):

{
   "id":"ee12e986-ff04-11e8-a647-b62cbc289574",
   "payer":{
   "payer_info":{
         "id":"e7627ba6-ff04-11e8-a647-b62cbc289574",
         "_data":{
            "fullname":"584125550001"
         }
      }
   },
   "intent":"request",
   "state":"executed",
   "redirect_urls":{  "return_url":"http://test.mpandco.com/bc38875a09308af/callback-API?success=true&car=231",
"cancel_url":"http://test.mpandco.com/bc38875a09308af/callback-API?success=false&car=231",
      "history_responses":[
         {
              "uri":"http://test.mpandco.com/bc38875a09308af/callback-API?success=true&car=231&paymentIntent=ee12e986-ff04-11e8-a647-b62cbc289574&payerId=e7627ba6-ff04-11e8-a647-b62cbc289574",
            "method":"GET",
            "status_code":200,
            "body":"Pago procesado correctamente!"
         }
      ]
   },
   "total":{
   "currency":{
         "id":"VES"
      },
      "items":17.5,
      "shipping":1.2,
      "tax":1.3,
      "amount":20
   },
   "transactions":[
     {
       "id":"ee14637e-ff04-11e8-a647-b62cbc289574",
         "amount":{
           "currency":{
               "id":"VES"
           },
            "total":4000,
            "details":{
               "shipping":1.2,
               "tax":1.3,
               "sub_total":17.5
           }
         },
         "items":[
         {
               "name":"televisor 65'",
               "quantity":1,
               "currency":{
                  "id":"VES"
               },
               "sku":"P002",
               "price":2
           }
         ],
         "description":"Compra por eBay",
         "invoice_number":"F00015",
         "related_resources": {
                “request”: {
                       “id”: “0368dbf8-2405-11e9-865d-5254008a2539”,
                       “ref”: “P1901293671246”
                 }
          }
      }
   ],
  "pay_tokens":[

  ],
   "_links":{
      "self":{
         "href":"http://test.mpandco.com/api/payment-intent/show?id=ee12e986-ff04-11e8-a647-b62cbc289574",
         "method":"GET"
      },
      "execute":{
         "href":"http://test.mpandco.com/api/payment-intent/execute/request?id=ee12e986-ff04-11e8-a647-b62cbc289574",
         "method":"POST"
      }
   }
}

Importante: Debe verificar que el estatus de la intención de pago en la respuesta es “executed”, el campo “related_resources.request” contiene el pago generado por la transacción.