Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.v2.topup.com.co/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Mexico PayOut operates exclusively through SPEI (Sistema de Pagos Electrónicos Interbancarios), the interbank real-time settlement network operated by Banco de México. Disbursements are processed asynchronously — the API returns a PENDING status immediately, and the final result (APPROVED or REJECTED) is delivered via webhook. SPEI supports two destination account types:
Account TypeDescription
CLABE18-digit Clave Bancaria Estandarizada — routes to any Mexican bank account
TARJETA_DEBITORoutes directly to a Visa or Mastercard debit card number

Quick Reference

ParameterValueDescription
EndpointPOST /api/v1/payoutInitiate PayOut transaction
CurrencyMXNMexican Peso
Country CodeMXMexico
Auth RequiredYesToken-Top + Basic Auth
ProcessingAsyncStatus updates via webhook

Common Request Fields

Both transfer types share the same top-level fields and base customer_data fields. The only difference is in the account-specific fields documented in each section below.

Top-level Fields

FieldTypeDescriptionExample
referencestringUnique transaction identifier from your system"PAYOUT-0001"
amountfloatTransaction amount in MXN250.00
currencystringISO 4217 currency code"MXN"
payment_methodstringAlways "SPEI" for Mexico PayOut"SPEI"
descriptionstringTransaction description"Payout SPEI a CLABE"
ipn_urlstringWebhook URL for status notifications"https://your-domain.com/webhooks/payout"
customer_dataobjectCustomer and account information (see below)

Base Customer Data Fields

These fields are required for both account types:
FieldTypeDescriptionExample
legal_doc_typestringDocument type: RFC, CURP, INE, PPN"RFC"
legal_docstringCustomer’s legal document number"XAXX010101000"
full_namestringCustomer full name"Maria Lopez"
emailstringCustomer email address"maria.lopez@correo.com"
phone_codestringCountry calling code"52"
phone_numberstring10-digit phone number"5512345678"
bankstringBank code — see Supported Banks"BBVA_MEXICO"
account_typestring"CLABE" or "TARJETA_DEBITO""CLABE"
account_numberstringBank account number"1234567890"

SPEI via CLABE

Use this flow to disburse funds to any Mexican bank account identified by its 18-digit CLABE number.

Additional Fields

FieldTypeRequiredDescriptionExample
account_typestringMust be "CLABE""CLABE"
clabe_numberstring18-digit Clave Bancaria Estandarizada"032180000118359719"
The clabe_number must be exactly 18 digits. CLABE uniquely identifies the destination bank branch and account within Mexico’s SPEI network. Incorrect CLABEs will result in rejected transfers.

Request Example

{
  "reference": "PAYOUT-0002",
  "amount": 250,
  "currency": "MXN",
  "payment_method": "SPEI",
  "description": "Payout SPEI a CLABE",
  "ipn_url": "https://your-domain.com/webhooks/payout",
  "customer_data": {
    "legal_doc_type": "RFC",
    "legal_doc": "XAXX010101000",
    "full_name": "Maria Lopez",
    "email": "maria.lopez@correo.com",
    "phone_code": "52",
    "phone_number": "5512345678",
    "bank": "BBVA_MEXICO",
    "account_type": "CLABE",
    "account_number": "1234567890",
    "clabe_number": "032180000118359719"
  }
}

SPEI via Tarjeta Débito

Use this flow to disburse funds directly to a Visa or Mastercard debit card number, without needing a CLABE.

Additional Fields

FieldTypeRequiredDescriptionExample
account_typestringMust be "TARJETA_DEBITO""TARJETA_DEBITO"
card_numberstring16-digit debit card number"4111111111111111"
card_holder_namestringName as it appears on the card (uppercase)"JUAN PEREZ"
Only debit cards (Visa or Mastercard) are supported for this transfer type. Credit cards will be rejected.

Request Example

{
  "reference": "PAYOUT-0001",
  "amount": 150.5,
  "currency": "MXN",
  "payment_method": "SPEI",
  "description": "Payout SPEI a tarjeta débito",
  "ipn_url": "https://your-domain.com/webhooks/payout",
  "customer_data": {
    "legal_doc_type": "RFC",
    "legal_doc": "XAXX010101000",
    "full_name": "Juan Perez",
    "email": "juan.perez@correo.com",
    "phone_code": "52",
    "phone_number": "5512345678",
    "bank": "BANAMEX",
    "account_type": "TARJETA_DEBITO",
    "account_number": "1234567890",
    "card_number": "4111111111111111",
    "card_holder_name": "JUAN PEREZ"
  }
}

Response Structure

Success Response

FieldTypeDescription
codestringResponse code ("01" = success)
statusstringTransaction status ("SUCCESS")
messagestringDescription of the response
dataobjectTransaction data object

Data Object

FieldTypeDescription
ticketstringUnique transaction identifier (TumiPay ID)
datestringTransaction timestamp (YYYY-MM-DD HH:MM:SS)
transactionobjectTransaction details echo

Transaction Status Flow

StatusDescription
PENDINGTransaction created, SPEI transfer initiated
APPROVEDFunds successfully transferred to recipient
REJECTEDTransaction rejected by bank or validation failure

Response Example

{
    "code": "01",
    "status": "SUCCESS",
    "message": "Operacion exitosa",
    "data": {
        "ticket": "7MXpKRwc3NLQst8",
        "date": "2025-10-15 18:24:11",
        "transaction": {
            "reference": "PAYOUT-0002",
            "amount": 250.00,
            "currency": "MXN",
            "payment_method": "SPEI"
        }
    }
}