Перейти к содержанию

Получение токена платежа

Для использования страницы оплаты или платежного виджета торговцу требуется создать токен платежа.

Запрос

Отправьте POST запрос на https://checkout.ecomcharge.com/ctp/api/checkouts.

Запрос должен:

  • иметь авторизацию типа Basic с ID и Secret key магазина как имя пользователя и пароль соответственно;
  • иметь заголовки Content-Type: application/json, Accept: application/json и X-API-Version: 2;
  • использовать кодировку UTF-8.
object
transaction_type
обязательный
string
Tип транзакции или запроса, который будет отправлен шлюзу. Возможные значения - authorization, payment, tokenization и charge (для запроса на взимание платы).
attempts
integer
Количество попыток для оплаты. По умолчанию - 1.
dynamic_billing_descriptor
string
Динамический идентификатор платежа.
test
boolean
Транзакция будет тестовой, если значение true. По умолчанию, false.
iframe
boolean
При true открывать, по возможности, переходы на внешние сервисы внутри виджета. По умолчанию, false.
обязательный
object
amount
обязательный
integer
Сумма к оплате в минимальных денежных единицах. Например, $32.45 должна быть отправлена как 3245.
currency
обязательный
string
Валюта транзакции в формате ISO-4217 alpha-3 code. Например, USD.
description
обязательный
string
Описание платежа.
tracking_id
string
ID транзакции или заказа в вашей системе. Рекомендуется использовать уникальное значение для каждой транзакции.
expired_at
string
Дата и время, до которого должна быть сделана оплата. По умолчанию оплата должна быть сделана в течение 24 часов после создания токена на оплату. Формат: ISO 8601 вида YYYY-MM-DDThh:mm:ssTZD, где YYYY – год (например, 2019), MM – месяц (например, 02), DD – день (например, 09), hh – часы (например, 18), mm – минуты (например, 20), ss – секунды (например, 45), TZD – временная зона (+hh:mm или –hh:mm).
object
Секция, содержащая детальную информацию по платежу.
expected_bank_code
string
If this field contains a processing error, it will be sent as the value of the code parameter in the response. The parameters message and friendly_message will have the values corresponding to the specified error code. This logic applies only to test transactions.
receipt_text
array
Текст, который будет добавлен в письмо покупателю и отображен на странице об успешной оплате. Пример: ["Первая строка", "Вторая строка"].
contract
array
Массив, элементами которого могут быть параметры:

recurring - eComCharge вернет токен карты для проведения последующих платежей без повторного ввода реквизитов карты. Пользователь, соглашаясь с условиями регулярного списания, единожды производит оплату, вводя реквизиты карты, включая проверочный код карты CVC/CVV и проходя авторизацию по протоколу 3-D ­Secure;

oneclick - eComCharge вернет токен карты для осуществления последующих платежей по схеме one-click. eComCharge будет показывать пользователю страницу оплаты с уже частично заполненными реквизитами карты. Для завершения платежа пользователю достаточно ввести проверочный код карты CVC/CVV и пройти авторизацию по протоколу 3-D ­Secure;

credit - eComCharge вернет токен карты для осуществления транзакций выплаты;

card_on_file - eComCharge вернет токен карты, чтобы вы могли сохранить ее на профайле пользователя и использовать этот токен для последующих транзакций по списанию денег с карты за оказанные услуги или проданные товары. Ознакомьтесь ниже с секцией card_on_file, чтобы узнать сценарии использования данного значения.
avs_cvc_verification
object
AVS/CVC проверка.
object
Данная секция устанавливает атрибуты транзакции, которые будут отправлены в дальнейшем в платёжную систему и атрибуты транзакции которые, если секция не передана, будут использованы по умолчанию для initiator и type.
initiator
string
merchant - (по умолчанию) транзакция инициирована вашей системой или приложением (например, оплата за поездку в такси).

customer - транзакция инициирована покупателем (например, покупатель сам нажал кнопку оплатить сохраненной картой в вашем приложении).
type
string
Используется только если additional_data.card_on_file.initiator имеет значение merchant.

delayed_charge - (по умолчанию) отложенная оплата (например, за оказанную услугу)

increment - списание дополнительной суммы (например, при дополнительной продаже товара или замене на более дорогой товар)

