Oxxo

Обзор

Введение

Oxxo — метод, позволяющий проводить платежи в мексиканских песо и долларах США с использованием ваучеров в Мексике. Для этого метода в платёжной платформе ecommpay поддерживаются оплаты.

В этой статье представлена информация о работе с методом Oxxo: обзорный раздел с общими сведениями и последующие разделы с информацией о действиях, необходимых со стороны мерчанта для решения разных задач.

Характеристика

Тип платёжного метода платежи через точки оплаты
Платёжные инструменты ваучеры
Регионы использования MX
Валюты платежей MXN, USD
Конвертация валют
Разовые оплаты +
Повторяемые оплаты
Полные возвраты
Частичные возвраты
Выплаты
Опротестования
Особенности
  • в зависимости от провайдера, обрабатывающего платёж, срок действия ваучера для оплаты может быть:
    • 10 дней, но пользователь может совершить оплату в течение 30 дней, обратившись в банк
    • 3 дня
  • в зависимости от провайдера платежи могут быть целочисленными, за более подробной информацией следует обращаться к курирующему менеджеру ecommpay
Организация и стоимость подключения по согласованию с курирующим менеджером ecommpay

Схема работы

В проведении отдельного платежа с использованием метода Oxxo задействуются веб-сервис мерчанта, один из интерфейсов и платёжная платформа ecommpay, а также технические средства сервиса Oxxo.



Основные операции

Для проведения платежей и выполнения операций с использованием метода Oxxo могут применяться различные интерфейсы платёжной платформы. Так, оплаты могут проводиться через Payment Page, Gate и Dashboard (с применением платёжных ссылок).

Сценарии использования

Проведение оплат с использованием метода Oxxo осуществляется с перенаправлением пользователей к сервису Oxxo.

Оплаты через Payment Page

Общая информация

Для проведения оплаты через Payment Page с использованием метода Oxxo со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ecommpay и принять оповещение о результате. Полная схема проведения оплаты выглядит следующим образом.



Рис.: Проведение оплаты через Payment Page. Описание шагов

  1. Пользователь на стороне веб-сервиса инициирует оплату.
  2. От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение оплаты через Payment Page.
  3. Запрос на проведение оплаты поступает в платёжную платформу.
  4. В платёжной платформе выполняется приём запроса, с проверкой наличия обязательных параметров и корректной подписи.
  5. Осуществляется подготовка Payment Page согласно параметрам проекта и вызова.
  6. Пользователю отображается платёжная форма.
  7. Пользователь выбирает для оплаты метод Oxxo.
  8. Пользователю отображается платёжная форма, соответствующая запросу.
  9. Пользователь вводит данные для оплаты.
  10. В платёжную платформу передаётся запрос на проведение оплаты с использованием метода Oxxo.
  11. В платёжной платформе выполняются обработка полученного запроса и его отправка в сервис Oxxo.
  12. В сервисе Oxxo выполняется обработка запроса на оплату.
  13. От сервиса Oxxo к платёжной платформе передаются данные для перенаправления пользователя к сервису Oxxo.
  14. Данные для перенаправления пользователя передаются к Payment Page.
  15. Пользователю на Payment Page отображается ссылка для перенаправления в сервис Oxxo.
  16. Пользователь перенаправляется к сервису Oxxo.
  17. Пользователю отображается сгенерированный ваучер со штрихкодом для оплаты в терминале. Статус платежа awaiting redirect result остается до тех пор, пока пользователь не завершит оплату. В зависимости от провайдера, обрабатывающего платёж ваучер может быть действителен в течение 10 (но пользователь может совершить оплату в течение 30 дней, обратившись в банк) или 3 дней с момента получения.
  18. Пользователь завершает оплату в одном из доступных терминалов оплаты, предъявляя полученный ваучер.
  19. В сервисе терминалов оплаты происходит обработка платежа.
  20. От сервиса терминалов к сервису Oxxo направляется информация о результате оплаты.
  21. От сервиса Oxxo к платёжной платформе направляется информация о результате оплаты.
  22. От платёжной платформы к веб-сервису направляется оповещение о результате оплаты.
  23. На стороне веб-сервиса обеспечивается информирование пользователя о результате оплаты.

Информация о форматах запросов и оповещений, используемых для проведения оплат методом Oxxo через Payment Page, приведена далее в этом разделе; общая информация о работе с Payment Page API — в отдельной статье Организация взаимодействия.

Формат запросов

