Fiatside

Developers

작업 견적

견적은 현재 열려 있는 유일한 엔드포인트이며 가장 중요한 엔드포인트입니다. 사이트에 표시되는 항목별 내역을 반환하며 키가 필요하지 않습니다.

POST/api/quoteLive

작업 견적 요청

판매의 전체 내역을 반환합니다: 사용된 중간 시장 환율, 각 수수료가 별도 줄에 표시, 순액 및 실제로 얻은 유효 환율. 줄들의 합은 총액과 순액 사이의 차이와 정확히 일치합니다 — 불변 조건은 응답이 나가기 전에 확인되며, 불균형 응답은 절대 반환되지 않습니다.

인증: 오늘은 없음. 견적 엔드포인트는 공개되어 있습니다: 견적은 개인 데이터를 노출하지 않습니다.

매개변수

매개변수
필드유형설명
assetId필수string입금 자산의 식별자, 예: "btc", "usdt", "sol".
railId필수string지급 방법의 식별자, 예: "sepa_instant", "br_pix", "ke_mpesa".
networkIdstring입금 네트워크. 선택 사항: 기본적으로 자산의 첫 번째 네트워크가 사용됩니다. 네트워크 비용은 네트워크마다 크게 다르므로 이 필드는 순액을 변경합니다.
direction필수"sell" | "receive"입력 방향. "sell": 금액은 입금할 금액입니다. "receive": 금액은 받고자 하는 금액이며, 필요한 입금액은 이진 탐색으로 결정됩니다.
amount필수string주요 단위의 금액으로, STRING으로 전송됩니다. JSON float는 큰 금액에서 소수 단위를 잃을 수 있습니다: 문자열만이 클라이언트와 서버가 센트까지 일치하는 유일한 형식입니다.
요청bash
curl -sS -X POST https://fiatside.com/api/quote \
  -H 'Content-Type: application/json' \
  -d '{
    "assetId": "usdt",
    "railId": "sepa_instant",
    "networkId": "tron",
    "direction": "sell",
    "amount": "1000"
  }'
응답 — 실제 예시json
{
  "deposit": { "amount": "1000.000000", "ticker": "USDT", "decimals": 6 },
  "gross": "921.68",
  "net": "912.28",
  "currency": "EUR",
  "currencyDecimals": 2,
  "midRate": "0.92168430",
  "effectiveRate": "0.91228000",
  "totalCostBps": 102,
  "lines": [
    { "code": "network", "amount": "1.11", "basis": "Cout reseau tron, preleve en USDT" },
    { "code": "spread",  "amount": "8.29", "basis": "0.90 % du montant converti" }
  ],
  "settlement": { "p50Minutes": 1, "p95Minutes": 12 },
  "lockSeconds": 1800,
  "rateAsOf": 1788356981608,
  "rateSource": "mock",
  "limitError": null
}
  • 응답에는 Cache-Control: no-store가 포함됩니다. 캐시된 견적은 확정 가격으로 제공되는 오래된 가격입니다.
  • 레일 한도 위반은 HTTP 오류가 아닙니다: 견적은 below_min 또는 above_max 코드와 정확한 한도를 포함하는 limitError 객체와 함께 반환되므로, 인터페이스는 두 번째 호출 없이 올바른 메시지를 표시할 수 있습니다.
  • rateSource는 가격이 어디서 왔는지 나타냅니다. 값 "mock"은 결정적 개발 소스입니다: 프로덕션에서는 부팅할 수 없으며, 프로세스는 고정 가격을 견적하는 대신 시작을 거부합니다.

가능한 오류: invalid_request, unknown_asset_or_rail, rail_not_open, asset_not_offered, invalid_amount, rate_stale, rate_unavailable, quote_failed. 전체 카탈로그

01

내역 읽기

lines 배열은 실제 수수료당 하나의 항목을 보유합니다. 0인 항목은 반환되지 않습니다. '레일 수수료: 0.00'을 표시하는 것은 아무것도 추가하지 않고 인터페이스를 어지럽힙니다.

