Получение данных
Общая информация
В структуре Data API используются разные конечные точки для получения разной информации:
-
/balance/get
— для получения информации о балансах по проектам мерчанта (в настоящее время поддерживается получение информации только о балансах типа OUT); /chargeback/list
— для получения информации об опротестованиях, соответствующих заданным условиям;/chargeback/get
— для получения информации по конкретному опротестованию;/fraud/list
— для получения информации об операциях, признанных мошенническими;/operations/get
— для получения информации об операциях, соответствующих заданным условиям;/operations/get-by-payment
— для получения информации об операциях конкретного платежа;/currency-rates/get
— для получения ознакомительной информации о курсах конвертации, применяемых к списаниям и зачислениям.
Общий порядок работы с каждой из этих конечных точек соответствует описанному в предыдущих статьях этого раздела. В этой статье представлена информация об особенностях работы с этими точками, дополняющая описания структур данных в спецификации интерфейса.
Контроль балансов
Для получения информации о балансах по проектам мерчанта следует отправлять запросы к конечной точке /balance/get.
В этих запросах должны указываться параметры token
(токен учётной записи) и signature
(подпись). В ответах на такие запросы содержатся сведения о текущем состоянии балансов типа OUT.
Сведения о каждом балансе включают в себя наименование баланса и доступную сумму в валюте этого баланса, причём валюта указывается в качестве названия параметра, а сумма — в качестве значения параметра ("<валюта>": "<сумма>"
).
Общий контроль опротестований
Для получения информации об опротестованиях (chargebacks), которые относятся к проектам мерчанта и соответствуют заданным условиям, следует отправлять запросы к конечной точке /chargeback/list.
В работе с этими запросами необходимо учитывать следующее:
- В каждом запросе должны указываться параметры
token
(токен учётной записи с рольюRisks
илиMerchant admin
и правами доступа ко всем целевым проектам) иsignature
(подпись). -
Для фильтрации данных об опротестованиях могут использоваться любые из параметров в объекте
filter
.В этом объекте каждый из периодов задаётся как объект с двумя параметрами строкового типа
from
(начало) иto
(окончание). Остальные параметры могут содержать как одно, так и несколько значений, заданных в виде массива или строки с разделением через запятую с пробелом. Исключением является параметрprovider_id
, который может быть задан только в виде массива. Параметры фильтрации можно указывать в произвольном порядке. Если они не указываются вовсе, в ответе от платёжной платформы отправляются данные обо всех опротестованиях по проектам, к которым есть доступ у используемой учётной записи.В объекте
filter
могут указываться следующие объекты и параметры:report_date
— период, в котором информация об опротестовании впервые поступила в платформу (формат каждой границы периода —ГГГГ-ММ-ДД
);respond_by
— период, к которому относится последний день срока предоставления ответа по опротестованию (формат каждой границы периода —ГГГГ-ММ-ДД чч:мм:сс
с возможностью не указывать время);chb_completed_at
— период, в котором опротестованию присвоен итоговый статус (формат каждой границы периода —ГГГГ-ММ-ДД чч:мм:сс
с возможностью не указывать время);project_id
— идентификатор проекта;chargeback_id
— идентификатор опротестования, полученный от ecommpay;chargeback_stage
— этап работы с опротестованием (Chargeback
,Representment
,Pre-Arbitration attempt
,Pre-Arbitration response
иArbitration
; подробнее об этапах);arn
— acquirer reference number (идентификатор операции, присвоенный эквайером);card
— номер платёжной карты, использованной при проведении платежа;card_type
— код платёжной системы (visa
для Visa иmc
для Mastercard);reason_code
— числовой код причины опротестования, полученный от платёжной системы;operation_id
— идентификатор оспариваемой операции;status
— статус опротестования.
- Для ограничения количества записей с информацией об опротестованиях, возвращаемых в одном ответе, можно использовать объект
pagination
с двумя параметрами:limit
— максимальное количество возвращаемых записей (не меньше1
) иoffset
— величина сдвига для отбора записей (с отсчётом с0
). Например, если необходимо получить информацию о 5 опротестованиях, пропустив первые 20, то в запросе можно указать"limit": "5"
и"offset": "20"
. При отсутствии этих параметров используются значения по умолчанию:limit
—20
,offset
—0
.
В ответе на каждый из таких запросов содержатся данные об опротестованиях с учётом условий, заданных в запросе.
Контроль отдельных опротестований
Для получения информации об отдельных опротестованиях (chargebacks) следует использовать запросы к конечной точке /chargeback/get.
В работе с этими запросами необходимо учитывать следующее:
- В каждом запросе должны указываться параметры
token
(токен учётной записи с рольюRisks
илиMerchant admin
и правами доступа ко всем целевым проектам) иsignature
(подпись). - Дополнительно должен указываться по крайней мере один из следующих идентификаторов в объекте
filter
:chargeback_id
— идентификатор опротестования, полученный от ecommpay;arn
— идентификатор операции, присвоенный эквайером (acquirer reference number);operation_id
— идентификатор операции в платёжной платформе.
Если в запросе не указан ни один из этих идентификаторов или указаны противоречащие друг другу, то в ответ выдаётся ошибка.
В ответе на корректный запрос содержатся данные о конкретном опротестовании.
Контроль мошеннических операций
Для получения информации об операциях, признанных мошенническими на стороне платёжных систем, следует отправлять запросы к конечной точке /fraud/list.
Стоит учитывать, что с помощью таких запросов нельзя получать данные об операциях, признанными подозрительными на стороне ecommpay, а в работе с этими запросами необходимо учитывать следующее:
- В каждом запросе должны указываться параметры
token
(токен учётной записи с рольюRisks
илиMerchant admin
и правами доступа ко всем целевым проектам) иsignature
(подпись). - Для фильтрации данных об операциях могут использоваться любые из параметров в объекте
filter
:received_on
— период, в котором операция признана мошеннической на стороне платёжной системы;purchase_date
— период, в котором операции присвоен итоговый статус;fraud_report_date
— период, в котором эмитент был уведомлён о признании операции мошеннической;issuer_country
— код страны эмитента, выпустившего карту (массив из одного или нескольких кодов в формате ISO 3166-1 alpha-2).
В этом объекте любой период должен задаваться через массив строк с границами временного интервала, например
"purchase_date": [ "2021-12-31 00:00:00", "2022-01-07 23:59:59" ]
. - Для ограничения количества записей с информацией об операциях, возвращаемых в одном ответе, можно использовать объект
pagination
с двумя параметрами:limit
— максимальное количество возвращаемых записей (не меньше1
) иoffset
— величина сдвига для отбора записей (с отсчётом с0
). Например, если необходимо получить информацию о 5 операциях, пропустив первые 20, то в запросе можно указать"limit": 5
и"offset": 20
. При отсутствии этих параметров используются значения по умолчанию:limit
—20
,offset
—0
.
В ответе на каждый из таких запросов содержатся данные об операциях с учётом условий, заданных в запросе.
Общий контроль операций
Для получения информации об операциях за заданный период по проектам мерчанта следует отправлять запросы к конечной точке /operations/get.
В работе с этими запросами необходимо учитывать следующее:
- В каждом запросе должны использоваться следующие объекты и параметры:
interval
— объект с информацией о границах временно́го интервала, к которому относятся последние действия (и соответствующие обновления информации) по целевым операциям:from
— дата и время начала интервала, в форматеГГГГ-ММ-ДД чч:мм:сс
;to
— дата и время окончания интервала, в форматеГГГГ-ММ-ДД чч:мм:сс
;
Прим.: Если от имени одной учётной записи Dashboard в течение 10 секунд в платформу поступает более одного запроса на информацию за период, превышающий 180 дней, то эти запросы обрабатываются поэтапно, с тайм-аутом в 10 секунд.token
— токен учётной записи;signature
— подпись запроса, составленная после указания целевых параметров.
- Для фильтрации операций по их отношению к проектам используется параметр
project_id
, а также учитывается наличие прав доступа к проектам через токен, указанный в запросе. По умолчанию, если в запросе не указан этот параметр, в ответе от платёжной платформы отправляются данные об операциях по всем проектам, к которым есть права доступа через используемый токен. При необходимости получить данные по конкретным проектам (одному или нескольким), в параметреproject_id
следует указать идентификаторы этих проектов (через запятую с пробелом, если необходимо указать несколько идентификаторов; например,4, 12
). - Для использования часового пояса, отличного от заданного по умолчанию UTC +00:00, используется параметр
tz
. Выбор часового пояса с помощью этого параметра влияет на то, какие операции попадают в заданный интервал времени в объектеinterval
, и на значения параметров в ответе, связанных с датой и временем — например,operation_created_at
иoperation_completed_at
. Часовой пояс в параметреtz
указывается через время смещения в формате UTC (например,+10:30
) или через название в соответствии с базой данных часовых поясов IANA Time Zone Database (например,Asia/Singapore
). -
Для ограничения количества записей с информацией об операциях, возвращаемых в одном ответе, используется параметр
limit
. Этот параметр может принимать значения в диапазоне0
–1000
и по умолчанию равен1000
, при этом количество записей, возвращаемых в ответе, может быть меньше заданного значения.При необходимости получить информацию более чем о тысяче операций, следует отправлять несколько запросов и в каждом из них использовать параметр
offset
. Этот параметр определяет величину сдвига для отбора операций. Когда в запросе указываются оба параметра — иlimit
, иoffset
, то сначала операции пропускаются в количестве, заданном значениемoffset
, а затем записи с информацией о следующих операциях возвращаются в ответе в количестве, не превышающем значенияlimit
.Например, если необходимо получить информацию о
1125
операциях, то в первом запросе можно указать"limit": "1000"
и"offset": "0"
, а во втором —"limit": "125"
и"offset": "1000"
. - Для ограничения количества записей, возвращаемых в одном ответе, используется параметр
limit
со значением в диапазоне в диапазоне0
—1000
. А при необходимости получить информацию более чем о тысяче операций следует отправлять несколько запросов, используя в них параметрoffset
, который определяет величину сдвига для отбора операций. -
Для фильтрации данных об операциях по различным параметрам используется массив
fields
. По умолчанию, если в запросе не указан этот массив, в ответе от платёжной платформы отправляется типовой набор данных для каждой операции. Если же необходимо получить данные по конкретным параметрам (одному или нескольким), в качестве элементов массиваfields
следует указать названия этих параметров.Параметры указываются в массиве через запятую с пробелом (если необходимо указать несколько названий), при этом их можно указывать в произвольном порядке, но в ответах используется фиксированный порядок данных. Полный перечень параметров представлен в спецификации Data API — в виде параметров объекта
operations
в описании формата ответа на запрос к конечной точке /operations/get. В этом описании атрибуты указаны в порядке, который используется по умолчанию, и отмечены как обязательные. - Для фильтрации данных об операциях по различным параметрам используется массив
fields
. Полный перечень параметров представлен в спецификации Data API — в виде параметров объектаoperations
в описании формата ответа на запрос к конечной точке /operations/get. -
Для получения данных об операциях по конкретным типам и (или) статусам используются массивы
operation_type
иoperation_status
. По умолчанию, если в запросе не указаны эти массивы, в ответе отправляются данные об операциях всех допустимых типов и статусов. В качестве элементов массивовoperation_type
иoperation_status
следует указывать названия конкретных типов и статусов операций соответственно, через запятую с пробелом, если необходимо указать несколько названий. Полный перечень типов и статусов операций представлен в модели проведения платежей.Параметры
operation_type
иoperation_status
могут представлять собой массив строк (если необходимо указать одно или несколько значений) или строку (если необходимо указать одно значение). -
Для фильтрации данных об операциях с учётом идентификаторов и (или) адресов электронной почты пользователей используются параметры
customer_id
(массив строк) иcustomer_email
(строка). По умолчанию, если в запросе не указаны эти параметры, в ответе отправляются данные об операциях с любыми идентификаторами и адресами электронной почты пользователей.Параметр
customer_id
может представлять собой массив строк (если необходимо указать одно или несколько значений) или строку (если необходимо указать одно значение).
В ответе на каждый из таких запросов содержатся данные об операциях за указанный период с учётом условий, заданных в запросе.
Если достаточно параметров, используемых по умолчанию, можно не указывать в запросах массив fields
.
Если необходимо получать нетиповые параметры по операциям, можно определять эти параметры через массив fields
, и если при этом необходимо также применять фильтрацию операций, можно задавать задавать критерии фильтрации через различные параметры, например operation_type
, opeartion_status
и customer_email
.
Контроль операций по отдельным платежам
Для получения информации обо всех операциях конкретного платежа следует использовать запрос к конечной точке /operations/get-by-payment.
В этом запросе должны указываться параметры payment_id
(идентификатор целевого платежа), token
(токен учётной записи) и signature
(подпись). В ответе на такой запрос содержатся сведения об операциях целевого платежа.
Контроль информации о курсах конвертации валют
Для получения ориентировочной информации о курсах конвертации валют, применяемых в платформе к операционным и неоперационным списаниям и зачислениям, можно использовать запросы к конечной точке /currency-rates/get.
В ответе на каждый запрос к этой точке приводятся „опорные“ значения курсов продажи и покупки заданной валюты по отношению к доллару США на начало каждого часа в рамках заданного периода. Кроме того, в отдельных случаях, в частности для болгарского лева (BGN), дополнительно приводятся значения курса по отношению к евро (EUR).
operations
.В каждом запросе к конечной точке /currency-rates/get должны использоваться следующие объекты и параметры:
token
— токен учётной записи c правами доступа ко всем целевым проектам.signature
— подпись запроса, составленная после указания целевых параметров.filter
— объект с данными для фильтрации курсов конвертации целевой валюты:merchant
— внутренний идентификатор мерчанта в платформе, предоставляемый специалистами технической поддержки ecommpay по отдельным запросам и указываемый в виде числа (например,97
).currency
— код целевой валюты в формате ISO-4217 alpha-3 (подробнее).interval
— объект с указателями границ временно́го интервала:from
— дата и время начала интервала, в форматеГГГГ-ММ-ДД чч:мм:сс
;to
— дата и время окончания интервала, в форматеГГГГ-ММ-ДД чч:мм:сс
.
Прим.: В случаях, когда заданный период составляет менее часа (вплоть до совпадения времени начала и окончания периода), приводятся курсы, актуальные для параметраfrom
. Если указывается некорректный период (например, из будущего времени), то в ответе на такой запрос данные о курсах отсутствуют.
tz
— указатель часового пояса, задаваемый через время смещения в формате UTC (например, +10:30) или через название пояса в соответствии с базой данных IANA Time Zone Database (например, Asia/Singapore).