При формировании запросов на открытие платёжной формы с применением метода Oxxo необходимо учитывать следующее:

  1. Должен использоваться базовый минимум параметров, обязательный для любого платежа:
    • project_id — идентификатор проекта, полученный от ecommpay при интеграции;
    • payment_id — идентификатор платежа, уникальный в рамках проекта;
    • payment_currency — код валюты платежа в формате ISO-4217 alpha-3;
    • payment_amount — сумма платежа в дробных единицах валюты;
    • customer_id — идентификатор пользователя в рамках проекта.
  2. Должен использоваться базовый минимум параметров: project_id, payment_id, payment_currency, payment_amount, customer_id.
  3. Валютой платежа может быть только MXN или USD.
  4. Дополнительно должны передаваться следующие данные пользователя:
    • customer_first_name и customer_last_name — имя и фамилия пользователя;
    • customer_email — адрес электронной почты пользователя;
    • identify_doc_number — номер документа пользователя, подтверждающего личность, который должен содержать от 10 до 18 цифр.
  5. Валютой платежа может быть только MXN или USD.
  6. Для предварительного выбора метода Oxxo необходимо указывать код этого метода в параметре force_payment_methodoxxo.
  7. Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page (подробнее).
  8. После указания всех целевых параметров необходимо составлять подпись (подробнее).

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

{
   "project_id": 120,
   "payment_id": "580",
   "payment_amount": 10000,
   "payment_currency": "MXN",
   "customer_id": "customer1",
   "customer_first_name": "Guido",
   "customer_last_name": "Marques",
   "customer_email": "customer@example.com",
   "identify_doc_number": "12345678901",
   "signature": "kUi2x9dKHAVNU0FYldOcZzUCwX6R\/ekpZhkIQg=="
}

Рис.: Пример достаточного набора данных для запроса на оплату

{
   "project_id": 120,
   "payment_id": "580",
   "payment_amount": 10000,
   "payment_currency": "MXN",
   "customer_id": "customer1",
   "customer_first_name": "Guido",
   "customer_last_name": "Marques",
   "customer_email": "customer@example.com",
   "identify_doc_number": "12345678901",
   "signature": "kUi2x9dKHAVNU0FYldOcZzUCwX6R\/ekpZhkIQg=="
}

Формат оповещений

Для оповещений о результатах оплат с применением метода Oxxo используется типовой формат, описание которого представлено в разделе Оповещения.

В следующем примере оповещение свидетельствует о том, что в рамках проекта 842 была проведена оплата в размере 100,00 USD.

Рис.: Пример данных из оповещения о проведении оплаты

{
        "project_id": 842,
        "payment": {
            "id": "EP8a3e-3e96",
            "type": "purchase",
            "status": "success",
            "date": "2019-06-03T12:09:38+0000",
            "method": "oxxo",
            "sum": {
                "amount": 10000,
                "currency": "USD"
            },
            "description": ""
        },
        "operation": {
            "id": 1001313740,
            "type": "sale",
            "status": "success",
            "date": "2019-06-03T12:09:38+0000",
            "created_date": "2019-06-03T12:08:52+0000",
            "request_id": "46b8b94eabf",
            "sum_initial": {
                "amount": 10000,
                "currency": "USD"
            },
            "sum_converted": {
                "amount": 10000,
                "currency": "USD"
            },
            "provider": {
                "id": 1414,
                "payment_id": "9d7e3e16b6a5",
                "auth_code": ""
            },
            "code": "0",
            "message": "Success"
        },
        "signature": "hTnUho5lgWxu+wgKzmhLdjawVQGtyFSH7OBlJ8bQ=="
    }

В следующем примере оповещение свидетельствует об отклонённой оплате.

Рис.: Пример данных из оповещения об отклонении оплаты

 {
        "project_id": 842,
        "payment": {
            "id": "EP2ea6-f489",
            "type": "purchase",
            "status": "decline",
            "date": "2019-06-03T12:14:18+0000",
            "method": "oxxo",
            "sum": {
                "amount": 1000,
                "currency": "EUR"
            },
            "description": ""
        },
        "operation": {
            "id": 2001313740,
            "type": "sale",
            "status": "decline",
            "date": "2019-06-03T12:14:18+0000",
            "created_date": "2019-06-03T12:13:38+0000",
            "request_id": "d5978bf20bae024",
            "sum_initial": {
                "amount": 1000,
                "currency": "EUR"
            },
            "sum_converted": {
                "amount": 1000,
                "currency": "EUR"
            },
            "provider": {
                "id": 1414,
                "payment_id": "D-30006-7729dab9-3782-4c0a-8192-840622f63f08",
                "auth_code": ""
            },
            "code": "20000",
            "message": "General decline"
        },
        "signature": "eL+OigWVAgeT85JjOOUIkg5PyKnp47KzdImN3tAy0kA=="
    }

Дополнительные материалы

Для организации работы с оплатами через Payment Page также могут быть полезны следующие материалы:

Оплаты через Gate

Общая информация

