PIX

Обзор

Введение

PIX — платёжный метод для проведения платежей с помощью банковских переводов в Бразилии. Для этого метода в платёжной платформе ecommpay поддерживаются оплаты и выплаты.

PIX — платёжный метод для проведения платежей с помощью банковских переводов в Бразилии.

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

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

Тип платёжного метода банковские платежи
Платёжные инструменты банковские счета
Регионы использования BR
Валюты платежей BRL
Конвертация валют на стороне ecommpay
Оплаты +
Повторяемые оплаты
Полные возвраты
Частичные возвраты
Выплаты +
Опротестования
Особенности
Организация и стоимость подключения по согласованию с курирующим менеджером ecommpay

Схема работы

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



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

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

Суммы, BRL ¹
минимум максимум
Оплаты 50 000,00
Выплаты
Прим.:
  1. В зависимости от сервиса PIX, общая сумма оплат, совершаемых пользователем, и выплат этому пользователю в течение месяца, может быть ограничена. При возникновении проблем из-за этих ограничений следует обращаться в службу технической поддержки ecommpay.

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

Проведение оплат с использованием метода PIX осуществляется с отображением платёжной инструкции, проведение выплат — с уведомлением пользователей через веб-сервис мерчанта.

Пользовательский сценарий оплаты через Payment Page (в базовом варианте с выбором пользователем метода и перенаправлением с итоговой страницы платёжной формы к веб-сервису) выглядит следующим образом.

Общие сценарии проведения оплат можно представить следующим образом.

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

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

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



Рис. 10. Проведение оплаты через Payment Page
  1. Пользователь на стороне веб-сервиса инициирует оплату.
  2. От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение оплаты через Payment Page.
  3. Запрос на проведение оплаты поступает в платёжную платформу.
  4. В платёжной платформе обеспечивается приём запроса с проверкой наличия обязательных параметров и корректной подписи.
  5. Осуществляется генерация Payment Page согласно настройкам проекта и параметрам вызова.
  6. Пользователю отображается сгенерированная платёжная форма.
  7. Пользователь выбирает платёжный метод PIX.
  8. Запрос на проведение оплаты с использованием сервиса PIX поступает в платёжную платформу.
  9. В платёжной платформе обеспечиваются обработка полученного запроса и его отправка в сервис PIX.
  10. На стороне PIX выполняется обработка запроса на оплату.
  11. От сервиса PIX к платёжной платформе передаются данные для отображения платёжной инструкции пользователю.
  12. Данные для отображения платёжной инструкции пользователю передаются к Payment Page.
  13. Пользователю отображается платёжная инструкция.
  14. Пользователь выполняет необходимые действия для оплаты согласно инструкции.
  15. На стороне сервиса PIX выполняется обработка оплаты.
  16. От сервиса PIX к платёжной платформе направляется уведомление о результате оплаты.
  17. От платёжной платформы к веб-сервису направляется оповещение о результате оплаты.
  18. От платёжной платформы к Payment Page направляется результат проведения оплаты.
  19. Результат оплаты отображается пользователю на Payment Page.

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

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

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

  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. Дополнительно рекомендуется указывать следующие параметры:
    • customer_first_name — имя пользователя;
    • customer_last_name — фамилия пользователя;
    • customer_email — адрес электронной почты пользователя;
    • identify_doc_number — номер CPF, состоит из 11 цифр.

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

  4. Для предварительного выбора метода PIX необходимо указывать код платёжного метода в параметре force_payment_methodpix.
  5. Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page. Информация обо всех доступных параметрах приведена в разделе Параметры вызова платёжной формы.Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page (подробнее).
  6. После определения всех параметров необходимо составить подпись (подробнее).

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

{
   "project_id": 120,
   "payment_id": "580",
   "payment_amount": 10000,
   "payment_currency": "BRL",
   "customer_id": "customer1",
   "customer_first_name": "John",
   "customer_last_name": "Johnson",
   "customer_email": "johnson@example.com",
   "identify_doc_number": "12345678901",
   "signature": "kUi2x9dKHAVNU0FYldOcZzUCwX6R\/ekpZhkIQg=="
}

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

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

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

