AstroPay

Обзор

Введение

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

Также при работе с методом AstroPay в платёжной форме Payment Page можно подключать отображение кнопки оплаты через встроенный в сервис AstroPay способ оплаты PIX (доступный в Бразилии). С вопросами о такой возможности следует обращаться к курирующему менеджеру ecommpay.

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

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

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

Схема работы

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

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

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

При работе с методом AstroPay, независимо от используемых интерфейсов, актуальны следующие свойства и ограничения.

Время ¹
базовое предельное
Оплаты 2 минуты 25 часов
Выплаты в течение минуты 25 часов
Прим.:
  1. Базовое и предельное время определяются следующим образом:
    • Базовое время — среднее расчётное время проведения платежа от момента его инициирования на стороне платёжной платформы до момента отправки инициатору оповещения о результате. Это время определяется для условий штатной работы всех технических средств и каналов связи, а также типичных действий со стороны пользователя (там, где они необходимы). Базовое время рекомендуется использовать для реагирования на отсутствие оповещений о результате платежа и выполнения опроса состояния платежа (подробнее).
    • Предельное время — максимально допустимое время проведения платежа от момента его инициирования на стороне платёжной платформы до момента отправки инициатору оповещения о результате. Если платёж не был проведён или отклонён за это время, он автоматически переводится в статус decline. Для индивидуальной настройки предельного времени следует обращаться к специалистам технической поддержки ecommpay.

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

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

Сценарии выполнения операций через основные интерфейсы платёжной платформы соответствуют представленным на схемах. При использовании дополнительных возможностей (таких как платёжные ссылки) сценарии выполнения операций методом AstroPay соответствуют специфике этих возможностей.

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

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

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

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

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

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

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

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

  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. Дополнительно необходимо указывать код страны пользователя в соответствии с ISO 3166-1 alpha-2 в параметре customer_country.
  4. Для предварительного выбора метода AstroPay необходимо указывать код этого метода в параметре force_payment_methodastropay.
  5. Для предварительного выбора метода AstroPay со способом оплаты PIX необходимо указывать код astropay в параметре force_payment_method и дополнительно указать параметр payment_methods_options со значением "{\"submethod_code\": \"IX\}":
    "payment_methods_options": "{\"submethod_code\": \"IX\}"

    При этом в параметре customer_country должно указываться значение BR (иначе платёж отклоняется).

  6. Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page (подробнее).
  7. После указания всех целевых параметров необходимо составлять подпись (подробнее).

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

{
   "project_id": 120,
   "payment_id": "580",
   "payment_amount": 1000,
   "payment_currency": "BRL",
   "customer_id": "customer1",
   "customer_country": "BR",
   "signature": "kUi2x9dKHAVNU0FYldOcZzUCwX6R\/ekpZhkIQg=="
}

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

{
   "project_id": 120,
   "payment_id": "580",
   "payment_amount": 1000,
   "payment_currency": "BRL",
   "customer_id": "customer1",
   "customer_country": "BR",
   "signature": "kUi2x9dKHAVNU0FYldOcZzUCwX6R\/ekpZhkIQg=="
}

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

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

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

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

{
        "provider_extra_fields": {
            "account_id": "ETlGnD42Pdhx"
        },
        "customer": {
            "id": "test-user123"
        },
        "project_id": 8181,
        "payment": {
            "id": "EPaffa-8a12",
            "type": "purchase",
            "status": "success",
            "date": "2023-06-23T08:14:20+0000",
            "method": "astropay",
            "sum": {
                "amount": 200,
                "currency": "USD"
            },
            "description": ""
        },
        "operation": {
            "id": 308,
            "type": "sale",
            "status": "success",
            "date": "2023-06-23T08:14:20+0000",
            "created_date": "2023-06-23T08:13:09+0000",
            "request_id": "ae236fbaaf62b18f66b70461f5d7-00000001",
            "sum_initial": {
                "amount": 200,
                "currency": "USD"
            },
            "sum_converted": {
                "amount": 200,
                "currency": "USD"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 20852,
                "payment_id": "NWsZT1GCMPeUSs5IclfIyoWgFs3UtCp7ydav9yb",
                "auth_code": ""
            }
        },
        "signature": "SxLFUcKLROs+lOPKKi4cDfnYjwMHSDgqeD+Jt1LYOg=="
    }

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

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