Для проведения оплаты через Gate с использованием метода Oxxo со стороны веб-сервиса необходимо:

  1. Отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ecommpay.
  2. Принять промежуточное оповещение от платёжной платформы и осуществить перенаправление пользователя к сервису Oxxo.
  3. Принять итоговое оповещение от платёжной платформы.

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



Рис.: Проведение оплаты через Gate. Описание шагов

  1. Пользователь на стороне веб-сервиса инициирует оплату с использованием метода Oxxo.
  2. От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение оплаты через Gate.
  3. Запрос на проведение оплаты поступает в платёжную платформу ecommpay.
  4. В платёжной платформе выполняется приём запроса с проверкой наличия обязательных параметров и корректной подписи.
  5. От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности (подробнее).
  6. В платёжной платформе выполняются дальнейшая обработка запроса (с проверкой согласованности параметров) и его оправка в сервис Oxxo.
  7. В сервисе Oxxo выполняется обработка запроса на оплату.
  8. От сервиса Oxxo к платёжной платформе передаются данные для перенаправления пользователя к сервису Oxxo.
  9. От платёжной платформы к веб-сервису направляется оповещение с данными для перенаправления пользователя к сервису Oxxo.
  10. Пользователю отображается ссылка для перенаправления в сервис Oxxo.
  11. Пользователь перенаправляется в сервис Oxxo.
  12. Пользователю отображается сгенерированный ваучер со штрихкодом для оплаты в терминале. Статус платежа awaiting redirect result остается до тех пор, пока пользователь не завершит оплату. В зависимости от провайдера, обрабатывающего платёж ваучер может быть действителен в течение 10 (но пользователь может совершить оплату в течение 30 дней, обратившись в банк) или 3 дней с момента получения.
  13. Пользователь завершает оплату в одном из доступных терминалов оплаты, предъявляя полученный ваучер.
  14. В сервисе терминалов оплаты выполняется обработка платежа.
  15. От сервиса терминалов оплаты к сервису Oxxo направляется информация о результате оплаты.
  16. От сервиса Oxxo к платёжной платформе направляется информация о результате оплаты.
  17. От платёжной платформы к веб-сервису направляется оповещение о результате оплаты.
  18. На стороне веб-сервиса обеспечивается информирование пользователя о результате оплаты.

Информация о форматах запросов и оповещений, используемых для проведения оплат методом Oxxo через Gate, приведена далее в этом разделе; общая информация о работе с Gate API — в отдельной статье Организация взаимодействия.

Формат запросов

При работе с запросами на оплаты с применением метода Oxxo необходимо учитывать следующее:

  1. Для инициирования каждой оплаты должен использоваться отдельный POST-запрос к конечной точке /v2/payment/voucher/oxxo/sale. Эта точка относится к группе /v2/payment/voucher/{payment_method}/sale.
  2. В каждом запросе должны использоваться следующие объекты и параметры:
    • general — объект, содержащий основные идентификационные сведения запроса:
      • project_id — идентификатор проекта, полученный от ecommpay при интеграции;,
      • payment_id — идентификатор платежа, уникальный в рамках проекта;,
      • signature — подпись запроса, составленная после указания всех целевых параметров (подробнее — в разделе Работа с подписью к данным); (подробнее),
    • payment — объект, содержащий сведения о платеже:
      • amount — сумма платежа в дробных единицах валюты;,
      • currency — код валюты платежа в формате ISO-4217 alpha-3;,
    • customer — сведения о пользователе:
      • id — идентификатор пользователя, уникальный в рамках проекта;,
      • ip_address — IP-адрес пользователя, актуальный для инициируемого платежа;,
      • first_name — имя пользователя;,
      • last_name — фамилия пользователя;,
      • email — адрес электронной почты пользователя;,
      • identify — объект, содержащий сведения о документе, подтверждающем личность:
        • doc_number — номер документа, подтверждающего личность, который должен содержать от 10 до 18 цифр.
  3. Валютой платежа может быть только MXN или USD.
  4. Дополнительно могут использоваться любые другие параметры из числа указанных в спецификации.

Таким образом, корректный запрос на оплату с применением метода Oxxo должен содержать идентификатор проекта, базовые сведения о платеже (идентификатор, сумму и код валюты), информацию о пользователе, а также подпись.

{
    "general": {
        "project_id": 580,
        "payment_id": "38202000002316",
        "signature": "h4ZxUifBNaLuvlYXyvBuqGOFdK0B9CjMCc2DbkDrk3qhLg=="
    },
    "payment": {
        "amount": 10000,
        "currency": "USD",
        "description": "38202000002316"
    },
    "customer": {
        "id": "589256",
        "email": "Paul@mail.com",
        "first_name": "Paul",
        "last_name": "Marques",
        "identify": {
            "doc_number": "84887177100"
        },
        "ip_address": "192.0.2.0"
    }
}

