3.32. /api/v4/update-recurring-payment

Введение

/api/v4/update-recurring-payment — это синхронная команда API. Если запрос принят без ошибок, платежный шлюз находит профиль повторяющегося платежа по предоставленному recurring-payment-id и обновляет этот профиль. Повторяющиеся транзакции будут обработаны в соответствии с обновленным профилем повторяющегося платежа с использованием платежных данных, сохраненных в этом профиле.
Обновление повторяющегося платежа инициируется через HTTPS POST`запрос с использованием :ref:`URL<api_v4_update-recurring-payment_request_url> и параметров, указанных ниже. Используйте OAuth RSA-SHA256 для аутентификации.

API URL

Примечание

Путь API URL не должен быть задан фиксированным значением, т.к. он может быть изменён позднее.

Интеграционная среда

Производственная среда

https://sandbox.doc2.com/paynet/api/v4/update-recurring-payment/ENDPOINTID

https://gate.doc2.com/paynet/api/v4/update-recurring-payment/ENDPOINTID

Параметры запроса

Примечание

Запрос должен иметь content-type=application/x-www-form-urlencoded и Заголовки авторизации.

Примечание

Экран сведений о RPI (профиль повторяющегося платежа) содержит информацию о связанных данных держателя карты и клиента, повторяющемся графике и обработанных транзакциях с этим RPI. Этот экран также содержит историю изменений для этого RPI. История изменений в настоящее время доступна только для исходных карт (SRC).
Введите native в пользовательском интерфейсе, чтобы настройка повторяющихся платежей и фактические списания производились в одном и том же банке-эквайере.
Если повторное списание переключилось на Stopped, вы можете обновить его расписание с помощью параметров start-date и finish-date. Однако его можно возобновить только через пользовательский интерфейс, нажав на Resume.
Чтобы остановить автоматическое повторяющееся расписание, используйте Параметры запроса. Доступно только для SRC.

Название параметра

Описание

Значение

client-orderid

Идентификатор заказа Присоединяющейся стороны.

Необходимость: Обязательно
Тип: String
Длина: 128

recurring-payment-id

Повторяющийся идентификатор, присвоенный заказу отделом QA.

Необходимость: Обязательно
Тип: String
Длина: 128

credit-card-number

Номер кредитной карты плательщика. card-printed-name можно указать только если указан номер карты.

Необходимость: Условно
Тип: Numeric
Длина: 19

card-printed-name

Напечатанное имя плательщика карты. Обязательно, если указан номер карты.

Необходимость: Условно
Тип: String
Длина: 128

expire-year

Год окончания срока действия карты плательщика. Можно указать только если указан номер карты. Обязательно если указан номер карты.

Необходимость: Условно
Тип: Numeric
Длина: 4

expire-month

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

Необходимость: Условно
Тип: Numeric
Длина: 2

amount

Сумма валюты должна совпадать с валютой назначенного проекта. По достижении даты окончания регулярный платеж перейдет в статус остановки. Поддерживается для типов SRC и DST. Требуется, если не используются amount-from и amount-to или amount-sequence.

Необходимость: Условно
Тип: Numeric
Длина: 10

amount-from

Если выбрана комбинация amount-from и amount-to, каждая плата будет иметь случайную сумму между этими двумя числами. Поддерживается для типов SRC и DST. Требуется, если amount или amount-sequence не используются.

Необходимость: Условно
Тип: Numeric
Длина: 10

amount-to

Если выбрана комбинация amount-from и amount-to, каждая плата будет иметь случайную сумму между этими двумя числами. Поддерживается для типов SRC и DST. Требуется, если amount или amount-sequence не используются.

Необходимость: Условно
Тип: Numeric
Длина: 10

amount-sequence

Если выбрана последовательность сумм, клиент будет платить суммы из этого списка. Пример настройки последовательности сумм: 10.5, 24.6, 32.0. Если количество повторов больше количества элементов в последовательности сумм, каждое новое списание будет с последней суммы в последовательности сумм. Для того чтобы списание начиналось с первой суммы в цепочке, текущее количество повторов должно быть установлено как 0. Поддерживается для типов SRC и DST. Требуется, если amount-from и amount-to или amount не используются.

Необходимость: Условно
Тип: Numeric
Длина: 10

period

Возможные значения: ежедневно, еженедельно и ежемесячно. В случае, если выбрано ежедневно, клиент будет платить каждый день. Если выбрано еженедельно - каждые 7 дней. Если выбрано ежемесячно, клиент будет платить в тот же день месяца, с начальной даты, независимо от того, сколько дней в месяце. Interval и period можно указывать или опускать только вместе. Не поддерживается для DST.

Необходимость: Условно
Тип: String
Длина: 32

interval

