Fiatside

Developers

Datos de referencia y paginación

Los catálogos de canales, activos y países son la misma fuente que alimenta el sitio. Contienen límites, plazos, comisiones y esquemas de campos, suficientes para generar su formulario de pago en lugar de programarlo país por país.

Frecuencia de actualización

Estos datos cambian rara vez, pero cambian: un límite de canal, un corte, la apertura de un país. Actualícelos al menos a diario y no los congele en su código. Cada entrada lleva una fecha de última verificación manual: pasados seis meses, trátela como pendiente de revisión.

01

Paginación

Paginación por cursor, no por desplazamientos numéricos. Un desplazamiento omite o duplica elementos en cuanto la lista se mueve entre dos páginas; un cursor apunta a una posición estable.

Solicitudhttp
GET /api/v1/rails?limit=50&cursor=cJ0xNzg4MzU2OTgx
Respuestajson
{
  "data": [ /* … */ ],
  "next_cursor": "cJ0xNzg4MzU3MTEy"
}
  • limit tiene como valor predeterminado 50, máximo 100. Un valor mayor se limita al máximo en lugar de rechazarse.
  • next_cursor es null en la última página. Es la única señal de fin: no deduzca el final de una página corta.
  • Un cursor es opaco y no tiene una vida útil garantizada. No lo almacene como identificador duradero ni construya uno propio.
  • El orden es estable dentro de una misma ejecución de paginación. Un elemento añadido mientras pagina aparece en su siguiente ejecución completa, no en medio de la actual.
GET/api/v1/railsPublished contract, not open

Listar métodos de pago

Catálogo de vías de pago con moneda, países atendidos, retrasos p50 y p95, reglas de días hábiles, hora de corte, límites por operación en unidades menores, comisiones y el esquema de campos del beneficiario. Ese esquema es lo que le permite generar el formulario de pago en lugar de programarlo país por país.

Autenticación: Authorization: Bearer … Ver autenticación

Parámetros

Parámetros
CampoTipoDescripción
countrystringFiltro ISO 3166-1 alpha-2.
currencystringFiltro ISO 4217.
phasestringlive, beta, planned o never.
limitintegerTamaño de página, de 1 a 100, por defecto 50.
cursorstringCursor opaco devuelto por la llamada anterior.
Solicitudbash
curl -sS 'https://fiatside.com/api/v1/rails?country=BR' \
  -H 'Authorization: Bearer sk_live_...'
Respuesta — contrato publicadojson
{
  "data": [
    {
      "id": "br_pix",
      "slug": "pix",
      "name": "PIX",
      "kind": "instant_bank",
      "currency": "BRL",
      "countries": ["BR"],
      "phase": "live",
      "settlement": { "p50Minutes": 1, "p95Minutes": 10, "businessDaysOnly": false },
      "limits": { "minMinor": 1000, "maxMinor": 5000000, "decimals": 2 },
      "fees": { "fixedMinor": 0, "bps": 0 },
      "fields": [
        { "name": "pixKeyType", "type": "select", "required": true },
        { "name": "pixKey", "type": "text", "required": true, "maxLength": 77 },
        { "name": "taxId", "type": "text", "required": true, "pattern": "^[0-9]{11}$" }
      ],
      "verifiedAt": "2026-09-02"
    }
  ],
  "next_cursor": null
}
  • Una vía cerrada se devuelve con su fase y motivo, no se elimina de la lista. Una integración que no puede ver por qué desapareció una vía pregunta a su propio soporte.

Posibles errores: unauthorized, invalid_request. Catálogo completo

GET/api/v1/assetsPublished contract, not open

Listar activos aceptados

Activos aceptados para depósito, con decimales de unidad base, redes, depósito mínimo, duración del bloqueo de tipo y, cuando proceda, el motivo por el que un activo no se ofrece.

Autenticación: Authorization: Bearer … Ver autenticación

Parámetros

Parámetros
CampoTipoDescripción
networkstringSolo devuelve activos disponibles en esa red.
Solicitudbash
curl -sS 'https://fiatside.com/api/v1/assets?network=tron' \
  -H 'Authorization: Bearer sk_live_...'
Respuesta — contrato publicadojson
{
  "data": [
    {
      "id": "usdt",
      "ticker": "USDT",
      "name": "Tether",
      "decimals": 6,
      "networks": ["tron", "ethereum", "bsc", "solana", "polygon", "arbitrum"],
      "stablecoin": true,
      "quoteLockSeconds": 1800,
      "minDepositBase": "20000000",
      "phase": "live"
    }
  ],
  "next_cursor": null
}
  • minDepositBase se expresa en unidades BASE (20000000 = 20 USDT con 6 decimales). Por debajo de ese umbral, el coste de la red consume la mayor parte de la operación.

Posibles errores: unauthorized. Catálogo completo

GET/api/v1/countriesPublished contract, not open

Listar países

Países atendidos, países en preparación y países rechazados. Un país rechazado se devuelve con su motivo: sanciones internacionales, medidas restrictivas o un riesgo inaceptable de blanqueo de capitales.

Autenticación: Authorization: Bearer … Ver autenticación

Parámetros

Parámetros
CampoTipoDescripción
statusstringopen, coming o restricted.
Solicitudbash
curl -sS 'https://fiatside.com/api/v1/countries?status=open' \
  -H 'Authorization: Bearer sk_live_...'
Respuesta — contrato publicadojson
{
  "data": [
    { "code": "BR", "name": "Brasil", "currency": "BRL", "status": "open", "rails": ["br_pix", "paypal", "wise", "swift"] },
    { "code": "IR", "name": "Iran",   "currency": null,  "status": "restricted", "reason": "international_sanctions" }
  ],
  "next_cursor": null
}

Posibles errores: unauthorized. Catálogo completo

02

El esquema de campos del beneficiario

Cada canal describe los campos que requiere, con su patrón de validación, normalización y texto de ayuda. Eso es lo que le permite generar un formulario correcto para un país que nunca ha integrado.

Un campo del esquemajson
{
  "name": "iban",
  "label": { "fr": "IBAN", "en": "IBAN" },
  "type": "iban",
  "required": true,
  "pattern": "^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$",
  "normalize": "upper",
  "help": {
    "fr": "Sans espaces. Nous verifions la cle de controle avant de valider la commande.",
    "en": "No spaces. We validate the checksum before confirming your order."
  }
}

La validación del patrón se realiza en su lado Y en el nuestro: la suya le ahorra al usuario un viaje de ida y vuelta, la nuestra es la autoritativa. El texto de ayuda se proporciona en ambos idiomas y merece mostrarse: evita la mayoría de los pagos rechazados, que casi siempre provienen de un formato mal escrito y no de una interrupción.