Fiatside

Developers

Dane referencyjne i paginacja

Katalogi kanałów płatności, aktywów i krajów pochodzą z tego samego źródła, które zasila stronę internetową. Zawierają limity, opóźnienia, opłaty i schematy pól — wystarczająco, aby wygenerować formularz wypłaty zamiast kodować go kraj po kraju.

Częstotliwość odświeżania

Te dane zmieniają się rzadko, ale jednak się zmieniają: limit kanału, godzina graniczna, otwarcie nowego kraju. Odświeżaj je co najmniej raz dziennie i nie zamrażaj w swoim kodzie. Każdy wpis zawiera datę ostatniej ręcznej weryfikacji: po upływie sześciu miesięcy potraktuj go jako wymagający sprawdzenia.

01

Paginacja

Paginacja kursorem, a nie przesunięciem numerycznym. Przesunięcie pomija lub duplikuje elementy, gdy lista przesuwa się między dwiema stronami; kursor wskazuje stabilną pozycję.

Żądaniehttp
GET /api/v1/rails?limit=50&cursor=cJ0xNzg4MzU2OTgx
Odpowiedźjson
{
  "data": [ /* … */ ],
  "next_cursor": "cJ0xNzg4MzU3MTEy"
}
  • limit domyślnie wynosi 50, maksymalnie 100. Większa wartość jest ograniczana do maksimum, a nie odrzucana.
  • next_cursor ma wartość null na ostatniej stronie. To jedyny sygnał końca: nie wnioskuj o końcu na podstawie krótkiej strony.
  • Kursor jest nieprzezroczysty i nie ma gwarantowanej żywotności. Nie przechowuj go jako trwałego identyfikatora i nie twórz własnego.
  • Kolejność jest stabilna w ramach jednego przebiegu paginacji. Element dodany podczas przeglądania stron pojawi się w następnym pełnym przebiegu, a nie w środku bieżącego.
GET/api/v1/railsPublished contract, not open

Lista metod wypłaty

Katalog kanałów wypłat z walutą, obsługiwanymi krajami, opóźnieniami p50 i p95, zasadami dni roboczych, godziną graniczną, limitami na operację w jednostkach pomocniczych, opłatami oraz schematem pól beneficjenta. Ten schemat pozwala wygenerować formularz wypłaty zamiast kodować go kraj po kraju.

Uwierzytelnianie: Authorization: Bearer … Zobacz uwierzytelnianie

Parametry

Parametry
PoleTypOpis
countrystringFiltr ISO 3166-1 alpha-2.
currencystringFiltr ISO 4217.
phasestringlive, beta, planned lub never.
limitintegerRozmiar strony, od 1 do 100, domyślnie 50.
cursorstringNieprzezroczysty kursor zwrócony przez poprzednie wywołanie.
Żądaniebash
curl -sS 'https://fiatside.com/api/v1/rails?country=BR' \
  -H 'Authorization: Bearer sk_live_...'
Odpowiedź — opublikowany kontraktjson
{
  "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
}
  • Zamknięty kanał jest zwracany z jego fazą i powodem, a nie usuwany z listy. Integracja, która nie widzi, dlaczego kanał zniknął, kontaktuje się z własnym wsparciem.

Możliwe błędy: unauthorized, invalid_request. Pełny katalog

GET/api/v1/assetsPublished contract, not open

Lista akceptowanych aktywów

Aktywa akceptowane do depozytu, z liczbą miejsc po przecinku jednostki bazowej, sieciami, minimalnym depozytem, czasem blokady kursu oraz, tam gdzie to istotne, powodem, dla którego aktywo nie jest oferowane.

Uwierzytelnianie: Authorization: Bearer … Zobacz uwierzytelnianie

Parametry

Parametry
PoleTypOpis
networkstringZwraca tylko aktywa dostępne w tej sieci.
Żądaniebash
curl -sS 'https://fiatside.com/api/v1/assets?network=tron' \
  -H 'Authorization: Bearer sk_live_...'
Odpowiedź — opublikowany kontraktjson
{
  "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 jest wyrażone w jednostkach BAZOWYCH (20000000 = 20 USDT przy 6 miejscach po przecinku). Poniżej tego progu koszt sieci pochłania większość operacji.

Możliwe błędy: unauthorized. Pełny katalog

GET/api/v1/countriesPublished contract, not open

Lista krajów

Kraje obsługiwane, kraje w przygotowaniu i kraje odrzucone. Kraj odrzucony jest zwracany z powodem: międzynarodowe sankcje, środki ograniczające lub niedopuszczalne ryzyko prania pieniędzy.

Uwierzytelnianie: Authorization: Bearer … Zobacz uwierzytelnianie

Parametry

Parametry
PoleTypOpis
statusstringopen, coming lub restricted.
Żądaniebash
curl -sS 'https://fiatside.com/api/v1/countries?status=open' \
  -H 'Authorization: Bearer sk_live_...'
Odpowiedź — opublikowany kontraktjson
{
  "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
}

Możliwe błędy: unauthorized. Pełny katalog

02

Schemat pól beneficjenta

Każdy kanał płatności opisuje wymagane pola, wraz ze wzorcem walidacji, normalizacją i tekstem pomocy. To pozwala wygenerować poprawny formularz dla kraju, którego nigdy nie integrowałeś.

Pole schematujson
{
  "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."
  }
}

Walidacja wzorca odbywa się po Twojej stronie ORAZ po naszej: Twoja oszczędza użytkownikowi dodatkowego obiegu, nasza jest autorytatywna. Tekst pomocy jest dostarczany w obu językach i warto go wyświetlać: zapobiega większości odrzuconych wypłat, które prawie zawsze wynikają z błędnego formatu, a nie z awarii.