내역 읽기
code수취인내용
네트워크블록체인 네트워크자산 이동 비용으로, 변환 전 입금에서 현물로 차감됩니다. 선택한 네트워크에 따라 때로는 큰 폭으로 달라지므로 networkId가 순 금액을 변경합니다.
스프레드당사변환 금액의 백분율로 표시되는 당사 마진입니다. 당사 수익의 유일한 항목입니다.
레일결제 기관지불 방법 수수료로, 고정, 비례 또는 둘 다일 수 있습니다. 레일이 수수료를 부과하지 않는 경우(대부분의 공개 레일이 해당)에는 표시되지 않습니다.
외환외환추가 변환이 발생할 때 명시적 환전 스프레드를 위해 예약된 항목입니다. 레일 통화가 견적 통화인 경로에는 표시되지 않습니다.

표를 확인 가능하게 만드는 불변 조건

총액에서 항목 합계를 뺀 값이 최소 단위까지 정확히 순액과 같습니다. 이 동등성은 응답이 나가기 전에 모든 견적에서 확인되며, 균형이 맞지 않으면 엔진은 반환하는 대신 오류를 발생시킵니다. 직접 계산을 다시 할 수 있습니다. 그것이 핵심입니다.

02

수수료가 있는 송금 채널의 예

송금 수수료가 있는 채널로 같은 금액을 보내면 세 번째 줄이 나타납니다. 결정적 개발 소스에서 얻은 실제 응답입니다.

요청bash
curl -sS -X POST https://fiatside.com/api/quote \
  -H 'Content-Type: application/json' \
  -d '{
    "assetId": "usdt",
    "railId": "ke_mpesa",
    "networkId": "tron",
    "direction": "sell",
    "amount": "1000"
  }'
응답 — 실제 예json
{
  "gross": "129525.90",
  "net": "128141.44",
  "currency": "KES",
  "totalCostBps": 107,
  "lines": [
    { "code": "network", "amount": "155.44", "basis": "Cout reseau tron, preleve en USDT" },
    { "code": "spread",  "amount": "582.17", "basis": "0.45 % du montant converti" },
    { "code": "rail",    "amount": "646.85", "basis": "0.50 % du montant converti" }
  ],
  "settlement": { "p50Minutes": 2, "p95Minutes": 45 },
  "limitError": null
}

세 줄, 세 명의 서로 다른 수취인: 네트워크, 당사, 결제 기관. totalCostBps 필드는 중간 시장 환율과의 총 차이를 베이시스 포인트로 제공합니다. 이는 서비스 간 비교할 가치가 있는 유일한 숫자로, 환율 내에 숨겨질 수 있는 모든 것을 포함하기 때문입니다.

03

송금 채널 한도

송금 채널 범위를 벗어난 금액은 HTTP 오류를 발생시키지 않습니다. 견적이 반환되며 limitError 객체가 포함됩니다. 따라서 인터페이스는 두 번째 호출 없이 금액과 정확한 사유를 모두 표시할 수 있습니다.

응답 발췌 — 실제 예json
{
  "net": "3.47",
  "currency": "EUR",
  "limitError": { "code": "below_min", "limit": "20.00" }
}

가능한 값은 below_min 및 above_max이며, limit는 송금 채널 통화의 주요 단위로 한도를 보유합니다. 참고: 한도는 입금액이 아닌 순액에 적용됩니다. 수취인이 받는 금액이 송금 채널 한도 내에 맞아야 합니다.

04

유효 기간

lockSeconds 필드는 주문이 생성되면 요율이 동결되는 기간을 명시합니다. 이는 자산에 따라 다릅니다: 스테이블코인에서는 더 길고, 변동성이 큰 자산에서는 더 짧습니다.

  • 견적 자체는 확정적이지 않습니다. 주문이 생성될 때까지 표시적입니다. 요율은 견적 호출 시가 아닌 주문 생성 시 고정됩니다.
  • 유효 기간은 결정 시간을 포함하며 네트워크 확인 시간은 포함하지 않습니다. 비트코인 입금은 한 시간의 확인이 필요할 수 있습니다. 잠금은 결정 및 입금하는 동안 시장 변동으로부터 보호합니다.
  • 만료 후 입금이 도착하면 주문이 다시 견적되고 새 금액을 수락해야 합니다. 구조상 고객에 대한 묵시적 재가격은 불가능합니다.
  • 오래된 요율 오류를 숨기기 위해 견적을 캐시하지 마십시오. 캐시된 견적은 확정된 것으로 제시되는 오래된 가격이며, 이는 거부 코드가 방지하는 문제입니다.