Получение данных
Общая информация
В структуре Data API используются разные конечные точки для получения разной информации:
-
/balance/get
— для получения информации о балансах по проектам мерчанта (в настоящее время поддерживается получение информации только о балансах типа OUT); /chargeback/list
— для получения информации об опротестованиях, соответствующих заданным условиям;/chargeback/get
— для получения информации по конкретному опротестованию;/fraud/list
— для получения информации об операциях, признанных мошенническими;/financial-reporting/operations
— для получения информации о финансовых результатах по операциям за заданный период (включая информацию о начисленных комиссиях);/operations/get
— для получения информации о выполнении операций за заданный период;/operations/get-by-payment
— для получения информации об операциях конкретного платежа;/currency-rates/get
— для получения ознакомительной информации о курсах конвертации, применяемых к списаниям и зачислениям.
Общий порядок работы с каждой из этих конечных точек соответствует описанному в предыдущих статьях этого раздела. В этой статье представлена информация об особенностях работы с этими точками, дополняющая описания структур данных в спецификации интерфейса.
Контроль балансов
Для получения информации о балансах по проектам мерчанта следует отправлять запросы к конечной точке /balance/get.
В этих запросах должны указываться параметры token
(токен учётной записи Dashboard) и signature
(подпись; подробнее). В ответах на такие запросы содержатся сведения о текущем состоянии балансов типа OUT.
Сведения о каждом балансе включают в себя наименование баланса и доступную сумму в валюте этого баланса, причём валюта указывается в качестве названия параметра, а сумма — в качестве значения параметра ("<валюта>": "<сумма>"
).
Общий контроль опротестований
Для получения информации об опротестованиях (chargebacks), которые относятся к проектам мерчанта и соответствуют заданным условиям, следует отправлять запросы к конечной точке /chargeback/list.
В работе с этими запросами необходимо учитывать следующее:
- В каждом запросе должны указываться параметры
token
(токен учётной записи Dashboard с ролью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
(токен учётной записи Dashboard с рольюRisks
илиMerchant admin
и правами доступа ко всем целевым проектам) иsignature
(подпись; подробнее). - Дополнительно должен указываться по крайней мере один из следующих идентификаторов в объекте
filter
:chargeback_id
— идентификатор опротестования, полученный от ecommpay;arn
— идентификатор операции, присвоенный эквайером (acquirer reference number);operation_id
— идентификатор операции в платёжной платформе.
Если в запросе не указан ни один из этих идентификаторов или указаны противоречащие друг другу, то в ответ выдаётся ошибка.
В ответе на корректный запрос содержатся данные о конкретном опротестовании.
Контроль мошеннических операций
Для получения информации об операциях, признанных мошенническими на стороне платёжных систем, следует отправлять запросы к конечной точке /fraud/list.
Стоит учитывать, что с помощью таких запросов нельзя получать данные об операциях, признанными подозрительными на стороне ecommpay, а в работе с этими запросами необходимо учитывать следующее:
- В каждом запросе должны указываться параметры
token
(токен учётной записи Dashboard с рольюRisks
илиMerchant admin
и правами доступа ко всем целевым проектам) иsignature
(подпись; подробнее). - Для фильтрации данных об операциях могут использоваться любые из параметров в объекте
filter
:received_on
— период, в котором операция признана мошеннической на стороне платёжной системы;purchase_date
— период, в котором операции присвоен итоговый статус;fraud_report_date
— период, в котором эмитент был уведомлён о признании операции мошеннической;issuer_country
— код страны эмитента, выпустившего карту (массив из одного или нескольких кодов в формате ISO 3166-1 alpha-2).
В этом объекте любой период должен задаваться через массив строк с границами временного интервала, например
"purchase_date": [ "2023-12-31 00:00:00", "2024-01-07 23:59:59" ]
. - Для ограничения количества записей с информацией об операциях, возвращаемых в одном ответе, можно использовать объект
pagination
с двумя параметрами:limit
— максимальное количество возвращаемых записей (не меньше1
) иoffset
— величина сдвига для отбора записей (с отсчётом с0
). Например, если необходимо получить информацию о 5 операциях, пропустив первые 20, то в запросе можно указать"limit": 5
и"offset": 20
. При отсутствии этих параметров используются значения по умолчанию:limit
—20
,offset
—0
.
В ответе на каждый из таких запросов содержатся данные об операциях с учётом условий, заданных в запросе.
Общий контроль финансовых результатов операций
Для получения информации о финансовых результатах по операциям за заданный период (включая информацию о начисленных комиссиях) следует отправлять запросы к конечной точке /financial-reporting/operations. Эта информация может дополнять информацию о выполнении операций (подробнее) и использоваться для итогового анализа и сверок.
В работе с запросами на получение информации о финансовых результатах по операциям необходимо учитывать следующее:
В работе с этими запросами необходимо учитывать следующее:
- В каждом запросе должны использоваться следующие объекты и параметры:
token
— токен учётной записи Dashboard;signature
— подпись запроса, составленная после указания целевых параметров (подробнее);operation_completed_at
— объект с информацией о границах временно́го интервала, в который было закончено выполнение целевых операций (с учётом последних действий и обновлений информации по ним):from
— дата и время начала интервала, в форматеГГГГ-ММ-ДД чч:мм:сс
;to
— дата и время окончания интервала, в форматеГГГГ-ММ-ДД чч:мм:сс
;
Прим.: Можно запрашивать информацию только об операциях, завершённых за последние 30 дней.tz
— указатель часового пояса, задаваемый через время смещения в формате UTC (например, +10:30) или через название пояса в соответствии с базой данных IANA Time Zone Database (например, Asia/Singapore).
- Для фильтрации операций по проектам и (или) провайдерам используются массивы
project_id
иprovider_id
, а также учитывается наличие прав доступа к проектам через токен, указанный в запросе. По умолчанию, если в запросе не указаны эти массивы, в ответе от платёжной платформы отправляются данные об операциях по всем проектам (к которым есть права доступа через используемый токен) и всем провайдерам, задействованным при выполнении этих операций. Если необходимо получить данные по конкретным проектам и провайдерам, в массивахproject_id
иprovider_id
следует указать их идентификаторы (через запятую с пробелом, если необходимо указать более одного идентификатора; например,4, 12
). - Для получения информации о конкретных операциях используется массив
operation_id
. По умолчанию, если в запросе не указан этот массив, в ответе от платёжной платформы отправляются данные обо всех операциях, соответствующих заданным условиям. Если необходимо получить данные по конкретным операциям (одной или нескольким), в массивеoperation_id
следует указать идентификаторы этих операций (через запятую с пробелом, если необходимо указать более одного идентификатора; например,6435212162442, 6435212162443
). -
Для ограничения количества записей с информацией об операциях, возвращаемых в одном ответе, используется параметр
limit
. Этот параметр может принимать значения в диапазоне0
–1000
и по умолчанию равен1000
, при этом количество записей, возвращаемых в ответе, может быть меньше заданного значения.При необходимости получить информацию более чем о тысяче операций, следует отправлять группу запросов и в каждом из этих запросов использовать параметр
offset
. Этот параметр определяет величину сдвига для отбора операций. Если в запросе указываются оба параметра — иlimit
, иoffset
, — то сначала пропускаются записи об операциях в количестве, заданном значениемoffset
, а затем в ответ включаются записи о следующих операциях в количестве, не превышающем значенияlimit
.Например, если необходимо получить информацию о
1125
операциях, то в первом запросе можно указать"limit": "1000"
и"offset": "0"
, а во втором —"limit": "125"
и"offset": "1000"
. - Для ограничения количества записей, возвращаемых в одном ответе, используется параметр
limit
со значением в диапазоне0
—1000
. А при необходимости получить информацию более чем о тысяче операций следует отправлять группу запросов, используя в каждом из них параметрoffset
, который определяет величину сдвига для отбора операций.
В ответе на каждый из таких запросов содержатся данные об операциях за указанный период с учётом заданных условий.
Общий контроль выполнения операций
Для получения информации о выполнении операций за заданный период следует отправлять запросы к конечной точке /operations/get. Эту информацию можно использовать в ознакомительных целях и для развёрнутого анализа выполнения операций, в то время как для итогового анализа и сверок можно использовать информацию о финансовых результатах по операциям (с учётом начисленных комиссий; подробнее).
В работе с запросами на получение информации о выполнении операций необходимо учитывать следующее:
В работе с этими запросами необходимо учитывать следующее:
- В каждом запросе должны использоваться следующие объекты и параметры:
token
— токен учётной записи Dashboard;signature
— подпись запроса, составленная после указания целевых параметров (подробнее);interval
— объект с информацией о границах временно́го интервала, к которому относятся целевые операции (с учётом последних действий и обновлений информации по ним):from
— дата и время начала интервала, в форматеГГГГ-ММ-ДД чч:мм:сс
;to
— дата и время окончания интервала, в форматеГГГГ-ММ-ДД чч:мм:сс
.
Прим.: Если от имени одной учётной записи Dashboard в течение 10 секунд в платформу поступает более одного запроса на информацию за период, превышающий 180 дней, то эти запросы обрабатываются поэтапно, с тайм-аутом в 10 секунд.
- Для фильтрации операций по проектам используется массив
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
следует указать названия этих параметров.Названия целевых параметров указываются в массиве через запятую с пробелом, при этом их можно указывать в произвольном порядке, но в ответах используется фиксированный порядок, заданный в спецификации. Полный перечень параметров, которые могут выдаваться в ответах на запросы этого типа, также представлен в спецификации — в виде параметров объекта
operations
в описании формата ответа на запрос к конечной точке /operations/get. В этом описании параметры приводятся в фиксированном порядке, который не может изменяться, при этом параметры, используемые по умолчанию, отмечены как обязательные. - Для указания состава возвращаемых данных об операциях используется массив
fields
. Полный перечень допустимых параметров представлен в спецификации Data API — в виде параметров объектаoperations
в описании формата ответа на запрос к конечной точке /operations/get. -
Для получения данных об операциях по конкретным типам и (или) статусам используются параметры
operation_type
иoperation_status
. По умолчанию, если в запросе не указаны эти параметры, в ответе отправляются данные об операциях всех допустимых типов и статусов. Если указывать эти параметры, то в качестве их значений следует использовать названия конкретных типов и статусов операций, через запятую с пробелом при указании более чем одного названия. Актуальный перечень типов и статусов операций представлен в модели проведения платежей.Каждый из параметров
operation_type
иoperation_status
может задаваться как строка (если необходимо указать одно значение) и как массив строк (если необходимо указать одно или множество значений). -
Для фильтрации данных об операциях с учётом идентификаторов и (или) адресов электронной почты пользователей используются параметры
customer_id
иcustomer_email
. По умолчанию, если в запросе не указаны эти параметры, в ответе отправляются данные об операциях с любыми идентификаторами и адресами электронной почты пользователей. Если указывать эти параметры, то следует учитывать, что параметрcustomer_id
может задаваться как строка (если необходимо указать одно значение) и как массив строк (если необходимо указать одно или множество значений), а параметрcustomer_email
может задаваться только как строка.
В ответе на каждый из таких запросов содержатся данные об операциях за указанный период с учётом заданных условий.
Если состав параметров, используемый в ответах по умолчанию, подходит для решения целевых задач, можно использовать этот состав и не указывать в запросах массив fields
.
Если состав параметров, используемый в ответах по умолчанию, не подходит для решения целевых задач, можно определять необходимый состав параметров через массив fields
. Если при этом необходимо также применять фильтрацию операций, можно задавать критерии фильтрации через различные параметры, например operation_type
, operation_status
и customer_email
.
Контроль операций по отдельным платежам
Для получения информации обо всех операциях по конкретному платежу следует использовать запрос к конечной точке /operations/get-by-payment.
В этом запросе должны указываться параметры payment_id
(идентификатор целевого платежа), token
(токен учётной записи Dashboard) и signature
(подпись; подробнее). В ответе на такой запрос содержатся сведения об операциях целевого платежа.
Контроль информации о курсах конвертации валют
Для получения ориентировочной информации о курсах конвертации валют, применяемых в платформе к операционным и неоперационным списаниям и зачислениям, можно использовать запросы к конечной точке /currency-rates/get.
В ответе на каждый запрос к этой точке приводятся „опорные“ значения курсов продажи и покупки заданной валюты по отношению к доллару США на начало каждого часа в рамках заданного периода. Кроме того, в отдельных случаях, в частности для болгарского лева (BGN), дополнительно приводятся значения курса по отношению к евро (EUR).
operations
.В каждом запросе к конечной точке /currency-rates/get должны использоваться следующие объекты и параметры:
token
— токен учётной записи Dashboard 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).