# Использование токенов {#ru_Gate_Token .concept} статья о возможности сохранять и использовать при работе через Gate платёжные данные пользователей с применением стандартизированных локальных токенов **Токен** \(**token**\) — уникальная, случайная последовательность из 64 символов, ассоциированная в Gate с определенной банковской картой и пользователем в подключенном проекте. Токен не содержит в себе конфиденциальной информации и может храниться в вашей системе, не вызывая угрозы нарушения стандартов безопасности по хранению данных по банковским картам. Через Gate вы можете создавать токены автоматически или по запросу и производить оплаты и выплаты по имеющимся токенам. ## Статусы токенов {#section_txw_jp2_zbb .section} Статус токена определяет возможность его использования для проведения оплат и выплат. |Статус|Описание| |------|--------| |active|Действительный токен, по которому могут проводиться оплаты и выплаты| |revoke|Токен был отозван, проведение операций по токену невозможно| |expiry|Срок действия токена истек, проведение операций по токену невозможно| ## Автоматическая генерация токена {#section_jrt_kzd_lbb .section} *Автоматическая генерация* токена происходит при проведении первой успешной оплаты или выплаты по банковской карте, а также при успешном холдировании средств. Сгенерированный токен \(token\) и время его создания \(token\_created\_at\) возвращаются в оповещении о проведении платежа. Дополнительные сведения об оповещении см. в разделе [Работа с оповещениями](ru_platform_callbacks.md#). **Прим.:** Для включения автоматической генерации токенов свяжитесь со службой технической поддержки [support@ecommpay.com](mailto:support@ecommpay.com). ## Генерация токена по запросу {#section_emy_sg2_lbb .section} Другим способом генерации токена является отправка запроса на генерацию токена. В запросе передаются данные, необходимые для генерации токена. Сгенерированный токен и время его создания возвращаются в оповещении о генерации токена. ## Создание запроса на генерацию токена {#section_vft_rzd_lbb .section} **Прим.:** Отправьте запрос [/v2/customer/card/tokenize](https://api-developers.ecommpay.com/api-specification/token-operations/post-v2-customer-card-tokenize); метод отправки запроса — POST. В запросе укажите идентификатор проекта, данные пользователя и данные банковской карты пользователя. В оповещении вы получите токен банковской карты и время его создания. Подробнее см. в разделе [Работа с оповещениями](ru_platform_callbacks.md#). ```language-javascript { "customer": { "id": "1707", "ip_address": "1.87.128.111", "project_id": 11, "signature": "LLmhbDKdNhNLT+Qkr2SzbLbFYNxC9sZLnQKkrTFYNN06NMPmZS/BfWGucWQVZ2WM3v5N709w==" }, "card": { "pan": "4314220000000056", "year": 2020, "month": 5, "card_holder": "PAUL SMITH" } } ``` ## Оплата по токену {#section_tz1_wrs_5bb .section} Gate позволяет пользователям осуществлять быстрые платежи с банковской карты, используя предварительно сгенерированный токен. При проведении оплаты по банковской карте, для которой уже существует токен, новый токен не генерируется. Если в этом случае была указана дата окончания срока действия карты, отличная от указанной при генерации токена, то токен не генерируется заново, срок действия токена обновляется в соответствии с указанной датой. Дополнительные сведения об оплатах с использованием токена см. в [Разовые оплаты](ru_Gate_purchase.md). ## Выплата по токену {#section_zyv_mc2_lbb .section} Gate позволяет осуществлять выплату средств на банковскую карту пользователя, используя предварительно сгенерированный токен. Дополнительные сведения о выплатах с использованием токена см. в [Выплаты](ru_Gate_payout.md). ## Получение данных карты по токену {#section_wzh_lqb_yfb .section} В случае необходимости получения данных банковской карты и информации о платежном инструменте, к которому привязана данная карта, вы можете отправить запрос в Gate. **Прим.:** Отправьте запрос [/v2/customer/card/bytoken](https://api-developers.ecommpay.com/api-specification/token-operations/post-v2-customer-card-bytoken); метод отправки запроса — POST. В запросе укажите идентификатор проекта, пользователя и токен. В оповещении вы получите данные банковской карты в маскированном виде и другую информацию о данном платежном инструменте пользователя. ```language-javascript { "customer": { "project_id": 12, "id":"test_customer", "signature":"2tlMuYxLW9Yu6RETr8pdCfmi0UPE8euD+BQjXWH6naCA9Ts6o4EVPjLyfbOQ+9ajAteg5lPk96Q==" }, "token":"959c664ad64b8caa54bb7836ddc737fd1a3e6c7045679d71d89caff6c242a039" } ``` ``` { "account": { "id": 2932, "number": "431422******0056", "type": "card", "additional": { "country": "GB", "phone": "4314220000000056", "email": "john@gmail.com", "card": { "expiry": "01/20", "holder": "JOHN JOHNSON", "type": "visa" } }, "recurring_enable": false }, "token": "959c664ad64b8caa54bb7836ddc777fd1a3e6c704b59bd71d89caff6c242a039" }, "signature": "62kPxuCGqN4KDrxqqsuWnv0LOjdvUydWCxDmNPeq+AVW7/5UtLlmVL+SIyfbxot/Nf+47DEsAuW76DIgBg==" } ``` ## Проверка карты по токену {#section_qy3_fpt_wmb .section} Gate позволяет осуществлять проверку действительности карты пользователя, используя предварительно сгенерированный токен. Подробная информация о проверке с использованием токена представлена в разделе [Проверка платёжных инструментов](ru_gate_account_verification.md). ## Деактивация токена {#section_ozm_m1z_wbb .section} Токен может быть деактивирован в Gate в одном из следующих случаев: вы деактивируете токен или у банковской карты заканчивается срок действия. Вы можете, при необходимости, деактивировать токен из Gate, отправив запрос на деактивацию токена. Gate деактивирует токен. ## Создание запроса на деактивацию токена {#section_t5g_4ym_jbb .section} **Прим.:** Отправьте запрос [/v2/customer/card/token/revoke](https://api-developers.ecommpay.com/api-specification/token-operations/post-v2-customer-card-token-revoke); метод отправки запроса — POST. В запросе укажите данные пользователя в вашей системе и токен, который необходимо деактивировать. После окончания обработки запроса вам придет оповещение с результатом деактивирования токена, включающий в том числе следующие параметры: project\_id, token, status, и token\_created\_at. ## Оповещение о создании или отключении токена {#section_rby_tt3_1cb .section} После выполнения запроса о создании или удалении токена, отправленного в конечную точку [/v2/customer/card/tokenize](https://api-developers.ecommpay.com/api-specification/token-operations/post-v2-customer-card-tokenize), платежная платформа возвращает оповещение с информацией о результате выполнения запроса. В следующей таблице приведен набор параметров, который содержится в таком оповещении. |Параметр|Описание| | |--------|--------|--| |general object, required |Объект с общими данными исходного запроса|1| |project\_id string, required |Уникальный идентификатор проекта|1-11| |customer\_id string, optional |Уникальный идентификатор пользователя в проекте|1-21| |signature string, required |Подпись оповещения|1-31| |request object, required |Объект с данными исходного запроса|2| |id integer, required |Уникальный идентификатор запроса|2-12| |action string, optional |Тип запроса. Возможны следующие варианты:- `tokenize` — запрос на создание токена; - `token_revoke` — запрос на отключение токена - **параметр отсутствует**— это означает, что токен деактивирован по истечению срока своего действия. Оповещение с отсутствующим параметром action инициируется в платежной платформе не по запросу, а автоматически, по истечении срока действия токена. |2-22| |status string, required |Статус запроса. Возможны следующие варианты:- `success` — запрос успешно выполнен; - `error` — во время выполнения запроса возникли ошибки. В этом случае в оповещение добавляется массив errors с подробной информацией об ошибках. |2-32| |errors array, optional |Массив объектов с информацией об ошибках. Присутствует в оповещении, только если в процессе обработки запроса возникли ошибки|2-42| |ErrorItem object, required |Объект с информацией об одной отдельно взятой ошибке|2-4-12-4| |code string, optional |Код ошибки|2-4-1-12-4-1| |message string, optional |Сообщение, уточняющее причину ошибки|2-4-1-22-4-1| |field string, optional |Параметр исходного запроса, в котором допущена ошибка, если этот параметр удалось локализовать |2-4-1-32-4-1| |token string, optional |Токен банковской карты пользователя. Токен генерируется автоматически при успешной оплате, если подключена соответствующая функциональность|3| |token\_created\_at string, optional |Дата и время генерации токена. Токен генерируется автоматически при успешной оплате, если подключена соответствующая функциональность. Пример: `2017-07-21T03:31:24+0000` |4| |token\_status string, optional |Статус токена. Пример: `active` |5| ```language-xml { "general":{ "project_id":12, "customer_id":cust_123, "signature":"\/gmTHcy5wvrFD4ISuWEiV8+nOa3aqnLnyJ\/AupOYkl9S5eLJZ", "request": { "id": "3c7f53fdbb5b8c96f9707457d75f", "action": "tokenize", "status": "success" }, "token":"2f0e75befacca30623354f9ffb0f44a80bee52982c39727b85039ef6f64309a1", "token_created_at":"2017-11-28 13:30:57", "token_status":"active" } ``` **На уровень выше:**[Дополнительные возможности](ru_Gate_Additional_capabilities.md)