API Reference

Init SDK

Este endpoint permite inicializar un token para lanzar un SDK móvil. Recibe los datos de una transacción inicial que puede ser con una tarjeta no tokenizada o una tarjeta previamente tokenizada junto con un webcode y otros parámetros necesarios para inicializar el proceso de pago.

Parámetros de Entrada (Body):

CampoTipoRequeridoDescripción
cardNumberstringCondicionalNúmero de la tarjeta de crédito. Solo se requiere si la tarjeta no está tokenizada.
cardExpiryDatestringCondicionalFecha de expiración de la tarjeta en formato MM/YY. Solo se requiere si la tarjeta no está tokenizada.
cardCVVstringCondicionalCódigo de seguridad (CVV) de la tarjeta. Solo se requiere si la tarjeta no está tokenizada.
cardNamestringCondicionalNombre del titular de la tarjeta. Solo se requiere si la tarjeta no está tokenizada.
webhookstringRequeridoURL del webhook donde se enviará la notificación de la transacción.
idExternstringRequeridoReferencia única para la transacción, generada utilizando randomUUID.
thirdBankUUIDstringCondicionalUUID del banco tercero. Requerido en algunos casos para identificaciones.
thirdUUIDstringRequeridoUUID de la entidad del tercero que está realizando la transacción.
qrbooleanOpcionalIndica si la transacción es a través de QR (si es true, se utiliza el QR).
amountnumberCondicionalEl monto de la transacción en la moneda correspondiente, se requiere para ciertas acciones.
typestringRequeridoEl tipo de transacción: "IN" para ingreso y "OUT" para salida.
isReusablebooleanCondicionalPermite definir si la solicitud se puede reutilizar o si es de un solo uso.

Casos de uso

1. QR - Tarjeta Tokenizada (Caso 1)

  • Si la tarjeta está tokenizada, se requiere el cardToken.
  • Se incluye el QR y el monto.
{
  "thirdBankUUID": "uuid_of_third_bank",
  "thirdUUID": "uuid",
  "qr": true,
  "amount": 125,
  "webhook": "https://webhook-test.com/5f1a3ef2b2090773083e90128919cd6a",
  "idExtern": "random-uuid-generated",
  "type": "IN"
}

2. QR - Tarjeta Manual (Caso 2)

  • Se envía una tarjeta no tokenizada con los datos completos como cardNumber, cardExpiryDate, cardCVV, etc.
  • Se incluye el QR y el monto.
{
  "card": {
    "cardNumber": "4000056655665556",
    "cardExpiryDate": "12/26",
    "cardCVV": "123",
    "cardName": "Camilo Santander"
  },
  "thirdUUID": "uuid",
  "qr": true,
  "amount": 125,
  "webhook": "https://webhook-test.com/5f1a3ef2b2090773083e90128919cd6a",
  "idExtern": "random-uuid-generated",
  "type": "IN"
}

3. Recarga Manual (Caso 3)

  • No se utiliza tarjeta tokenizada, pero se necesita la referencia y webhook.
{
  "card": {
    "cardNumber": "4000056655665556",
    "cardExpiryDate": "12/26",
    "cardCVV": "123",
    "cardName": "Camilo Santander"
  },
  "thirdUUID": "uuid",
  "webhook": "https://webhook-test.com/5f1a3ef2b2090773083e90128919cd6a",
  "idExtern": "random-uuid-generated",
  "type": "IN"
}

4. Recarga Tokenizada (Caso 4)

  • Aquí se usa una tarjeta tokenizada, y no se incluye un monto.
{
  "thirdBankUUID": "uuid_of_third_bank",
  "thirdUUID": "uuid",
  "webhook": "https://webhook-test.com/5f1a3ef2b2090773083e90128919cd6a",
  "idExtern": "random-uuid-generated",
  "type": "IN"
}

5. Transferencia Manual (Caso 5)

  • Se realiza una transferencia manual sin monto y usando el webhook.
{
  "card": {
    "cardNumber": "4000056655665556",
    "cardExpiryDate": "12/26",
    "cardCVV": "123",
    "cardName": "Camilo Santander"
  },
  "thirdUUID": "uuid",
  "webhook": "https://webhook-test.com/5f1a3ef2b2090773083e90128919cd6a",
  "amount": 100000,
  "idExtern": "random-uuid-generated",
  "type": "OUT"
}

6. Transferencia Tokenizada (Caso 6)

  • Se usa una tarjeta tokenizada, y se incluye monto y webhook.
{
  "thirdBankUUID": "uuid_of_third_bank",
  "thirdUUID": "uuid",
  "webhook": "https://webhook-test.com/5f1a3ef2b2090773083e90128919cd6a",
  "amount": 100000,
  "idExtern": "random-uuid-generated",
  "type": "OUT"
}

7. Tokenización de tarjetas

  • Sirve para el registro de tarjetas hacia los terceros
{
   "thirdUUID":"...",
   "webhook":"https://...",
   "type":"CARD_REGISTRATION"
}

8. Open Link para operaciones cross border

  • Se usa una tarjeta tokenizada y webhook

Nota: En el caso de Request to Pay, este paso lo realiza directamente el usuario, quien en una etapa posterior ingresa el monto solicitado al remitente. Esta acción es la que convierte la operación en un Request to Pay.

{
   "thirdUUID":"...",
   "thirdBankUUID":".",
   "webhook":"https://...",
   "reference":"...",
   "isReusable":false,
   "type":"OPEN_LINK"
}

📘

Todos los json anteriores deben ir encriptados

Ejemplo de una request

const axios = require('axios');
let data = JSON.stringify({
  "data": "data encriptada"
});

let config = {
  method: 'post',
  maxBodyLength: Infinity,
  url: 'https://payment-backend-sandbox.milio.com.co/sdk-mobile',
  headers: { 
    'Content-Type': 'application/json', 
    'Authorization': 'Bearer eyJhbGciOiJI...'
  },
  data : data
};

axios.request(config)
.then((response) => {
  console.log(JSON.stringify(response.data));
})
.catch((error) => {
  console.log(error);
});

Respueta

{
    "error": 0,
    "code": "ML000",
    "category": "GENERAL",
    "message": "Transacción creada",
    "data": {
        "transferId": "ae6ea30d-7d6f-4956-8f2c-7e4770d7bb3c"
    },
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb21wYW55SWQiOjI3LCJ0cmFuc2ZlcklkIjoiYWU2ZWEzMGQtN2Q2Zi00OTU2LThmMmMtN2U0NzcwZDdiYjNjIiwiaWF0IjoxNzQ2Nzk4NjI4LCJleHAiOjE3NDY4ODUwMjh9.Xi9Qq9Oomv-sa3reRb-AIXG_Dd7--dZJ1lomC9WW8GI"
}
Language
Credentials
OAuth2
Click Try It! to start a request and see the response here!