Перейти к основному содержимому
Машинный перевод

Эта страница использует машинный перевод. При любых несоответствиях обращайтесь к английской документации.

Проверка адреса

Crypto2B позволяет клиентской системе проверить уровень риска (AML) любого криптоадреса перед выполнением операции с ним. Типичный сценарий — проверка адреса, введённого пользователем в форме вывода средств, перед созданием заявки на вывод.

Проверка выполняется асинхронно. Клиентская система регистрирует проверку, вызывая API /addressChecks/create, и получает результат одним из двух способов:

  1. Обработать колбэк от Crypto2B с результатом проверки (см. Колбэки).
  2. Повторно вызывать API /addressChecks/create с теми же параметрами до получения результата.

Процесс проверки адреса

Последовательность действий

  1. Пользователь вводит адрес в клиентской системе, например для вывода средств.
  2. Клиентская система отправляет Crypto2B запрос на проверку адреса, указывая валюту, транспортный протокол и адрес.
  3. Crypto2B проверяет параметры запроса, ограничения клиента и наличие средств для оплаты проверки, регистрирует проверку и возвращает её идентификатор checkId со статусом Pending.
  4. Crypto2B выполняет проверку адреса и определяет его уровень риска.
  5. После завершения проверки Crypto2B списывает плату за проверку с баланса клиента и переводит проверку в статус Completed.
  6. Если клиентская система использует механизм колбэков, Crypto2B отправляет колбэк с результатом проверки.
  7. В противном случае клиентская система повторяет запрос с теми же параметрами и получает результат со статусом Completed.
  8. Клиентская система принимает решение о принятии адреса на основе уровня риска amlRiskGrade.

Запрос

POST /api/v1/addressChecks/create

ПараметрТипОбязательныйОписание
currencyShortNamestringдаКороткое название валюты, например USDT
transportProtocolstringдаТранспортный протокол, например Tron
addressstringдаПроверяемый адрес, не более 200 символов
{
"currencyShortName": "USDT",
"transportProtocol": "Tron",
"address": "TJYeasypBnB2x5hLTpYPQZ6YR9ZL3hLj6b"
}

Ответ

Проверка зарегистрирована или выполняется — 202 Accepted

{
"data": {
"checkId": "550e8400-e29b-41d4-a716-446655440000",
"status": "Pending",
"amlRiskGrade": null,
"description": null,
"fromCache": null
}
}

Проверка завершена — 200 OK

{
"data": {
"checkId": "550e8400-e29b-41d4-a716-446655440000",
"status": "Completed",
"amlRiskGrade": "Low",
"description": "Exchange wallet",
"fromCache": true
}
}
ПолеОписание
checkIdУникальный идентификатор проверки
statusСтатус проверки: Pending, Completed
amlRiskGradeУровень риска адреса (см. Справочники). Заполняется только при статусе Completed
descriptionОписание адреса по результатам проверки, если доступно
fromCachetrue, если возвращается ранее полученный результат (см. Повторные проверки)

Ошибки

HTTP-кодКод ошибкиОписание
400Ошибка валидации параметров запроса, в том числе неверный формат адреса для указанной валюты и протокола
400INVALID_CURRENCYВалюта не найдена или не поддерживается на указанном протоколе
400INVALID_TRANSPORT_PROTOCOLТранспортный протокол не найден
402INSUFFICIENT_BALANCEНа балансе клиента недостаточно средств для оплаты проверки
422OPERATION_RESTRICTEDПроверка адреса недоступна для этого клиента
422TARIFF_NOT_FOUNDДля клиента не настроен тариф

Статусы проверки

СтатусОписание
PendingПроверка зарегистрирована и выполняется
CompletedПроверка успешно завершена, уровень риска получен, плата списана
ErrorПроверка завершилась ошибкой. Плата не списывается
UnknownРезультат проверки не удалось определить, например проверка не поддерживается для указанной валюты. Плата не списывается
к сведению

Статусы Error и Unknown передаются только в колбэке. Если запрос повторяется после такой проверки, Crypto2B регистрирует новую проверку и возвращает 202 Accepted с новым checkId.

Повторные проверки

Результат успешной проверки хранится 10 минут. Повторный запрос с той же валютой, протоколом и адресом в течение этого времени:

  • пока проверка выполняется — возвращает 202 Accepted с тем же checkId; новая проверка не создаётся;
  • после завершения — возвращает 200 OK с сохранённым результатом и fromCache: true; плата повторно не списывается.

По истечении 10 минут запрос регистрирует новую проверку, за которую взимается плата.

подсказка

Если клиентская система не использует колбэки, рекомендуется повторять запрос каждые несколько секунд до получения 200 OK. Изменение checkId в ответе означает, что предыдущая проверка завершилась ошибкой и была зарегистрирована новая.

Плата за проверку

За каждую успешно завершённую проверку с баланса клиента списывается фиксированная плата в долларах США; её размер определяется тарифом клиента (см. Тарификация).

  • Плата списывается, когда проверка завершается со статусом Completed.
  • Плата списывается со стейблкоин-баланса клиента (USDT или USDC) по курсу на момент списания. Сумма и валюта списания передаются в колбэке.
  • Если ни на одном из стейблкоин-балансов нет достаточных средств, запрос отклоняется с кодом 402.
  • За проверки со статусом Error или Unknown плата не взимается.
  • Списания за проверку адресов отображаются в списке операций личного кабинета.

Колбэк

Если для клиента настроен URL колбэка, Crypto2B отправляет колбэк при завершении проверки в любом из финальных статусов: Completed, Error, Unknown.

{
"data": {
"type": "AddressCheck",
"checkId": "550e8400-e29b-41d4-a716-446655440000",
"address": "TJYeasypBnB2x5hLTpYPQZ6YR9ZL3hLj6b",
"status": "Completed",
"amlRiskGrade": "Low",
"description": "Exchange wallet",
"currency": "USDT",
"protocol": "Tron",
"feeAmount": 0.5,
"feeCurrencyShortName": "USDT",
"timestamp": "2024-01-15T10:30:00Z",
"errorCode": null,
"errorMessage": null
}
}
ПолеОписание
typeТип операции: AddressCheck
checkIdИдентификатор проверки
addressПроверяемый адрес
statusСтатус проверки: Completed, Error, Unknown
amlRiskGradeУровень риска адреса. Заполняется только при статусе Completed
descriptionОписание адреса по результатам проверки, если доступно
currencyКороткое название валюты
protocolТранспортный протокол
feeAmountСумма списанной платы в валюте feeCurrencyShortName. null, если плата не списывалась
feeCurrencyShortNameВалюта, в которой списана плата
timestampДата и время формирования колбэка (ISO 8601)
errorCodeКод ошибки для статусов Error и Unknown
errorMessageОписание ошибки для статусов Error и Unknown

Коды ошибок колбэка

КодСтатусОписание
INSUFFICIENT_BALANCEErrorНа момент списания на балансе клиента не было достаточно средств для оплаты проверки
ANTIFRAUD_ERRORErrorОшибка при выполнении проверки
ANTIFRAUD_INVALID_RESULTUnknownПроверка завершилась без определения уровня риска
CURRENCY_NOT_SUPPORTEDUnknownПроверка адреса не поддерживается для указанной валюты или протокола
INTERNAL_ERRORErrorВнутренняя ошибка обработки
примечание

Для колбэков проверки адреса уникальность определяется комбинацией type и checkId, а не type и id, как для других операций.