Interval — это множитель, применяемый к периоду. Например, если интервал равен 2, а период выбран как «Ежедневно», клиент будет платить раз в 2 дня. Interval и period можно указывать или опускать только вместе. Не поддерживается для DST.

Необходимость: Условно
Тип: Int
Длина: -

customer-ip

IP-адрес плательщика. Поддерживается для типа SRC и DST.

Необходимость: Опционально
Тип: String
Длина: 45

country

Страна плательщика.

Необходимость: Опционально
Тип: String
Длина: 2

city

Город плательщика.

Необходимость: Опционально
Тип: String
Длина: 128

address1

Адрес плательщика.

Необходимость: Опционально
Тип: String
Длина: 256

first-name

Имя плательщика.

Необходимость: Опционально
Тип: String
Длина: 128

last-name

Фамилия плательщика.

Необходимость: Опционально
Тип: String
Длина: 128

order_desc

Описание периодического платежа.

Необходимость: Опционально
Тип: String
Длина: 65K

zip-code

Почтовый индекс плательщика.

Необходимость: Опционально
Тип: String
Длина: 10

birthday

Дата рождения плательщика.

Необходимость: Опционально
Тип: 8/Numeric, DD.MM.YYYY
Длина: 8

email

Электронная почта плательщика.

Необходимость: Опционально
Тип: String
Длина: 128

ssn

Поле номера социального страхования.

Необходимость: Опционально
Тип: String
Длина: 32

phone

Полный международный номер телефона плательщика, включая код страны. Не поддерживается для DST.

Необходимость: Опционально
Тип: String
Длина: 128

state

Штат плательщика. Список допустимых кодов штатов см. в разделе Обязательные коды штатов. Требуется для США, Канады и Австралии. Не поддерживается для DST.

Необходимость: Опционально
Тип: String
Длина: 2-3

start-date

Дата, когда запланировано первое списание. Если дата начала установлена как текущая дата и тип установлен как авто, первое списание будет произведено сегодня.

Необходимость: Опционально
Тип: 8/Numeric, DD.MM.YYYY
Длина: 8

finish-date

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

Необходимость: Опционально
Тип: 8/Numeric, DD.MM.YYYY
Длина: 8

max-repeats-number

Индекс повторяющейся транзакции, первый платеж будет иметь индекс 0. Текущее число повторов увеличивается, даже если платеж был неудачным. Когда текущее число повторов достигает максимального числа повторов, повторяющийся платеж переходит в статус остановки, и клиент больше не платит. Если платеж был произведен автоматически, никаких дополнительных платежей не будет (если это не сделано вручную), даже если повторяющийся платеж остановлен и перенесен снова.

Необходимость: Опционально
Тип: Int
Длина: -

purpose

Цель транзакции.

Необходимость: Опционально
Тип: String
Длина: 128

notify_url

Поле Notify url. Также можно использовать параметр server_callback_url. Для получения дополнительной информации см. Обратный вызов Присоединяющейся Стороны.

Необходимость: Опционально
Тип: String
Длина: 1024

server_callback_url

URL-адрес Присоединяющейся Стороны, который получит запрос обратного вызова, как только транзакция достигнет окончательного статуса. Присоединяющаяся сторона может использовать URL-адрес обратного вызова сервера для индивидуальной обработки завершения транзакции, например, для сбора данных о платежах в информационной системе Присоединяющейся Стороны. Подробности обратного вызова см. в Параметры обратного вызова Присоединяющейся Стороны. Отправьте либо notify_url, либо server_callback_url, но не оба.

Необходимость: Опционально
Тип: String
Длина: 128

Параметры ответа

Примечание

Ответ имеет заголовок Content-Type: text/html;charset=utf-8. Все поля кодируются как x-www-form-urlencoded, с символом (0xA) в конце значения каждого параметра.

Предупреждение

/api/v4/create-recurring-payment — это синхронная команда API. Ответ будет возвращен после того, как профиль повторяющегося платежа будет создан на стороне платежного шлюза.

Параметры ответа

Описание

type

Тип ответа. Пример: update-recurring-payment-response, validation-error, error. Если тип равен validation-error или error, параметры error-message и error-code содержат сведения об ошибке.

status

Если запрос принят, этот параметр имеет значение approved. Это не статус транзакции.

serial-number

Уникальный номер, присваиваемый сервером Doc2.0 конкретному запросу от Присоединяющейся Стороны.

error-message

Если статус declined или error, этот параметр содержит причину отклонения или сведения об ошибке.

error-code

Код ошибки в случае статуса declined или error.

Пример запроса