Рис. 11. Пример данных из оповещения о проведении оплаты
{
        "project_id": 312,
        "payment": {
            "id": "9582",
            "type": "purchase",
            "status": "success",
            "date": "2021-11-03T08:11:24+0000",
            "method": "pix",
            "sum": {
                "amount": 10000,
                "currency": "BRL"
            },
            "description": ""
        },
        "customer": {
            "id": "customer_123"
        },
        "operation": {
            "id": 140,
            "type": "sale",
            "status": "success",
            "date": "2021-11-03T08:11:24+0000",
            "created_date": "2021-11-03T08:10:13+0000",
            "request_id": "008d93f549b505e10ff1",
            "sum_initial": {
                "amount": 10000,
                "currency": "BRL"
            },
            "sum_converted": {
                "amount": 10000,
                "currency": "BRL"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 12552,
                "payment_id": "1635927056181",
                "auth_code": ""
            }
        },
        "signature": "Fq1XOK0JUSmtkVuVkogZ8lJS6GHWWHi4s3pZQqWBZkoVmZQ=="
    }

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

Рис. 12. Пример данных из оповещения об отклонении оплаты
{
        "project_id": 312,
        "payment": {
            "id": "9583",
            "type": "purchase",
            "status": "decline",
            "date": "2021-11-03T08:16:19+0000",
            "method": "pix",
            "sum": {
                "amount": 10000,
                "currency": "BRL"
            },
            "description": ""
        },
        "customer": {
            "id": "customer_123"
        },
        "operation": {
            "id": 141,
            "type": "sale",
            "status": "decline",
            "date": "2021-11-03T08:16:19+0000",
            "created_date": "2021-11-03T08:15:43+0000",
            "request_id": "310df107ff9138b5e7c6ff8ff7585a025d",
            "sum_initial": {
                "amount": 10000,
                "currency": "BRL"
            },
            "sum_converted": {
                "amount": 10000,
                "currency": "BRL"
            },
            "code": "20000",
            "message": "General decline",
            "provider": {
                "id": 12345,
                "payment_id": "123456789",
                "auth_code": ""
            }
        },
        "signature": "euhyvIW9SLnjnRLPYmoPsH1yJVs+d1PzPyvPfX0ip3jqA=="
    }

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

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

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

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

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

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

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



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

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

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

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

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

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

{
    "general": {
        "project_id": 312,
        "payment_id": "9582",
        "signature": "3zjYFq8JuRey87Q4OyuWs1KaaWIHaNUPcN4sF6x4Um+K4SAyamNnFVg=="
    },
    "payment": {
        "amount": 10000,
        "currency": "BRL"
    }
    "customer": {
        "ip_address": "192.0.2.0",
        "id": "customer1",
        "first_name": "John",
        "last_name": "Doe",
        "email": "example@xmpl.com",
        "identify": {
            "doc_number": "12345678901"
        }
    }
}

Формат промежуточных оповещений для отображения платёжной инструкции

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

  • type — тип передаваемых данных (в значении всегда передаётся qr_data);
  • title — название передаваемых данных, которые необходимо отобразить пользователю (в значении всегда передаётся QR Code);
  • data — строка, на основании которой на стороне веб-сервиса должен быть создан QR-код (в соответствии со стандартом ISO/IEC 18004:2015).
Рис. 14. Пример массива display_data
"display_data": [
    {
        "type": "qr_data",
        "title": "QR code",
        "data": "00020101com.br359a71a-0cad-4cb2-a937-a3fa5319a5252070503***63042BBF"
    }
]

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

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

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

