Saltar al contenido principal
Migo Docs

Crear transacción alternativa

Abre una transacción Migo asociada a un cliente del comercio y a un cliente final. La respuesta incluye la lista de métodos de pago alternativos disponibles para ese cliente y los segundos restantes hasta que la transacción venza.

POST https://mw.migopayments.com/api/v1/integrations/transactions

Consulta la entrada en el spec en vivo: POST /api/v1/integrations/transactions.

Recordatorio de auth. Toda llamada envía Authorization: Bearer <token>. Ve Autenticación para cómo obtener y refrescar el token.

Petición

CampoTipoRequeridoNotas
amountnumberHasta 4 decimales. Validado contra los umbrales min/max del comercio.
channelstringEtiqueta libre del comercio (wa, web, pos, mobile).
clientstringSlug del cliente del comercio.
userIdstringIdentificador externo del usuario (teléfono, email, id emitido por el comercio).
customKeysobjectnoMetadatos opcionales propagados a los procesadores que lo soportan.

cURL

curl -X POST https://mw.migopayments.com/api/v1/integrations/transactions \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"amount": 125.5,
"channel": "wa",
"client": "migoDeveloper",
"userId": "+50212345678",
"customKeys": { "orderId": "ABC-123" }
}'

Node.js

const res = await fetch('https://mw.migopayments.com/api/v1/integrations/transactions', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.MIGO_JWT}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
amount: 125.5,
channel: 'wa',
client: 'migoDeveloper',
userId: '+50212345678',
customKeys: { orderId: 'ABC-123' },
}),
});

const { data } = await res.json();
console.log(data.uid, data.paymentMethods, data.expireAt);

Secuencia

Comercio ──► Migo ──► respuesta
│ │
◄─────────────────────┘
uid + paymentMethods + expireAt (segundos)

Respuesta

{
"success": true,
"message": "Transaction created",
"data": {
"uid": "trx_8f3c2b1d9e7a",
"paymentMethods": ["zigi", "akisiQR", "bamPaymentButton", "quickPayQR"],
"expireAt": 900
}
}

Descubriendo qué rails están habilitados para tu cliente

Hoy no existe un endpoint dedicado GET /clients/{slug}/payment-methods. El array paymentMethods retornado aquí es la fuente de verdad de lo que el frontend del comercio puede renderizar — léelo de la respuesta de cada llamada POST /api/v1/integrations/transactions. En el cliente, cachéalo a lo más por la ventana expireAt de la transacción.

Slug de SandboxpaymentMethods retornados (ejemplo / ilustrativo)
migoDeveloper["zigi","akisiQR","bamPaymentButton","quickPayQR"]

El conjunto de arriba es ilustrativo. paymentMethods refleja los métodos habilitados para tu cuenta y los métodos que Migo soporta en tu país, por lo que puede cambiar a medida que cambia tu configuración. Siempre lee el array de tu propia respuesta de POST /api/v1/integrations/transactions en lugar de depender de este ejemplo.

Si un rail que esperas no aparece, contacta a Operaciones de Migo para habilitarlo en tu cuenta.

Errores

HTTPownCodeCausa
4005000Parámetros faltantes o inválidos
4002003amount fuera del min/max del comercio
4005004Configuración del cliente del comercio no encontrada para el client indicado
5002002No se pudo persistir la transacción

Todos los errores de validación previos a la persistencia (incluidos 5000 y 5004) retornan HTTP 400; solo 2002 (falla de persistencia) retorna HTTP 500.

Siguiente paso

Elige uno de los paymentMethods retornados y llama a Procesar pago.