S
docs.syncra.money
API ReferenceMerchant API

CSV-экспорт сделок (Export)

Выгрузка истории сделок мерчанта (PayIn + PayOut) в формате CSV — фильтры, формат документа и лимиты

CSV-экспорт сделок (Export)

Эндпоинт экспорта выгружает сделки мерчанта — PayIn (orders) и PayOut (payouts), UNION по канону листинга сделок — как CSV-документ (Stripe-style balance exports). Фильтры идентичны листингу, поэтому выгрузка совпадает с тем, что мерчант видит в списке, один к одному.


Запрос

GET /api/v1/p2p/merchant/deals/export

Канонический путь экспорта — внутри merchant-префикса: /api/v1/p2p/merchant/deals/export. Историческое зеркало без merchant-префикса — GET /api/v1/p2p/deals/export — продолжает работать (wire-compat) и считается deprecated: новые интеграции стройте на каноническом пути. Аутентификация — та же HMAC-пара (X-Merchant-Token / X-Timestamp / X-Signature), скоуп сделок берётся из подписанного токена (IDOR-пины идентичны листингу — выгрузка не может утечь другому мерчанту). Эндпоинт dual-homed: работает и с кабинетным JWT (Bearer), и с HMAC.

Заголовок Accept (выбор формата ответа)

AcceptОтвет
text/csvСырой CSV-документ: Content-Type: text/csv; charset=utf-8, Content-Disposition: attachment; filename="deals-YYYYMMDD.csv" (UTC-дата экспорта).
любой другой / отсутствуетJSON-конверт: тот же документ, закодированный в поле csv (см. ниже).

Параметры фильтрации (Query Parameters)

Фильтры совпадают с листингом один к одному. Пагинации нет — выгрузка capped на сервере.

ПолеТипОбяз.Описание
deal_typestringНет"PAYIN" или "PAYOUT"; пусто = оба направления (UNION).
statusesarrayНетПовторяющийся параметр: statuses=COMPLETED&statuses=EXPIRED (имена статусов БД — см. Справочник статусов).
created_afterstring(RFC3339)НетНижняя граница времени создания (включительно).
created_beforestring(RFC3339)НетВерхняя граница времени создания (включительно).

Ответ

CSV-режим (Accept: text/csv)

Живые заголовки ответа стейджа:

HTTP/1.1 200 OK
Content-Type: text/csv; charset=utf-8
Content-Disposition: attachment; filename="deals-20260823.csv"
X-Trace-Id: 56902dcf-e42a-413d-9f29-e1e1b1ea1bc2

Живое тело (первые строки реальной выгрузки стейджа):

id,date,type,amount,currency,status,counterparty
9512d99a-3bbc-4a32-acae-d6ad8bb7e32f,2026-08-23T19:04:28Z,PAYIN,1000.00,RUB,EXPIRED,
d1fc4e47-ce53-4a87-ab4a-5950be8080ac,2026-08-23T19:04:21Z,PAYIN,1000.00,RUB,EXPIRED,
359fb026-6dd7-4f7a-bfa7-aa54a5afb6cb,2026-08-23T19:04:09Z,PAYIN,1000.00,RUB,APPEALED,

Формат документа — RFC 4180:

  • заголовок всегда id,date,type,amount,currency,status,counterparty;
  • разделители строк — CRLF;
  • поля, содержащие запятые/кавычки/переносы строк, обрамляются кавычками с удвоением внутренних кавычек;
  • date — ISO 8601 UTC (RFC3339);
  • amountмажорные единицы с десятичной точкой (копейки / 100: 100000 минорных = 1000.00 в CSV);
  • typePAYIN | PAYOUT;
  • counterparty — контрагент сделки: client_id плательщика для PAYIN (пусто, если при создании не передавался) либо target_requisite получателя для PAYOUT.

JSON-режим (без Accept: text/csv)

{
  "csv": "id,date,type,amount,currency,status,counterparty\r\n9512d99a-3bbc-4a32-acae-d6ad8bb7e32f,2026-08-23T19:04:28Z,PAYIN,1000.00,RUB,EXPIRED,\r\n...",
  "file_name": "deals-20260823.csv",
  "row_count": 16,
  "truncated": false
}
ПолеТипОписание
csvstringПолный CSV-документ (заголовок + row_count строк данных).
file_namestringРекомендуемое имя файла deals-YYYYMMDD.csv (UTC-дата экспорта).
row_countint32Число строк данных без заголовка.
truncatedbooltrue = достигнут потолок 10 000 строк, хвост обрезан.

Лимиты и особенности

  • Cap: 10 000 строк данных. Выгрузка не пагинируется; при большем числе сделок под фильтром документ обрезается (truncated: true в JSON-режиме). Сужайте окно created_after/created_before.
  • Фильтры не валидируются жёстко: неизвестный deal_type или статус даёт 200 с пустым документом (ноль строк), а не ошибку — так же, как листинг.
  • Исключённых статусов нет: в выгрузку попадают все сделки под фильтром, включая EXPIRED и SPAM_REJECTED (в отличие от оборотов, где «несостоявшиеся» сделки исключены).

Связанные материалы

On this page