iHubGamesiHubGamesdocs

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

paymentMethodO que éInstruçãoConfirmação
"SPEI" (padrão)transferência bancária instantâneaclabe na respostasegundos
"OXXO"dinheiro no balcão da lojareference + código de barras na respostahoras 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:

JSON
{
  "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:

JSON
{
  "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 email é obrigatório no OXXO.

O que muda em relação ao BRL

CampoBRL (PIX)MXN (SPEI)
currency"BRL" (padrão)"MXN" (obrigatório)
paymentMethodobrigatório ("PIX")opcional — default SPEI; aceita "SPEI" ou "OXXO"
cpfobrigatórioopcional (documento BR; SPEI não usa)
phoneobrigatórioopcional
nameobrigatórioobrigatório
RespostapixCode + method: "PIX"clabe (SPEI) ou reference + código de barras (OXXO)

amount continua 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:

JSON
{
  "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 PENDING até lá e o cashin.paid chega 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):

bash
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:

JSON
{
  "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:

  1. O comprador paga e o saldo entra em MXN.
  2. A iHubGames liquida esse saldo para BRL pela cotação de câmbio do dia.
  3. 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.