Рис.: Пример достаточного набора данных для запроса на оплату

{
    "general": {
        "project_id": 580,
        "payment_id": "38202000002316",
        "signature": "h4ZxUifBNaLuvlYXyvBuqGOFdK0B9CjMCc2DbkDrk3qhLg=="
    },
    "payment": {
        "amount": 10000,
        "currency": "USD",
        "description": "38202000002316"
    },
    "customer": {
        "id": "589256",
        "email": "Paul@mail.com",
        "first_name": "Paul",
        "last_name": "Marques",
        "identify": {
            "doc_number": "84887177100"
        },
        "ip_address": "192.0.2.0"
    }
}

Формат промежуточных оповещений для перенаправления пользователей

Для перенаправления пользователей от веб-сервиса мерчанта к сервису Oxxo при проведении каждого платежа с использованием метода Oxxo необходимо принять промежуточное оповещение от платёжной платформы и использовать информацию из него, включённую в объект redirect_data. Формат таких оповещений является типовым (подробнее), при этом в состав объекта redirect_data включаются следующие объекты и параметры:

  • body — объект с данными для отправки в теле запроса;
  • method — параметр с указанием HTTP-метода отправки запроса (GET или POST);
  • url — параметр со ссылкой для перенаправления.

Рис.: Пример объекта redirect_data

  "redirect_data": {
    "body": {},
    "method": "GET",
    "url": "https://www.example.com/pay"
  }

Формат итоговых оповещений

Для оповещений о результатах оплат с применением метода Oxxo используется типовой формат, описание которого представлено в разделе Оповещения.

В следующем примере оповещение свидетельствует о том, что в рамках проекта 842 была проведена оплата в размере 100,00 USD.

Рис.: Пример данных из оповещения о проведении оплаты

{
        "project_id": 842,
        "payment": {
            "id": "EP8a3e-3e96",
            "type": "purchase",
            "status": "success",
            "date": "2019-06-03T12:09:38+0000",
            "method": "oxxo",
            "sum": {
                "amount": 10000,
                "currency": "USD"
            },
            "description": ""
        },
        "operation": {
            "id": 1001313740,
            "type": "sale",
            "status": "success",
            "date": "2019-06-03T12:09:38+0000",
            "created_date": "2019-06-03T12:08:52+0000",
            "request_id": "46b8b94eabf",
            "sum_initial": {
                "amount": 10000,
                "currency": "USD"
            },
            "sum_converted": {
                "amount": 10000,
                "currency": "USD"
            },
            "provider": {
                "id": 1414,
                "payment_id": "9d7e3e16b6a5",
                "auth_code": ""
            },
            "code": "0",
            "message": "Success"
        },
        "signature": "hTnUho5lgWxu+wgKzmhLdjawVTf53e5d8PwovSQGtyFSH7OBlJ8bQ=="
    }

В следующем примере оповещение свидетельствует об отклонённой оплате.

Рис.: Пример данных из оповещения об отклонении оплаты

 {
        "project_id": 842,
        "payment": {
            "id": "EP2ea6-f489",
            "type": "purchase",
            "status": "decline",
            "date": "2019-06-03T12:14:18+0000",
            "method": "oxxo",
            "sum": {
                "amount": 1000,
                "currency": "EUR"
            },
            "description": ""
        },
        "operation": {
            "id": 2001313740,
            "type": "sale",
            "status": "decline",
            "date": "2019-06-03T12:14:18+0000",
            "created_date": "2019-06-03T12:13:38+0000",
            "request_id": "d5978bf20bae024",
            "sum_initial": {
                "amount": 1000,
                "currency": "EUR"
            },
            "sum_converted": {
                "amount": 1000,
                "currency": "EUR"
            },
            "provider": {
                "id": 1414,
                "payment_id": "D-30006-7729dab9-3782-4c0a-8192-840622f63f08",
                "auth_code": ""
            },
            "code": "20000",
            "message": "General decline"
        },
        "signature": "eL+OigWVAgeT85JjOOUIlKYy+MkG9SCynp47KzdImN3tAy0kA=="
    }

Дополнительные материалы

Для организации работы с оплатами через Gate также могут быть полезны следующие материалы:

Анализ результатов проведения платежей

Для анализа информации о платежах и операциях, как в отдельности по методу Oxxo, так и в совокупности с другими методами, можно использовать:

  • инструментарий интерфейса Dashboard, с различными реестрами и аналитическими панелями;,
  • отчёты в формате CSV, выгружаемые (как разово, так и периодически) через раздел Отчёты интерфейса Dashboard;,
  • данные в формате JSON, получаемые по программным запросам через интерфейс Data API.

С вопросами по анализу информации можно обращаться к разделам документации (Dashboard и Использование Data API) и специалистам ecommpay.