POST

speiTransfer

Envía una transferencia SPEI a cualquier banco en México. Acepta CLABE de 18 dígitos, tarjeta de débito (15–16 dígitos) o número de celular (10 dígitos, transferencia DIMO). La transferencia se procesa en segundos y recibes confirmación vía webhook.

Endpoint

POSThttps://magicpay.b4a.io/functions/speiTransfer

Headers

HeaderValor
Content-Typeapplication/json
x-parse-application-idYOUR_APP_ID
x-parse-rest-api-keyYOUR_REST_KEY

Parámetros

NombreTipoRequeridoDescripción
apiKeystringSíTu API key de merchant.
amountnumberSíMonto en MXN. Mínimo $0.01. Máximo 2 decimales.
descriptionstringSíConcepto de pago (máx 40 caracteres).
transferIdstringSíTu ID único de la transferencia (7–24 caracteres alfanuméricos). Debe ser único por operación.
accountstringSíCuenta destino: CLABE (18 dígitos), tarjeta de débito (15-16 dígitos), o teléfono (10 dígitos, DIMO).
ownerstringSíNombre del beneficiario.
bankbankNoNombre del banco destino. Requerido si `account` NO es CLABE de 18 dígitos. Si es CLABE, el banco se detecta automáticamente por el prefijo.
numReferencestringNoReferencia numérica (máx 7 dígitos). Si no se envía, se genera automáticamente.

Ejemplo de Request

curl -X POST 'https://magicpay.b4a.io/functions/speiTransfer' \
  -H 'Content-Type: application/json' \
  -H 'x-parse-application-id: YOUR_APP_ID' \
  -H 'x-parse-rest-api-key: YOUR_REST_KEY' \
  -d '{
  "apiKey": "pk_live_xxxxxxxxxxxxx",
  "amount": 150.5,
  "description": "Pago de servicio",
  "transferId": "PAY20240115001",
  "account": "012180015025354012",
  "owner": "JUAN PEREZ LOPEZ"
}'

Ejemplo de Respuesta

JSON
{
  "result": {
    "id": "abc123def456",
    "transferId": "PAY20240115001",
    "trackingId": "PAY20240115001",
    "status": "in_process",
    "amount": 150.5,
    "fee": 3.48,
    "account": "012180015025354012",
    "bank": "BBVA MEXICO",
    "owner": "JUAN PEREZ LOPEZ",
    "description": "Pago de servicio",
    "numReference": "1234567",
    "createdAt": 1705286400000,
    "balance": 10000
  }
}

Errores comunes

ErrorCausa
Missing apiKeyNo se envió apiKey
Missing amountNo se envió amount
Invalid amountamount no es numérico válido
Amount must be greater than 0Monto es 0 o negativo
Minimum amount is $0.01 MXNMonto menor a un centavo
Missing transferIdNo se envió transferId
speiId must be maximum 24 characters long.transferId muy largo
speiId must be minimum 7 characters long.transferId muy corto
Missing accountNo se envió account
Missing ownerNo se envió owner
Missing bankCuenta no es CLABE y no se envió bank
Invalid Bank. Please check bank listBanco no existe en el catálogo
Invalid CLABE Interbancaria.CLABE con dígito verificador inválido
Invalid debit card. Please check structure.Tarjeta no pasa validación Luhn
Unrecognized bank prefix. Please verify the CLABE.Prefijo de CLABE no reconocido
No es posible realizar transferencias a cuentas internasCuenta destino es interna (prefijo 6461803766)
Numeric Reference must be maximum 7 digits.numReference excede 7 dígitos
Invalid apiKeyapiKey no encontrado
Insufficient balanceSaldo insuficiente
Duplicate transferIdYa existe una transferencia con ese ID

Validaciones: monto > 0 con mínimo $0.01 MXN; transferId 7–24 chars; CLABEs validan dígito verificador; tarjetas validan con Luhn; teléfonos de 10 dígitos se envían como DIMO. La comisión (fee) se calcula como transferFee × 1.16 (incluye 16% IVA).