{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-@l10n/en/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["signatureVerifier","codeTabs","tab"]},"type":"markdown"},"seo":{"title":"Exchange rate","description":"Документация API 1Payment — приём платежей и выплаты.","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"exchange-rate","__idx":0},"children":["Exchange rate"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The method returns the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["conversion rate"]}," between two currencies for the specified project. Use it before calculating payment or payout amounts in another currency."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["HTTP request format is in ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/en/pages/init-request"},"children":["API request format"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"how-it-works","__idx":1},"children":["How it works"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Request"]}," — your server calls ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["get_rate"]}," with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["partner_id"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["project_id"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currency_from"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currency_to"]},", and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sign"]}," signature."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Verification"]}," — the API verifies the signature and partner access to the project."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Response"]}," — JSON with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["rate"]},": how many units of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currency_to"]}," correspond to one unit of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currency_from"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"technical-details","__idx":2},"children":["Technical details"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":""},"children":[]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":""},"children":[]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Endpoint"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api.1payment.com/get_rate"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Method"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Response format"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["JSON"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Authorization"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["API Key — used in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sign"]}," signature generation"]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"request-parameters","__idx":3},"children":["Request parameters"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"required","__idx":4},"children":["Required"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["partner_id"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Integer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your unique ID in the 1Payment system."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["project_id"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Integer"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Project identifier."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currency_from"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Source currency (ISO code, e.g. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["usdt"]},")."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currency_to"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Target currency (ISO code, e.g. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["rub"]},")."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sign"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Request signature (see \"Signature\" section)."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"signature-generation--sign-","__idx":5},"children":["Signature generation (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sign"]},")"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Signature: MD5, lowercase (hex). General rules — ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/en/pages/init-request#request-signature-sign"},"children":["API request format"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Formula:"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"text","header":{"controls":{"copy":{}}},"source":"MD5(get_rate + <parameters_without_sign_in_alphabetical_order_joined_by_&> + <API_KEY>)\n","lang":"text"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Example string before hashing:"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"text","header":{"controls":{"copy":{}}},"source":"get_ratecurrency_from=usdt&currency_to=rub&partner_id=1234&project_id=5678secret_key\n","lang":"text"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"signature-verification-in-the-documentation","__idx":6},"children":["Signature verification in the documentation"]},{"$$mdtype":"Tag","name":"SignatureVerifier","attributes":{"method":"get_rate","preset":"get_rate"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"request-examples","__idx":7},"children":["Request examples"]},{"$$mdtype":"Tag","name":"CodeTabs","attributes":{},"children":[{"$$mdtype":"Tag","name":"Tab","attributes":{"label":"Node.js"},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"javascript","header":{"controls":{"copy":{}}},"source":"const crypto = require('crypto');\nconst axios = require('axios');\n\nasync function getRate(apiKey, partnerId, projectId, currencyFrom, currencyTo) {\n  const params = {\n    partner_id: partnerId,\n    project_id: projectId,\n    currency_from: currencyFrom,\n    currency_to: currencyTo,\n  };\n\n  // 1. Сортировка параметров по алфавиту\n  const sortedKeys = Object.keys(params).sort();\n  const queryString = sortedKeys.map((key) => `${key}=${params[key]}`).join('&');\n\n  // 2. Подпись с префиксом get_rate\n  const baseString = `get_rate${queryString}${apiKey}`;\n  params.sign = crypto.createHash('md5').update(baseString).digest('hex');\n\n  // 3. GET-запрос\n  const response = await axios.get('https://api.1payment.com/get_rate', { params });\n  return response.data;\n}\n\nconst apiKey = process.env.ONEPAYMENT_API_KEY;\ngetRate(apiKey, 1234, 5678, 'usdt', 'rub').then(console.log);\n","lang":"javascript"},"children":[]}]},{"$$mdtype":"Tag","name":"Tab","attributes":{"label":"Python"},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"import hashlib\nimport os\nimport requests\n\ndef get_rate(\n    api_key: str,\n    partner_id: int,\n    project_id: int,\n    currency_from: str,\n    currency_to: str,\n) -> dict:\n    params = {\n        \"partner_id\": partner_id,\n        \"project_id\": project_id,\n        \"currency_from\": currency_from,\n        \"currency_to\": currency_to,\n    }\n\n    # 1. Сортировка параметров\n    sorted_keys = sorted(params.keys())\n    query_string = \"&\".join(f\"{k}={params[k]}\" for k in sorted_keys)\n\n    # 2. Подпись get_rate\n    base_string = f\"get_rate{query_string}{api_key}\"\n    params[\"sign\"] = hashlib.md5(base_string.encode(\"utf-8\")).hexdigest()\n\n    # 3. GET-запрос\n    response = requests.get(\"https://api.1payment.com/get_rate\", params=params)\n    response.raise_for_status()\n    return response.json()\n\napi_key = os.environ[\"ONEPAYMENT_API_KEY\"]\nprint(get_rate(api_key, 1234, 5678, \"usdt\", \"rub\"))\n","lang":"python"},"children":[]}]},{"$$mdtype":"Tag","name":"Tab","attributes":{"label":"PHP"},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"php","header":{"controls":{"copy":{}}},"source":"<?php\n\nfunction getRate(\n    string $apiKey,\n    int $partnerId,\n    int $projectId,\n    string $currencyFrom,\n    string $currencyTo\n): string {\n    $params = [\n        'partner_id' => $partnerId,\n        'project_id' => $projectId,\n        'currency_from' => $currencyFrom,\n        'currency_to' => $currencyTo,\n    ];\n\n    // 1. Сортировка параметров по алфавиту\n    ksort($params, SORT_LOCALE_STRING);\n    $tail = '';\n    foreach ($params as $k => $v) {\n        if ($k === 'sign') {\n            continue;\n        }\n        $tail .= \"{$k}={$v}&\";\n    }\n    $tail = substr($tail, 0, -1);\n\n    // 2. Формирование подписи (префикс get_rate)\n    $params['sign'] = md5('get_rate' . $tail . $apiKey);\n\n    // 3. Запрос к API\n    $url = 'https://api.1payment.com/get_rate?' . http_build_query($params);\n    $ch = curl_init($url);\n    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n    $response = curl_exec($ch);\n    curl_close($ch);\n\n    return $response;\n}\n\n$apiKey = getenv('ONEPAYMENT_API_KEY');\necho getRate($apiKey, 1234, 5678, 'usdt', 'rub');\n","lang":"php"},"children":[]}]},{"$$mdtype":"Tag","name":"Tab","attributes":{"label":"cURL"},"children":[{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"# Подпись: md5(\"get_rate\" + currency_from=usdt&currency_to=rub&partner_id=1234&project_id=5678 + API_KEY)\n\ncurl -sS \"https://api.1payment.com/get_rate?partner_id=1234&project_id=5678&currency_from=usdt&currency_to=rub&sign=PASTE_MD5_HEX\"\n","lang":"bash"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"api-response","__idx":8},"children":["API response"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Successful response (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["200"]},"):"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"rate\": 72.44\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["rate"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Number"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Conversion rate ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currency_from"]}," → ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["currency_to"]},"."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Request error (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["400"]},"):"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"error_code\": 2\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["error_code"]}," meanings — in ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/en/pages/error-codes-api"},"children":["Error codes (API)"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related-sections","__idx":9},"children":["Related sections"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/en/pages/init-request"},"children":["API request format"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/en/pages/balance"},"children":["Balance request"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/en/pages/payout-types"},"children":["Payout types"]}]}]}]},"headings":[{"value":"Exchange rate","id":"exchange-rate","depth":1},{"value":"How it works","id":"how-it-works","depth":2},{"value":"Technical details","id":"technical-details","depth":2},{"value":"Request parameters","id":"request-parameters","depth":2},{"value":"Required","id":"required","depth":3},{"value":"Signature generation ( sign )","id":"signature-generation--sign-","depth":2},{"value":"Signature verification in the documentation","id":"signature-verification-in-the-documentation","depth":3},{"value":"Request examples","id":"request-examples","depth":2},{"value":"API response","id":"api-response","depth":2},{"value":"Related sections","id":"related-sections","depth":2}],"frontmatter":{"seo":{"title":"Exchange rate"}},"lastModified":"2026-07-09T09:48:51.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/en/pages/get-rate","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}