Transações
México (MXN)
O México tem dois meios de pagamento: SPEI (transferência bancária instantânea) e OXXO (dinheiro no balcão da loja). Escolha pelo campo paymentMethod — sem ele, o padrão é SPEI.
Recebimentos via SPEI usam a rede de transferências instantâneas mexicana, na moeda MXN (pesos). É o mesmo endpoint de sempre — POST /transactions/v2/purchase — mudando só currency para "MXN". Internamente é tratado como uma cobrança instantânea; o que muda é o vocabulário e alguns campos.
Em vez de um pixCode, você recebe uma clabe (CLABE de depósito, 18 dígitos): é a conta pra qual o pagador faz a transferência SPEI pelo app do banco dele. Quando o SPEI cai, disparamos o webhook cashin.paid — igual ao PIX.
Só habilite MXN se a sua conta tiver um adquirente MXN configurado. A moeda da transação precisa casar com a moeda do adquirente.
Os dois meios de pagamento
paymentMethod | O que é | Instrução | Confirmação |
|---|---|---|---|
"SPEI" (padrão) | transferência bancária instantânea | clabe na resposta | segundos |
"OXXO" | dinheiro no balcão da loja | reference + código de barras na resposta | horas ou dias |
Nos dois a instrução vem na própria resposta da criação — o México é o único mercado síncrono. O que muda é o tempo até o dinheiro entrar.
SPEI — o comprador transfere pelo app do banco para a CLABE que você mostra:
{
"name": "Luis Legs",
"email": "luis@ejemplo.com",
"amount": 10000,
"currency": "MXN",
"paymentMethod": "SPEI",
"description": "Suscripción Pro",
"responsibleDocument": "12345678901",
"responsibleExternalId": "user-1234"
}
OXXO — o comprador leva a referência a uma loja e paga em dinheiro:
{
"name": "Luis Legs",
"email": "luis@ejemplo.com",
"amount": 10000,
"currency": "MXN",
"paymentMethod": "OXXO",
"description": "Suscripción Pro",
"responsibleDocument": "12345678901",
"responsibleExternalId": "user-1234"
}
amounté o mesmo nos dois:10000= MX$ 100,00. O
O que muda em relação ao BRL
| Campo | BRL (PIX) | MXN (SPEI) |
|---|---|---|
currency | "BRL" (padrão) | "MXN" (obrigatório) |
paymentMethod | obrigatório ("PIX") | opcional — default SPEI; aceita "SPEI" ou "OXXO" |
cpf | obrigatório | opcional (documento BR; SPEI não usa) |
phone | obrigatório | opcional |
name | obrigatório | obrigatório |
| Resposta | pixCode + method: "PIX" | clabe (SPEI) ou reference + código de barras (OXXO) |
amountcontinua em centavos, como no BRL — só que de pesos:1000= MX$ 10,00. Não é mil pesos.
OXXO — pagamento em dinheiro
Além do SPEI, o México aceita OXXO: o comprador paga em dinheiro no balcão da loja. Envie paymentMethod: "OXXO" com currency: "MXN".
Em vez da clabe, a resposta traz uma referência e a imagem de um código de barras:
{
"currency": "MXN",
"method": "OXXO",
"status": "PENDING",
"amount": 10000,
"reference": "8204240000119882",
"paymentInstruction": {
"transferType": "REFERENCE",
"reference": "8204240000119882",
"barcode": "https://static.muwe.mx/.../barCode.png"
}
}
Mostre os dois na sua tela. A referência serve para o caixa digitar, mas boa parte das lojas prefere ler o código de barras — publicar só o número faz o comprador ser recusado no balcão.
Três diferenças que mudam a sua integração:
- Não é instantâneo. O comprador sai da loja com a referência e paga depois, às vezes só no dia seguinte. A cobrança fica
PENDINGaté lá e ocashin.paidchega quando o pagamento é registrado. Não trate a criação como venda concluída. - Não expira junto com o Pix. Dê ao comprador um prazo compatível com ir até a loja; cobrança de OXXO com validade de minutos não é paga.
- Taxa própria. OXXO e SPEI têm preços diferentes — o OXXO costuma cobrar percentual onde o SPEI cobra fixo. Confira as suas taxas por método no painel antes de ofertar os dois.
Exemplo — criar cobrança MXN
Payload mínimo (sem paymentMethod, cpf nem phone):
curl -X POST "https://api.ihubplay.com/transactions/v2/purchase" \
-H "Authorization: Basic $(echo -n 'secret:SUA_SECRET_KEY' | base64)" \
-H "Content-Type: application/json" \
-d '{
"name": "Juan Pérez",
"email": "juan@ejemplo.com",
"amount": 1000,
"currency": "MXN",
"description": "Suscripción Pro",
"responsibleDocument": "12345678901",
"responsibleExternalId": "user-1234",
"postbackUrl": "https://seu-dominio.com/webhook"
}'
Resposta — o pagador transfere via SPEI para a clabe:
{
"id": "17864385245624641191295936",
"currency": "MXN",
"method": "SPEI",
"installments": null,
"externalId": null,
"status": "PENDING",
"amount": 1000,
"postbackUrl": "https://seu-dominio.com/webhook",
"referrerUrl": null,
"clabe": "684180330080887521",
"expiresAt": null,
"createdAt": "2026-08-11T08:55:24.748Z",
"costFee": 100
}
O status fica PENDING até o SPEI cair; a confirmação chega pelo webhook cashin.paid (mesmo evento do PIX). Não existe cash-out em pesos: o saldo em MXN é liquidado para BRL pela iHubGames e você saca em real, como sempre — veja Como esse dinheiro vira saque, logo abaixo.
Como esse dinheiro vira saque
Cash-out em pesos mexicanos não existe: todo saque da plataforma sai em BRL, por PIX. O caminho do dinheiro é sempre o mesmo:
- O comprador paga e o saldo entra em MXN.
- A iHubGames liquida esse saldo para BRL pela cotação de câmbio do dia.
- O valor em BRL passa a aparecer no seu saldo e você saca pelo fluxo normal —
POST /withdraws/cash-out, o mesmo de uma conta brasileira.
Você não faz nada no passo 2. Não existe endpoint de conversão, não precisa abrir chamado nem aprovar cotação — a liquidação é operada pela iHubGames e o saldo em BRL simplesmente aparece. Do lado da sua integração, o México é só mais uma moeda de entrada: você cobra em MXN e saca em BRL como sempre fez.
O que muda pro seu fluxo de caixa: enquanto o saldo estiver em MXN, ele ainda não é sacável — só o saldo em BRL é. Consulte os dois em GET /accounts/balances, que devolve uma linha por moeda, e programe o saque em cima da linha de BRL.