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_type | string | Нет | "PAYIN" или "PAYOUT"; пусто = оба направления (UNION). |
statuses | array | Нет | Повторяющийся параметр: statuses=COMPLETED&statuses=EXPIRED (имена статусов БД — см. Справочник статусов). |
created_after | string(RFC3339) | Нет | Нижняя граница времени создания (включительно). |
created_before | string(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);type—PAYIN|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
}| Поле | Тип | Описание |
|---|---|---|
csv | string | Полный CSV-документ (заголовок + row_count строк данных). |
file_name | string | Рекомендуемое имя файла deals-YYYYMMDD.csv (UTC-дата экспорта). |
row_count | int32 | Число строк данных без заголовка. |
truncated | bool | true = достигнут потолок 10 000 строк, хвост обрезан. |
Лимиты и особенности
- Cap: 10 000 строк данных. Выгрузка не пагинируется; при большем числе
сделок под фильтром документ обрезается (
truncated: trueв JSON-режиме). Сужайте окноcreated_after/created_before. - Фильтры не валидируются жёстко: неизвестный
deal_typeили статус даёт200с пустым документом (ноль строк), а не ошибку — так же, как листинг. - Исключённых статусов нет: в выгрузку попадают все сделки под фильтром,
включая
EXPIREDиSPAM_REJECTED(в отличие от оборотов, где «несостоявшиеся» сделки исключены).
Связанные материалы
- Список сделок — постраничный UNION-листинг с теми же фильтрами.
- Обороты сделок — дневные агрегаты для графиков кабинета.