Рис. 15. Пример данных из оповещения о проведении оплаты
{
        "project_id": 312,
        "payment": {
            "id": "9582",
            "type": "purchase",
            "status": "success",
            "date": "2021-11-03T08:11:24+0000",
            "method": "pix",
            "sum": {
                "amount": 10000,
                "currency": "BRL"
            },
            "description": ""
        },
        "customer": {
            "id": "customer_123"
        },
        "operation": {
            "id": 140,
            "type": "sale",
            "status": "success",
            "date": "2021-11-03T08:11:24+0000",
            "created_date": "2021-11-03T08:10:13+0000",
            "request_id": "008d93f549b505e10ff1",
            "sum_initial": {
                "amount": 10000,
                "currency": "BRL"
            },
            "sum_converted": {
                "amount": 10000,
                "currency": "BRL"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 12552,
                "payment_id": "1635927056181",
                "auth_code": ""
            }
        },
        "signature": "Fq1XOK0JUSmtkVuVkogZ8lJS6GHWWHi4s3pZQqWBZkoVmZQ=="
    }

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

Рис. 16. Пример данных из оповещения об отклонении оплаты
{
        "project_id": 312,
        "payment": {
            "id": "9583",
            "type": "purchase",
            "status": "decline",
            "date": "2021-11-03T08:16:19+0000",
            "method": "pix",
            "sum": {
                "amount": 10000,
                "currency": "BRL"
            },
            "description": ""
        },
        "customer": {
            "id": "customer_123"
        },
        "operation": {
            "id": 141,
            "type": "sale",
            "status": "decline",
            "date": "2021-11-03T08:16:19+0000",
            "created_date": "2021-11-03T08:15:43+0000",
            "request_id": "310df107ff9138b5e7c6ff8ff7585a025d",
            "sum_initial": {
                "amount": 10000,
                "currency": "BRL"
            },
            "sum_converted": {
                "amount": 10000,
                "currency": "BRL"
            },
            "code": "20000",
            "message": "General decline",
            "provider": {
                "id": 12345,
                "payment_id": "123456789",
                "auth_code": ""
            }
        },
        "signature": "euhyvIW9SLnjnRLPYmoPsH1yJVs+d1PzPyvPfX0ip3jqA=="
    }

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

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

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

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

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



Рис. 17. Проведение выплаты через Gate. Описание шагов
  1. Пользователь на стороне веб-сервиса инициирует выплату через PIX.
  2. От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение выплаты через Gate.
  3. Запрос на проведение выплаты поступает в платёжную платформу.
  4. Выполняется начальная обработка запроса, в рамках которой обеспечивается проверка наличия обязательных параметров и корректной подписи.
  5. От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности, подробнее — в разделе Формат ответа.
  6. В платёжной платформе выполняются дальнейшая обработка запроса и его отправка в сервис PIX.
  7. На стороне сервиса PIX выполняется обработка платежа.
  8. От сервиса PIX к платёжной платформе направляется синхронный ответ с результатом.
  9. От платёжной платформы к веб-сервису направляется оповещение о результате.
  10. От веб-сервиса пользователю направляется результат выплаты.

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

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

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

  1. Для инициирования каждой выплаты должен использоваться POST-запрос к конечной точке /v2/payment/pix/payout.
  2. В каждом запросе должны использоваться следующие объекты и параметры:
    • general — объект, содержащий основные идентификационные сведения запроса:
      • project_id — идентификатор проекта, полученный от ecommpay при интеграции;
      • payment_id — идентификатор платежа, уникальный в рамках проекта;
      • signature — подпись запроса, составленная после указания всех целевых параметров (подробнее — в разделе Использование подписи к данным);
    • payment — сведения о платеже:
      • amount — сумма выплаты в дробных единицах валюты;
      • currency — код валюты платежа в формате ISO-4217 alpha-3;
    • customer — объект, содержащий сведения о пользователе:
      • ip_address — IP-адрес, актуальный для инициируемой выплаты;
      • first_name — имя пользователя;
      • last_name — фамилия пользователя;
      • email — адрес электронной почты пользователя;
      • day_of_birth — дата рождения пользователя в формате ДД-ММ-ГГГГ;
      • account_id — идентификатор pixkey, задаваемый пользователем в сервисе PIX; этим идентификатором может быть номер CPF или адрес электронной почты;
      • id — идентификатор, уникальный в рамках проекта;
      • identify — объект, содержащий сведения о документе, подтверждающем личность пользователя:
        • doc_number — номер CPF, состоит из 11 цифр.
  3. Дополнительно могут использоваться любые другие параметры из числа указанных в спецификации.

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

