Введение
Для начала работы с CardBtc API необходимо получить API Token. Чтобы получить Ваш API Token - необходимо связаться с одним из наших менеджеров. Это можно сделать через наш телеграм или написав на почту.
К Вашему токену будут привязаны такие параметры:
- Минимальная и максимальная сумма обмена в установленной валюте
- Курс валюты обмена (наценка в процентах)
- Разрешенные направления обмена (Bitcoin, Litecoin, Ethereum, Monero, USDT, Банки, QIWI, SIM, ...)
Точка входа в API
Все API запросы должны по адресу API_URL/Метод, где Метод - это указанный метод (функция) типа POST или GET со своим набором параметров. В свою очередь API_URL это адрес домена, который также будет Вам выдан вместе с токеном.
Для авторизации необходимо отправлять заголовок HTTP запроса:
Authorization: Bearer Токен
Где Токен, это Ваш токен, который привязан к вашей точке обмена (ТО). Все POST параметры передаются только JSON ENCODED объектом в виде RAW POST DATA.
Алгоритм работы API
Первым делом необходимо получить информацию о ТО. Отобразить клиенту текущий курс и лимиты по минимальной и максимальной сумме. Далее после того, как клиент укажет сумму, которую он хочет поменять и приемлемый метод обмена, нужно создать заявку на обмен. Далее в цикле получат информацию о заявке пока не изменится ее статус. Если в течении 20 минут реквизиты не будут выданы, то статус заявки автоматически изменится на Отменена. После получения реквизитов необходимо выдать клиенту реквизиты для оплаты. После того как клиент переведет деньги и нажмет кнопку Оплатил, нужно изменить статус заявки на Оплачено и в цикле проверять статус заявки. Она либо изменится на Отменена (если в течении 5 минут система не найдет оплату клиента) или на Ожидание отправки Биткоинов в случае положительного резульата. Также в течении нескольких секунд этот статус изменится на Обмен завершен.
Метод /exchange/info
Получить информацию о настройках вашей точки обмена.
- Метод: GET
- Запрос: /exchange/info
- Параметры: Нет
stdClass Object(
[status] => success
[message] => Информация о магазине
[data] => stdClass Object (
Получить информацию о точке
обмена.
[name] => TestExchangePoint
[min_amount] => 1000
[max_amount] => 15000
[fee] => 15
[qiwi] => 1
[sim] => 1
[bank] =>
[currency] => RUB
[rate] => 499541.60
)
)
Метод /exchange/order/create
Создать новую заявку.
- Метод: POST
- Запрос: /exchange/order/create
- Параметры:
- payment_method - Платежная система. Могут быть: bank, qiwi, sim, yandex
- btc_wallet - Криптовалютный (Bitcoin, Litecoin, Monero, Ethereum, ...) кошелек, для получения выплаты
- amount_cur - Если нужно поменять определенное количество фиата в криптовалюту, то укажите здесь точную сумму фиата, которую клиент будет отправлять. Если указан amount_btc - то не указывайте этот параметр, он будет проигнорирован.
- amount_btc - Если нужно получить точное количество криптовалюты, то укажите в этом параметре это число до 8 знаков после запятой. Невозможно использовать вместе с amount_cur.
- client_id - Код клиента. Нужен обязательно для идентификации клиентов. Используется для последующего учета и идентификации заказов.
- ex_order_id - Ваш внутренний код заявки, который Вы можете указать, а можете не указывать. Используется в случае обращения ваших клиентов в нашу техническую поддержку.
- number - Используется только в случае, если требуется указать реквизиты клиента, с которых он собирается производить оплату. Актуально для QIWI, Yandex.
stdClass Object(
[status] => success
[message] => Ваш запрос успешно создан
[data] => stdClass Object (
[date] => 2018-10-10 21:16:37
[request_id] => 4
[amount_btc] => 0.00200111
[amount_cur] => 1000
[payment_method] => qiwi
[number] => +79586736229
[rate] => 499722.15
[fee] => 15
[currency] => RUB
[status] => 1
)
)
Метод /exchange/order/status
Получить текущее состояние заявки по ее номеру.
- Метод: GET
- Запрос: /exchange/order/status/код где код - это номер заявки, выданный функцией /exchange/order/create
- Параметры: нет
stdClass Object(
[status] => success
[message] => Заявка найдена
[data] => stdClass Object(
[date] => 2018-10-10 21:16:37
[request_id] => 4
[amount_btc] => 0.00200111
[amount_cur] => 1000
[payment_method] => qiwi
[fee] => 15
[currency] => RUB
[status] => 1
[error] =>
[number] => +79586736111
)
)
Метод /exchange/order/statuses
Получить текущее состояние нескольких заявок по их номерам.
- Метод: POST
- Запрос: /exchange/order/statuses
- Параметры:
- ids - Массив номеров заявок. Максимальное число номеров которое можно передать 100шт.
stdClass Object(
[status] => success
[message] => Заявка найдена
[data] => stdClass Array([
[0] => stdClass Object(
[date] => 2018-10-10 21:16:37
[request_id] => 4
[amount_btc] => 0.00200111
[amount_cur] => 1000
[payment_method] => qiwi
[fee] => 15
[currency] => RUB
[status] => 1
[error] =>
[number] => +79586736111
),
...
[99] => stdClass Object(
[date] => 2018-10-10 21:16:37
[request_id] => 4
[amount_btc] => 0.00200111
[amount_cur] => 1000
[payment_method] => qiwi
[fee] => 15
[currency] => RUB
[status] => 1
[error] =>
[number] => +79586736111
)
])
)
Метод /exchange/order/status
Изменить состояние заявки на новый статус. Например сменить статус заявки на поиск платежа, если клиент произвел оплату.
- Метод: POST
- Запрос: /exchange/order/status/код где код - это номер заявки, выданный функцией /exchange/order/create
- Параметры:
- status - Может быть только значением 4. Менять статус можно только если текущее состояние 2.
stdClass Object(
[status] => success
[message] => Состояние заявки успешно изменено Установка статуса «Оплатил» клиентом.
[data] => stdClass Object(
[date] => 2018-10-10 21:16:37
[request_id] => 4
[amount_btc] => 0.00200111
[amount_cur] => 1000
[payment_method] => qiwi
[fee] => 15
[currency] => RUB
[status] => 4
[error] =>
[number] => +79776736169
[details] => stdClass Object (
[pay_info] => +79586736229
)
)
)
Метод /exchange/order/amount
Изменить сумму заявки указав желаемую сумму в криптовалюте или фиате.
- Метод: POST
- Запрос: /exchange/order/amount/код где код - это номер заявки, выданный функцией /exchange/order/create
- Параметры:
- amount_cur - Новая сумма в фиате. Нельзя использовать вместе с amount_btc
- amount_btc - Новая сумма в криптовалюте. Нельзя использовать вместе с amount_cur
stdClass Object(
[status] => success
[message] => Сумма заявки успешно изменена
[data] => stdClass Object(
[date] => 2018-10-10 21:16:37
[request_id] => 4
[amount_btc] => 0.00200111
[amount_cur] => 1000
[payment_method] => qiwi
[fee] => 15
[currency] => RUB
[status] => 4
[error] =>
[number] => +79776736169
[details] => stdClass Object (
[pay_info] => +79586736229
)
)
)