resubmission - повторная попытка списать деньги из-за предыдущего отказа в транзакции (например, не было денег на карте)

reauthorization - обновление авторизации (например, нужно повторно заблокировать деньги на карте в связи с истечением срока авторизации предыдущей транзакции)

no_show - покупатель не пришел (например, не заехал в отель).
object
auto_pay
boolean
По умолчанию – false. Если true, и запрос включает параметр payment_method.credit_card.token, то в ответе на запрос придет ссылка, переход по которой автоматически запустит транзакцию c использованием предоставленного токена. В результате, покупатель будет перенаправлен на suсcess_url, decline_url, fail_url или return_url в зависимости от результата транзакции и от того, какие ссылки предоставлены в запросе. Также на notification_url будет выслано автоматическое уведомление со статусом транзакции.
style
object
Секция с настройками кастомизации внешнего вида виджета.
object
Опционально
Секция для настройки тогла на платежном виджете. Тогл позволяет сохранить данные карты для последующих платежей.
display
boolean
Опционально
Если true, то тогл сохранения карты будет отображаться на виджете.

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

По умолчанию true.
customer_contract
boolean
Опционально
true - тогл отвечает за согласие покупателя предоставить данные своей карты торговцу для последующих платежей.
Если покупатель активирует тогл, система создаст токен для карты покупателя и вернет этот токен торговцу.
Если тогл не активирован, токен карты не будет предоставлен торговцу.

false - тогл отвечает за согласие покупателя сохранить данные для отображения на платежной странице.
Если покупатель активирует тогл, система будет автоматически заполнять данные его карты для оплаты последующих заказов в магазине торговца.
Если тогл не активирован, данные карты не сохраняются.

По умолчанию false.
text
string
Параметр заменяет стандартное имя тогла Save card на любой текст торговца.
hint
string
Подсказка под тоглом.
object
Секция для настройки тогла оплаты другой картой.
display
boolean
Если true, то тогл Оплатить другой картой будет отображаться на виджете.

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

По умолчанию true.
return_url
string
URL, на который будет перенаправлен покупатель после завершения оплаты. Если задан, то success_url и decline_url игнорируются.
success_url
string
URL, на который будет перенаправлен покупатель при успешной транзакции.
decline_url
string
URL, на который будет перенаправлен покупатель при отклоненной банком транзакции.
fail_url
string
URL, на который будет перенаправлен покупатель при неудавшейся транзакции (из-за ошибки, исключительной ситуации и т.д.). Вы можете запросить статус транзакции, используя токен оплаты, изучить status ответа или параметр message, чтобы оценить, почему транзакция не прошла.
cancel_url
string
URL, на который будет перенаправлен покупатель в случае отмены транзакции.
verification_url
string
URL, на который будут приходить запрос на подтверждение транзакции. Формат запроса на подтверждение аналогичен формату ответа транзакции.
notification_url
URL, на который будут приходить уведомления.
auto_return
string
По завершении транзакции eComCharge показывает страницу результата транзакции на заданное количество секунд и затем автоматически перенаправит покупателя обратно на сайт торговца. Если параметр равен 0, то по окончанию оплаты покупатель будет сразу перенаправлен на сайт торговца и результирующая страница оплаты показана не будет.
button_next_text
string
Пользовательский текст кнопки возврата со страницы результата транзакции на сайт торговца.
language
string
Язык страницы оплаты. По умолчанию - en. Доступные значения параметра language.
object
Управляет полями ввода на странице оплаты.
read_only
array
Массив, который может содержать значения email, first_name, last_name, address, city, state, zip, phone, country, birth_date и taxpayer_id.
Поля, указанные в массиве, будут заблокированы (disabled).
Если массив содержит поле email, то оно должно быть в секции customer ниже и не должно быть пустым.
visible
array
Массив, который может содержать значения email,first_name, last_name, address, city, state, zip, phone, country, birth_date и taxpayer_id.
Поля, указанные в массиве, отобразятся на странице платежа и будут обязательны для заполнения.
object
Управляет автоматическим заполнением на странице оплаты поля с именем владельца карты.
holder
string
Имя держателя карты для автоматического заполнения на странице оплаты.
read_only
array
Массив, который может принимать только значение holder. Блокирует редактирование выбранного поля.
условно обязательный
object
Секция информации о покупателе.
Уточните у Службы технической поддержки, необходимо ли передавать параметры данной секции
email
string
Адрес электронной почты покупателя.
first_name
string
Имя покупателя.
last_name
string
Фамилия покупателя.
address
string
Адрес для выставления счёта.
city
string
Город покупателя.
state
string
Штат / Область / Регион покупателя (состоит из двух букв), только если страна адреса для выставления счёта IN, US или CA.
zip
string
Почтовый индекс покупателя.
country
string
Страна покупателя в ISO 3166-1 alpha-2 формате.
phone
string
Номер телефона.
birth_date
string
Дата рождения покупателя в формате ISO 8601 YYYY-MM-DD.
taxpayer_id
string
Идентификационный номер налогоплательщика (ИНН), присвоенный покупателю.
object
Секция для указания доступных покупателю способов оплаты и их параметров. По умолчанию доступны все активные способы оплаты.
types
array
Массив способов оплаты для отображения на странице оплаты. Возможные значения:

