Fiatside

Developers

Dados de referência e paginação

Os catálogos de canais, ativos e países são a mesma fonte que alimenta o site. Eles contêm limites, atrasos, taxas e esquemas de campos — o suficiente para gerar seu formulário de pagamento em vez de codificá-lo país por país.

Frequência de atualização

Esses dados mudam raramente, mas mudam: um limite de canal, um horário de corte, uma abertura de país. Atualize-os pelo menos diariamente e não os congele no seu código. Cada entrada traz uma data da última verificação manual: após seis meses, trate-a como devida para uma verificação.

01

Paginação

Paginação por cursor, não por offsets numéricos. Um offset pula ou duplica itens assim que a lista se move entre duas páginas; um cursor aponta para uma posição estável.

Solicitaçãohttp
GET /api/v1/rails?limit=50&cursor=cJ0xNzg4MzU2OTgx
Respostajson
{
  "data": [ /* … */ ],
  "next_cursor": "cJ0xNzg4MzU3MTEy"
}
  • limit tem como padrão 50, máximo 100. Um valor maior é limitado ao máximo em vez de ser rejeitado.
  • next_cursor é null na última página. É o único sinal de fim: não infira o fim a partir de uma página curta.
  • Um cursor é opaco e sem garantia de tempo de vida. Não o armazene como identificador durável e não construa um você mesmo.
  • A ordenação é estável dentro de uma execução de paginação. Um item adicionado enquanto você está paginando aparece na sua próxima execução completa, não no meio da atual.
GET/api/v1/railsPublished contract, not open

Listar métodos de pagamento

Catálogo de canais de pagamento com moeda, países atendidos, atrasos p50 e p95, regras de dias úteis, horário de corte, limites por operação em unidades fracionárias, taxas e o esquema de campos do beneficiário. Esse esquema é o que permite gerar o formulário de pagamento em vez de codificá-lo país por país.

Autenticação: Authorization: Bearer … Ver autenticação

Parâmetros

Parâmetros
CampoTipoDescrição
countrystringFiltro ISO 3166-1 alpha-2.
currencystringFiltro ISO 4217.
phasestringlive, beta, planned ou never.
limitintegerTamanho da página, de 1 a 100, padrão 50.
cursorstringCursor opaco retornado pela chamada anterior.
Solicitaçãobash
curl -sS 'https://fiatside.com/api/v1/rails?country=BR' \
  -H 'Authorization: Bearer sk_live_...'
Resposta — 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
}
  • Um canal fechado é retornado com sua fase e motivo, não removido da lista. Uma integração que não consegue ver por que um canal desapareceu pergunta ao seu próprio suporte.

Erros possíveis: unauthorized, invalid_request. Catálogo completo

GET/api/v1/assetsPublished contract, not open

Listar ativos aceitos

Ativos aceitos para depósito, com decimais da unidade base, redes, depósito mínimo, duração do bloqueio de taxa e, quando relevante, o motivo pelo qual um ativo não é oferecido.

Autenticação: Authorization: Bearer … Ver autenticação

Parâmetros

Parâmetros
CampoTipoDescrição
networkstringRetorna apenas ativos disponíveis nessa rede.
Solicitaçãobash
curl -sS 'https://fiatside.com/api/v1/assets?network=tron' \
  -H 'Authorization: Bearer sk_live_...'
Resposta — 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 é expresso em unidades BASE (20000000 = 20 USDT com 6 decimais). Abaixo desse limite, o custo da rede consome a maior parte da operação.

Erros possíveis: unauthorized. Catálogo completo

GET/api/v1/countriesPublished contract, not open

Listar países

Países atendidos, países em preparação e países recusados. Um país recusado é retornado com seu motivo: sanções internacionais, medidas restritivas ou risco inaceitável de lavagem de dinheiro.

Autenticação: Authorization: Bearer … Ver autenticação

Parâmetros

Parâmetros
CampoTipoDescrição
statusstringopen, coming ou restricted.
Solicitaçãobash
curl -sS 'https://fiatside.com/api/v1/countries?status=open' \
  -H 'Authorization: Bearer sk_live_...'
Resposta — 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
}

Erros possíveis: unauthorized. Catálogo completo

02

O esquema de campos do beneficiário

Cada canal descreve os campos que exige, com seu padrão de validação, normalização e texto de ajuda. É isso que permite gerar um formulário correto para um país que você nunca integrou.

Um campo do 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."
  }
}

A validação de padrão acontece do seu lado E no nosso: a sua poupa o usuário de uma ida e volta, a nossa é autoritativa. O texto de ajuda é fornecido em ambos os idiomas e merece ser exibido: ele evita a maioria dos pagamentos rejeitados, que quase sempre vêm de um formato digitado incorretamente, e não de uma interrupção.