Перейти к содержимому
API-документация

Рассчитать стоимость

POST/api/partner/v1/quote
Scope
cards:read

Считает, сколько будет стоить операция. Побочных эффектов нет: ничего не резервируется, карта не затрагивается.

amount_type выбирает, какую сторону вы задаёте. credit (по умолчанию): вы говорите, сколько должно прийти на карту, мы говорим, сколько спишем. debit: вы задаёте бюджет, мы говорим, сколько придёт на карту.

Округление — до 4 знаков и всегда в нашу пользу не более чем на 0.0001 USD, поэтому котировка никогда не занижает то, что вы заплатите.

Тело запроса

ПолеТипОбяз.Описание
amountstring (decimal)нетДесятичная строка в USD. Нужна для issue и topup; для close не используется
amount_typestringнетcredit (по умолчанию) — вы задаёте, сколько придёт на карту. debit — сколько спишется с баланса
kindstringнетЧто рассчитать. По умолчанию issue. (issue, topup, close)
tariff_idstring (uuid)даИз GET /tariffs

Пример запроса

BODY='{"kind":"issue","tariff_id":"3f6c2a1e-8b4d-4e2a-9c71-5d0e8f1a2b34","amount":"50","amount_type":"credit"}'
TS=$(date +%s)
SIG=$(printf '%s\n%s\n%s\n%s' "$TS" "POST" "/api/partner/v1/quote" "$BODY" \
  | openssl dgst -sha256 -hmac "$PP_SECRET" -hex | awk '{print $NF}')

curl -sS -X POST "https://api.plativputi.com/api/partner/v1/quote" \
  -H "X-Key-Id: $PP_KEY_ID" \
  -H "X-Timestamp: $TS" \
  -H "X-Signature: $SIG" \
  -H "Content-Type: application/json" \
  -d "$BODY"
const res = await pp("POST", "/quote", {
  "kind": "issue",
  "tariff_id": "3f6c2a1e-8b4d-4e2a-9c71-5d0e8f1a2b34",
  "amount": "50",
  "amount_type": "credit"
});
res = pp("POST", "/quote", body={
    "kind": "issue",
    "tariff_id": "3f6c2a1e-8b4d-4e2a-9c71-5d0e8f1a2b34",
    "amount": "50",
    "amount_type": "credit",
})
$res = pp('POST', '/quote', [
    'kind' => 'issue',
    'tariff_id' => '3f6c2a1e-8b4d-4e2a-9c71-5d0e8f1a2b34',
    'amount' => '50',
    'amount_type' => 'credit',
]);

pp() — функция-обёртка с подписью из раздела Аутентификация и подпись.

Ответ

200 OK — QuoteOutputBody

ПолеТипОбяз.Описание
close_feestring (decimal)даФиксированная комиссия закрытия в составе debit
creditstring (decimal)даСколько придёт на карту
debitstring (decimal)даСколько всего спишется с баланса
issue_feestring (decimal)даФиксированная комиссия выпуска в составе debit
topup_feestring (decimal)даКомиссия пополнения в составе debit

Примеры ответа

{
  "debit": "57.0464",
  "credit": "50",
  "issue_fee": "5",
  "close_fee": "0",
  "topup_fee": "2.0464"
}
{
  "title": "Not Found",
  "status": 404,
  "detail": "partner_tariff_not_available",
  "errors": [
    {
      "message": "tariff_not_available",
      "location": "error.code",
      "value": "tariff_not_available"
    }
  ]
}

Ошибки

HTTPКодКогда
400validation_failedamount_type: debit, а сумма не покрывает комиссию выпуска или фиксированную часть комиссии пополнения.
404tariff_not_availableТариф не найден, выключен или снят с продажи. Возьмите актуальный из GET /tariffs.

Плюс общие ошибки подписи и лимитов — см. Ошибки.