credit_card - оплата банковской картой

Для остальных значений массива смотрите значение параметра type в описаниии альтернативных способов оплаты.

Если перечисленный способ оплаты требует дополнительных параметров, то сформируйте объект, где имя ключа - это значение type данного способа оплаты, а внутренние параметры указаны так, как приведено в описании альтернативных способов оплаты.

Например, для способа оплаты c типом apm и параметром channel добавьте следующий объект:
"apm" : { "channel": "ONLINE" }.

Отображение Apple Pay, Google Pay и Samsung Pay на виджете зависит от типа устройства и браузера покупателя. Подробнее описано здесь.
excluded_types
array
Массив способов оплаты, которые будут исключены из доступных методов, отображаемых на платежной странице. При отправке в запросе обоих параметров payment_method.types и payment_method.excluded_types приоритетной считается информация в payment_method.types. Данные из payment_method.excluded_types игнорируются.
excluded_brands
array
Массив карточных брендов и кошельков (apple_pay, google_pay, samsung_pay), которые не будут отображаться на виджете и не будут доступны для совершения транзакции, даже если они доступны на шлюзе.
object
token
string
Токен карты. На платежной странице будут отображаться данные токенизированной карты.
travel
object
Необязательная секция, предоставляющая расширенную информацию о продаже авиабилетов, туристических путевок и т.д.
Пример запроса
{
  "checkout": {
    "test": true,
    "transaction_type": "payment",
    "attempts": 3,
    "settings": {
      "return_url": "http://127.0.0.1:4567/return",
      "success_url": "http://127.0.0.1:4567/success",
      "decline_url": "http://127.0.0.1:4567/decline",
      "fail_url": "http://127.0.0.1:4567/fail",
      "cancel_url": "http://127.0.0.1:4567/cancel",
      "notification_url": "http://your_shop.com/notification",          
      "button_next_text": "Вернуться в магазин",
      "language": "en",
      "customer_fields": {
        "visible": ["first_name", "last_name"],
        "read_only": ["email"]
      },
      "credit_card_fields": {
        "holder": "Rick Astley",
        "read_only": ["holder"]
      }
    },
   "payment_method": {
        "types": [
            "credit_card",
            "bank_transfer"
        ],
        "bank_transfer": {
            "account": "DE89370400440532013000"

        },
        "excluded_brands": [
            "visa",
            "google_pay"
        ]
    },
    "order": {
      "currency": "GBP",
      "amount": 4299,
      "description": "Order description"
    },
    "customer": {
      "address": "Baker street 221b",
      "country": "GB",
      "city": "London",
      "email": "jake@example.com"
    }
  }
}
Пример запроса с дополнительным текстом и без перенаправления на результирующую страницу оплаты
{
  "checkout": {
    "test": true,
    "transaction_type": "payment",
    "attempts": 3,
    "settings": {
      "return_url": "http://127.0.0.1:4567/return",
      "success_url": "http://127.0.0.1:4567/success",
      "decline_url": "http://127.0.0.1:4567/decline",
      "fail_url": "http://127.0.0.1:4567/fail",
      "cancel_url": "http://127.0.0.1:4567/cancel",
      "notification_url": "http://your_shop.com/notification",
      "auto_return": 0,
      "language": "en",
      "customer_fields" : {
        "visible" : ["first_name", "last_name"],
        "read_only" : ["email"]
      }
    },
    "order": {
      "currency": "GBP",
      "amount": 4299,
      "description": "Order description",
      "additional_data": {
        "receipt_text": ["Первая строка", "Вторая строка"]
      }
    },
    "customer": {
      "address": "Baker street 221b",
      "country": "GB",
      "city": "London",
      "email": "jake@example.com"
    }
  }
}
Пример запроса с информацией о продаже авиабилетов и тур путевок
{
  "checkout": {
    "test": true,
    "transaction_type": "payment",
    "attempts": 3,
    "settings": {
      "return_url": "http://127.0.0.1:4567/return",
      "success_url": "http://127.0.0.1:4567/success",
      "decline_url": "http://127.0.0.1:4567/decline",
      "fail_url": "http://127.0.0.1:4567/fail",
      "cancel_url": "http://127.0.0.1:4567/cancel",
      "notification_url": "http://your_shop.com/notification",
      "auto_return": 3,         
      "button_next_text": "Вернуться в магазин",
      "language": "en",
      "customer_fields" : {
        "visible" : ["first_name", "last_name"],
        "read_only" : ["email"]
      }
    },
    "order": {
      "currency": "GBP",
      "amount": 4299,
      "description": "Order description"
    },
    "customer": {
      "address": "Baker street 221b",
      "country": "GB",
      "city": "London",
      "email": "jake@example.com"
    },
    "travel": {
      "airline": {
        "agency_code": "03",
        "agency_name": "Corel travel",
        "ticket_number": "390 5241 025377 1",
        "booking_number": "DKZVUA",
        "restricted_ticked_indicator": "0",
        "legs": [
          {
            "airline_code": "B2",
            "stop_over_code": "X",
            "flight_number": "A3 971",
            "departure_date_time": "2014-05-26T05:15:00",
            "arrival_date_time": "2014-05-26T07:30:00",
            "originating_country": "RU",
            "originating_city": "Moscow",
            "originating_airport_code": "DME",
            "destination_country": "Greece",
            "destination_city": "Athems",
            "destination_airport_code": "ATH",
            "coupon": "coupon code",
            "class": "C"
          }
        ],
        "passengers":[
          {
            "first_name": "KONSTANTIN",
            "last_name": "IVANOV"
          },
          {
            "first_name": "JULIA",
            "last_name": "IVANOVA"
          }
        ]
      }
    }
  }
}
Пример запроса с auto_pay: true
{
  "checkout": {
    "test": true,
    "transaction_type": "payment",
    "attempts": 3,    
    "iframe": true,
    "settings": {
      "return_url": "https://return-url",
      "auto_pay": true,
      "language": "en"
    },
    "payment_method": {
      "types": [
        "credit_card"
      ],
      "credit_card": {
        "token": "13dded21-ed69-4590-8bcb-db522a89735c"
      }
    },
    "order": {
      "currency": "USD",
      "amount": 700,
      "description": "auto payment"
    },
    "customer": {
      "first_name": "John",
      "last_name": "Doe"
    }
  }
}
Ответ

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

object
token
обязательный
string
Токен платежа.
redirect_url
обязательный
string
URL платежного виджета, на который необходимо перенаправить покупателя для оплаты заказа, связанного с созданным токеном платежа.
Пример ответа
{
  "checkout":
  {
    "token": "3241e439f8c87d941d92621a4bdc030d4c9a69c67f3b0cfe12de4a13cc34aa51",
    "redirect_url": "https://checkout.ecomcharge.com/v2/checkout?token=3241e439f8c87d941d92621a4bdc030d4c9a69c67f3b0cfe12de4a13cc34aa51"
  }
}
Пример ответа об ошибке
{
    "errors": {
        "checkout": {
            "settings": {
                "fail_url": [
                    "is in invalid format"
                ]
            },
            "payment_method": {
                "types": [
                    "must be an array"
                ]
            }
        }
    },
    "message": "fail_url is in invalid format, types must be an array"
}