POST /paynet/api/v4/update-recurring-payment/ HTTP/1.1
User-Agent: curl/8.4.0
Accept: */*
Authorization: OAuth oauth_consumer_key="ErwinTestMerchant", oauth_nonce="XBhUVJU4N8fBnNRGfY91Z3wuZ6iNgjVM", oauth_signature="RIRufAZeoBZBMpVlr7Bt%2Bc6fDTUxZJgxjJUlTo7Pm9zlGeZAl427VF6c%2B0lkGvZfATlooYBK%2FeoZaUU5gJITePycMmZr2gPzAk8xCielclB8N0j5Rp3ga0A%2B3uJDTgQdvsrosYK4tsES%2BPsR6qjhf%2FqWGHbpwCooXbMLwI9a9yMdkwmcRNQGPWAz7I%2FJ8gdDLvkjM0H8fZRp%2Bz%2FSAd3%2FgX%2F%2BCJv7bMn26hOGUxJua7u5GIKX6mmZ5FpV71xdy04ebPu4qAXGPGNKBZXLJGqzYfYVlW9XWKKkFhUA4RLYUZqnfokHA8uy3zb8IY8tKZOjXxmytlFKdVr%2BYAiHxlMt%2BEq%2BlovLAXWENbIXvJYhRiX%2F3QO2cq2ZznAsanZQiyU7AT3O9lnLHuvKc2wbuFKr277lNR24cykI3ja%2FGMR%2F8T%2BXjZKFF%2F1sYVRGd93CQDx6NHnH98vp%2Bv3PMopOmLWwggyOApmDBDsa8jYoU1TDOs6gNRTsXIyFiSwl3e48fNAp%2FjFZfUl90K8wGusNzrof05UdTPR%2B7zpv4jL1hd1XyN%2F4x7aNNQ28tm5LSoVU6t%2BQkvwRm%2FNxnDKMYEE9rq7s4Uq5KTzAmM89pAu52WFbDQXYoZgy3vm%2B0SsJDXH0IVXsDpLDt1zcJClWoeXxT0fqOcEojJhuosvbcI%2FIaEpxWH8%3D", oauth_signature_method="RSA-SHA256", oauth_timestamp="1721312815", oauth_version="1.0"
Content-Length: 624
Content-Type: application/x-www-form-urlencoded
Connection: keep-alive

address1=1234%20Peace%20street
&amount=55
&birthday=1980-01-02
&card-printed-name=JOHN%20SMITH
&recurring-payment-id=1492124
&city=Chicago
&client-orderid=1575634981130
&country=US
&credit-card-number=4464920026265488
&currency=USD
&customer-ip=1.2.3.4
&email=john.smith%40example.com
&expire-month=12
&expire-year=2040
&finish-date=2040-01-01
&first-name=John
&interval=1
&last-name=Smith
&max-repeats-number=1000
&notify-url=http%3A%2F%2Fexample.com%2Fnotify-me
&order_desc=testing%20purposes
&period=week
&phone=12345678
&purpose=No%20purpose%20at%20all
&ssn=1234
&start-date=2030-01-01
&state=IL
&zip-code=123456
&server_callback_url=https://httpstat.us/200

Пример успешного ответа

HTTP/1.1 200
Server: server
Date: Thu, 18 Jul 2024 14:27:39 GMT
Content-Type: text/html;charset=utf-8
Connection: keep-alive
Keep-Alive: timeout=60
Vary: Accept-Encoding
X-XSS-Protection: 1
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000
Content-Language: en-US
Strict-Transport-Security: max-age=31536000
Content-Length: 107

type=update-recurring-payment-response
&serial-number=00000000-0000-0000-0000-000002f36d82
&status=approved

Пример неуспешного ответа

HTTP/1.1 500
Server: server
Date: Thu, 18 Jul 2024 14:41:27 GMT
Content-Length: 61
Connection: keep-alive
Keep-Alive: timeout=60
X-XSS-Protection: 1
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000

Internal server error [00b20f25-2933-48e3-973b-0664114b8492]

Конструктор запросов

Debug form
URL
client-orderid
recurring-payment-id
Merchant login
Endpoint
order_desc
credit-card-number
currency
country
city
zip-code
address1
first-name
last-name
customer-ip
e-mail
card-printed-name
expire-year
expire-month
ssn
cvv2
birthday
phone
state
period
interval
start-date
finish-date
max-repeats-number
amount
amount-from
amount-to
amount-sequence
purpose
notify-url
server_callback_url

Normalized parameters string to sign, according to OAuth 1.0a rules
POST body parameters to submit
OAuth 1.0a headers to submit.
HEX Encoded Signature
* HEX encoded string is for debug purposes only. You shouldn't send this string to the server neither in HEX nor in Encoded HEX representation.
Base64 Encoded Signature
* Binary RSA-SHA256 signature directly encoded in base64 should be sent to the server.