{
        "customer": {
            "id": "test-user123"
        },
        "project_id": 8181,
        "payment": {
            "id": "EP7952-f1b2",
            "type": "purchase",
            "status": "decline",
            "date": "2023-06-23T08:18:54+0000",
            "method": "astropay",
            "sum": {
                "amount": 200,
                "currency": "USD"
            },
            "description": ""
        },
        "operation": {
            "id": 309,
            "type": "sale",
            "status": "decline",
            "date": "2023-06-23T08:18:54+0000",
            "created_date": "2023-06-23T08:18:43+0000",
            "request_id": "520e094cf38510184b1800da4aecd-00000001",
            "sum_initial": {
                "amount": 200,
                "currency": "USD"
            },
            "sum_converted": {
                "amount": 200,
                "currency": "USD"
            },
            "code": "20000",
            "message": "General decline",
            "provider": {
                "id": 20852,
                "payment_id": "",
                "auth_code": ""
            }
        },
        "signature": "G57/QXMRTqt7TiqEcX5YXliTwqTplA9MIut6101ZNkA=="
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

{
  "general": {
    "project_id": 210,
    "payment_id": "test_payment",
    "signature": "PJkV8ej\/UG0Di8hTng6JvipTv+AWoXW\/9MTO8yJA=="
  },
  "payment": {
    "amount": 1000,
    "currency": "BRL"
  },
  "customer": {
    "id": "customer123",
    "ip_address": "192.0.2.0",
    "country": "BR"
  }
}

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

{
  "general": {
    "project_id": 210,
    "payment_id": "test_payment",
    "signature": "PJkV8ej\/UG0Di8hTng6JvipTv+AWoXW\/9MTO8yJA=="
  },
  "payment": {
    "amount": 1000,
    "currency": "BRL"
  },
  "customer": {
    "id": "customer123",
    "ip_address": "192.0.2.0",
    "country": "BR"
  }
}

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

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

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

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

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

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

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

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

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

{
        "provider_extra_fields": {
            "account_id": "ETlGnD42Pdhx"
        },
        "customer": {
            "id": "test-user123"
        },
        "project_id": 8181,
        "payment": {
            "id": "EPaffa-8a12",
            "type": "purchase",
            "status": "success",
            "date": "2023-06-23T08:14:20+0000",
            "method": "astropay",
            "sum": {
                "amount": 200,
                "currency": "USD"
            },
            "description": ""
        },
        "operation": {
            "id": 308,
            "type": "sale",
            "status": "success",
            "date": "2023-06-23T08:14:20+0000",
            "created_date": "2023-06-23T08:13:09+0000",
            "request_id": "ae236fbaaf62b18f66b70461f5d7-00000001",
            "sum_initial": {
                "amount": 200,
                "currency": "USD"
            },
            "sum_converted": {
                "amount": 200,
                "currency": "USD"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 20852,
                "payment_id": "NWsZT1GCMPeUSs5IclfIyoWgFs3UtCp7ydav9yb",
                "auth_code": ""
            }
        },
        "signature": "SxLFUcKLROs+lOPKKi4cDfnYjwMHSDgqeD+Jt1LYOg=="
    }

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

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

{
        "customer": {
            "id": "test-user123"
        },
        "project_id": 8181,
        "payment": {
            "id": "EP7952-f1b2",
            "type": "purchase",
            "status": "decline",
            "date": "2023-06-23T08:18:54+0000",
            "method": "astropay",
            "sum": {
                "amount": 200,
                "currency": "USD"
            },
            "description": ""
        },
        "operation": {
            "id": 309,
            "type": "sale",
            "status": "decline",
            "date": "2023-06-23T08:18:54+0000",
            "created_date": "2023-06-23T08:18:43+0000",
            "request_id": "520e094cf38510184b1800da4aecd-00000001",
            "sum_initial": {
                "amount": 200,
                "currency": "USD"
            },
            "sum_converted": {
                "amount": 200,
                "currency": "USD"
            },
            "code": "20000",
            "message": "General decline",
            "provider": {
                "id": 20852,
                "payment_id": "",
                "auth_code": ""
            }
        },
        "signature": "G57/QXMRTqt7TiqEcX5YXliTwqTplA9MIut6101ZNkA=="
    }

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

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

Выплаты на счёта в сервисе AstroPay через Gate

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

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

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

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

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

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

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

  1. Для инициирования каждой выплаты должен использоваться отдельный POST-запрос к конечной точке /v2/payment/wallet/astropay/payout. Эта точка относится к группе /v2/payment/wallet/{payment_method}/payout.
  2. В каждом запросе должны использоваться следующие объекты и параметры:
    • general — объект, содержащий основные идентификационные сведения запроса:
      • project_id — идентификатор проекта, полученный от ecommpay при интеграции;,
      • payment_id — идентификатор платежа, уникальный в рамках проекта;,
      • signature — подпись запроса, составленная после указания всех целевых параметров (подробнее — в разделе Работа с подписью к данным); (подробнее),
    • payment — сведения о платеже:
      • amount — сумма выплаты в дробных единицах валюты;,
      • currency — код валюты платежа в формате ISO-4217 alpha-3;,
    • customer — сведения о пользователе:
      • id — идентификатор пользователя, уникальный в рамках проекта;,
      • ip_address — IP-адрес пользователя, актуальный для инициируемой выплаты;,
      • country — код страны пользователя в соответствии с ISO 3166-1 alpha-2.
  3. Дополнительно необходимо указывать один из следующих параметров объекта customer:
    • phone — номер телефона, на который зарегистрирована учетная запись получателя в сервисе AstroPay, указывается с кодом страны, без знаков пунктуации и специальных символов (например, 79031234567), подробнее о формате можно почитать в ответах на вопросы. Если этот параметр используется в запросе и у получателя нет учётной записи AstroPay, то получателю направляется SMS-сообщение с предложением создать учётную запись. Если получатель создаёт учётную запись, то выплата может быть проведена.
    • account_id — идентификатор пользователя в сервисе AstroPay. При проведении оплаты или выплаты с указанием параметра customer.phone этот идентификатор отправляется в соответствующем оповещении. Одно значение параметра account_id может использоваться совместно в запросе только с двумя или менее разными значениями параметра id объекта customer.
  4. Дополнительно могут использоваться любые другие параметры из числа указанных в спецификации.

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

{
  "general": {
    "project_id": 210,
    "payment_id": "test_payment",
    "signature": "PJkV8ej\/UG0Di8hTng6JvipTv+AWoXW\/9MTO8yJA=="
  },
  "payment": {
    "amount": 1000,
    "currency": "BRL"
  },
  "customer": {
    "id": "customer123",
    "ip_address": "192.0.2.0",
    "country": "BR",
    "phone": "11231234567"
  }
}

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

{
  "general": {
    "project_id": 210,
    "payment_id": "test_payment",
    "signature": "PJkV8ej\/UG0Di8hTng6JvipTv+AWoXW\/9MTO8yJA=="
  },
  "payment": {
    "amount": 1000,
    "currency": "BRL"
  },
  "customer": {
    "id": "customer123",
    "ip_address": "192.0.2.0",
    "country": "BR",
    "phone": "11231234567"
  }
}

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

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

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

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

{
        "provider_extra_fields": {
            "account_id": "XQhJpQa40sh8"
        },
        "customer": {
            "id": "test-user1",
            "phone": "34738383999"
        },
        "project_id": 8181,
        "payment": {
            "id": "astro_96",
            "type": "payout",
            "status": "success",
            "date": "2023-06-23T08:48:47+0000",
            "method": "astropay",
            "sum": {
                "amount": 200,
                "currency": "USD"
            },
            "description": ""
        },
        "operation": {
            "id": 319,
            "type": "payout",
            "status": "success",
            "date": "2023-06-23T08:48:47+0000",
            "created_date": "2023-06-23T08:48:36+0000",
            "request_id": "0977017ea90de7e80b8452f063dfbd467a-00000001",
            "sum_initial": {
                "amount": 200,
                "currency": "USD"
            },
            "sum_converted": {
                "amount": 956,
                "currency": "BRL"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 20852,
                "payment_id": "23780",
                "auth_code": ""
            }
        },
        "signature": "VWuCTeoc4IIhFNg6Ij0NerHwuDQCTUCyQARscw=="
    }

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

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

{
        "customer": {
            "id": "test-user1",
            "phone": "55949499483833"
        },
        "project_id": 8181,
        "payment": {
            "id": "astro_97",
            "type": "payout",
            "status": "decline",
            "date": "2023-06-23T08:49:18+0000",
            "method": "astropay",
            "sum": {
                "amount": 200,
                "currency": "USD"
            },
            "description": ""
        },
        "operation": {
            "id": 320,
            "type": "payout",
            "status": "decline",
            "date": "2023-06-23T08:49:18+0000",
            "created_date": "2023-06-23T08:48:59+0000",
            "request_id": "cf13537bc421fee54f651fb6a3fe6a3c7d-00000001",
            "sum_initial": {
                "amount": 200,
                "currency": "USD"
            },
            "sum_converted": {
                "amount": 956,
                "currency": "BRL"
            },
            "code": "20000",
            "message": "General decline",
            "provider": {
                "id": 20852,
                "payment_id": "",
                "auth_code": ""
            }
        },
        "signature": "ns1NbhOPyWuwbBLaNtzAJsqALW3b33lmE+CHAPxXw=="
    }

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

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

Выплаты на счёта в сервисе PIX через Gate

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

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

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

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

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

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

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

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

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

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

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

{
    "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",
        "id": "customer_123",
        "country": "BR",
        "identify": {
            "doc_number": "12345678901",
            "doc_type": "CPF"
        }
    },
    "account": {
        "number": "12345"
}

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

{
    "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",
        "id": "customer_123",
        "country": "BR",
        "identify": {
            "doc_number": "12345678901",
            "doc_type": "CPF"
        }
    },
    "account": {
        "number": "12345"
}

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

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

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

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

{
        "project_id": 8181,
        "payment": {
            "id": "astro_100",
            "type": "payout",
            "status": "success",
            "date": "2023-06-23T09:01:50+0000",
            "method": "pix",
            "sum": {
                "amount": 200,
                "currency": "USD"
            },
            "description": ""
        },
        "account": {
            "number": "12345678910"
        },
        "customer": {
            "id": "test-user1",
            "phone": "34738383999"
        },
        "provider_extra_fields": {
            "account_id": "XQhJpQa40sh8"
        },
        "operation": {
            "id": 323,
            "type": "payout",
            "status": "success",
            "date": "2023-06-23T09:01:50+0000",
            "created_date": "2023-06-23T09:01:33+0000",
            "request_id": "61788f10d1fea1787aa9652ca64f-00000001",
            "sum_initial": {
                "amount": 200,
                "currency": "USD"
            },
            "sum_converted": {
                "amount": 200,
                "currency": "USD"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 20853,
                "payment_id": "23782",
                "auth_code": ""
            }
        },
        "signature": "xne92PHCCHfgwnMdrgn52zDANIu0pj1YREWsEeQQ=="
    }

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

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

{
        "project_id": 8181,
        "payment": {
            "id": "astro_101",
            "type": "payout",
            "status": "decline",
            "date": "2023-06-23T09:41:08+0000",
            "method": "pix",
            "sum": {
                "amount": 200,
                "currency": "USD"
            },
            "description": ""
        },
        "account": {
            "number": "12345678910"
        },
        "customer": {
            "id": "test-user1",
            "phone": "34738383999"
        },
        "operation": {
            "id": 325,
            "type": "payout",
            "status": "decline",
            "date": "2023-06-23T09:41:08+0000",
            "created_date": "2023-06-23T09:40:57+0000",
            "request_id": "5a4ebdc305fe57d51a98820793f04d-00000001",
            "sum_initial": {
                "amount": 200,
                "currency": "USD"
            },
            "sum_converted": {
                "amount": 200,
                "currency": "USD"
            },
            "code": "20000",
            "message": "General decline",
            "provider": {
                "id": 20853,
                "payment_id": "",
                "auth_code": ""
            }
        },
        "signature": "Lc0RMow6EOSKT6rGs6shTGL7FH7oNkF2u4AQ=="
    }

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

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

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

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

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

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

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

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

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

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

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