{
    "general": {
        "project_id": 312,
        "payment_id": "f8827",
        "signature": "3zjYFq8JuRey87Q4OyuWs1Kaa+K4SAyamNnFVg=="
    },
    "payment": {
        "amount": 10000,
        "currency": "BRL"
    }
    "customer": {
        "ip_address": "192.0.2.0",
        "first_name": "John",
        "last_name": "Doe",
        "email": "example@example.com",
        "day_of_birth": "22-11-2000",
        "account_id": "email@example.com",
        "id": "customer_123",
        "identify": {
            "doc_number": "12345678901"
        }
    }
}

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

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

В следующем примере в оповещении содержится информация о том, что в рамках проекта 312 проведена выплата в размере 100,00 BRL.

Рис. 18. Пример данных из оповещения о проведении выплаты
{
        "project_id": 312,
        "payment": {
            "id": "306081845",
            "type": "payout",
            "status": "success",
            "date": "2021-11-03T08:19:26+0000",
            "method": "pix",
            "sum": {
                "amount": 10000,
                "currency": "BRL"
            },
            "description": ""
        },
        "customer": {
            "id": "customer_123"
        },
        "operation": {
            "id": 142,
            "type": "payout",
            "status": "success",
            "date": "2021-11-03T08:19:26+0000",
            "created_date": "2021-11-03T08:18:46+0000",
            "request_id": "efe84ccebf77b57dd76f43970",
            "sum_initial": {
                "amount": 10000,
                "currency": "BRL"
            },
            "sum_converted": {
                "amount": 10000,
                "currency": "BRL"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 12345,
                "payment_id": "12345678909",
                "auth_code": ""
            }
        },
        "signature": "lW9TpyiTQBMVa5dRBGC4geg5wneA=="
    }

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

Рис. 19. Пример данных из оповещения об отклонении выплаты
{
        "project_id": 312,
        "payment": {
            "id": "306082355",
            "type": "payout",
            "status": "decline",
            "date": "2021-11-03T08:24:33+0000",
            "method": "pix",
            "sum": {
                "amount": 10000,
                "currency": "BRL"
            },
            "description": ""
        },
        "customer": {
            "id": "customer_123"
        },
        "operation": {
            "id": 143,
            "type": "payout",
            "status": "decline",
            "date": "2021-11-03T08:24:33+0000",
            "created_date": "2021-11-03T08:23:56+0000",
            "request_id": "a767d408f85ee594048bbe",
            "sum_initial": {
                "amount": 10000,
                "currency": "BRL"
            },
            "sum_converted": {
                "amount": 10000,
                "currency": "BRL"
            },
            "code": "20000",
            "message": "General decline",
            "provider": {
                "id": 12345,
                "payment_id": "12345678909877",
                "auth_code": ""
            }
        },
        "signature": "J55CcQzHzjl2hvtoPvwfdKHLfUCmX52swTo/0ZljkMsxw=="
    }

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

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

Выплаты через Dashboard

При использовании интерфейса Dashboard можно проводить одиночные и массовые выплаты методом PIX с единичной и пакетной отправкой запросов, называемые соответственно одиночными и массовыми.

  • Для проведения одиночной выплаты необходимо открыть форму выплаты, задать все необходимые параметры (включая метод), отправить запрос и убедиться в проведении выплаты.
  • Для проведения массовой выплаты необходимо подготовить и загрузить файл с информацией обо всех целевых выплатах, отправить пакет запросов и убедиться в проведении выплат.

    При этом должен использоваться файл формата CSV, структура которого соответствует требованиям, представленным в разделе Сведения о массовых платежах, а параметры выплат должны соответствовать требованиям, представленным в разделе Выплаты через Gate этой статьи (за исключением пункта о подписи).

Более подробная информация о проведении выплат через Dashboard представлена в отдельной статье.

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

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

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

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