Списания
Жизненный цикл списания, отмена и повторы
Создание
Авторизация
bearer Где: header
Заголовки
8-128 символов [A-Za-z0-9._:-], уникальный для каждой операции
^[A-Za-z0-9._:-]{8,128}$Тело запроса
application/json
Типы TypeScript
Используйте тип request body в TypeScript.
Тело ответа
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/charges" \ -H "Idempotency-Key: string" \ -H "Content-Type: application/json" \ -d '{ "externalId": "string", "cardId": "f16ba382-eb42-481a-b08f-c57bdc9aae24", "amount": 100 }'{ "success": true, "meta": { "requestId": "string", "timestamp": "2019-08-24T14:15:22Z", "processingTimeMs": 0 }, "data": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "externalId": "string", "cardId": "f16ba382-eb42-481a-b08f-c57bdc9aae24", "status": "CREATED", "amount": 0, "fee": 0, "feeBps": 0, "recipients": [ { "recipientId": "afdd332c-8290-47b9-aca2-368bf5f25a9d", "share": 0, "amount": 0 } ], "split": { "status": "NOT_STARTED" }, "fiscal": { "status": "NOT_STARTED", "receiptUrl": "string" }, "failureReason": "string", "createdAt": "2019-08-24T14:15:22Z", "succeededAt": "2019-08-24T14:15:22Z" }}POST /v1/charges списывает amount с карты и возвращает результат сразу:
status | Что значит |
|---|---|
SUCCEEDED | Деньги списаны |
FAILED | Банк отказал; причина - в failureReason. HTTP-ответ при этом 201 |
CREATED | Исход у провайдера неизвестен (сбой связи). Мы сверим его сами - не повторяйте с другим externalId |
REVERSED | Списание отменено |
externalId - номер вашего заказа, уникален в рамках мерчанта. Повтор с тем же externalId, картой и
суммой вернёт существующее списание; с другими параметрами - ошибку 409.
После оплаты
Авторизация
bearer Где: header
Параметры пути
uuidТело ответа
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/charges/497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "success": true, "meta": { "requestId": "string", "timestamp": "2019-08-24T14:15:22Z", "processingTimeMs": 0 }, "data": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "externalId": "string", "cardId": "f16ba382-eb42-481a-b08f-c57bdc9aae24", "status": "CREATED", "amount": 0, "fee": 0, "feeBps": 0, "recipients": [ { "recipientId": "afdd332c-8290-47b9-aca2-368bf5f25a9d", "share": 0, "amount": 0 } ], "split": { "status": "NOT_STARTED" }, "fiscal": { "status": "NOT_STARTED", "receiptUrl": "string" }, "failureReason": "string", "createdAt": "2019-08-24T14:15:22Z", "succeededAt": "2019-08-24T14:15:22Z" }}Авторизация
bearer Где: header
Параметры запроса
1 <= value11 <= value <= 10020Тело ответа
application/json
application/json
application/json
curl -X GET "https://example.com/v1/charges"{ "success": true, "meta": { "requestId": "string", "timestamp": "2019-08-24T14:15:22Z", "processingTimeMs": 0, "pagination": { "page": 0, "limit": 0, "totalItems": 0, "totalPages": 0 } }, "data": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "externalId": "string", "cardId": "f16ba382-eb42-481a-b08f-c57bdc9aae24", "status": "CREATED", "amount": 0, "fee": 0, "feeBps": 0, "recipients": [ { "recipientId": "afdd332c-8290-47b9-aca2-368bf5f25a9d", "share": 0, "amount": 0 } ], "split": { "status": "NOT_STARTED" }, "fiscal": { "status": "NOT_STARTED", "receiptUrl": "string" }, "failureReason": "string", "createdAt": "2019-08-24T14:15:22Z", "succeededAt": "2019-08-24T14:15:22Z" } ]}Распределение и чек выполняются в фоне:
split.status:PENDING→COMPLETED(обычно секунды). При сбоях - автоматические повторы, затемFAILEDи ручной повтор поддержкой.fiscal.status: после Split →COMPLETED, ссылка на чек -fiscal.receiptUrl.
Отмена
Авторизация
bearer Где: header
Параметры пути
uuidТело ответа
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/charges/497f6eca-6276-4993-bfeb-53cbbbba6f08/reverse"{ "success": true, "meta": { "requestId": "string", "timestamp": "2019-08-24T14:15:22Z", "processingTimeMs": 0 }, "data": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "externalId": "string", "cardId": "f16ba382-eb42-481a-b08f-c57bdc9aae24", "status": "CREATED", "amount": 0, "fee": 0, "feeBps": 0, "recipients": [ { "recipientId": "afdd332c-8290-47b9-aca2-368bf5f25a9d", "share": 0, "amount": 0 } ], "split": { "status": "NOT_STARTED" }, "fiscal": { "status": "NOT_STARTED", "receiptUrl": "string" }, "failureReason": "string", "createdAt": "2019-08-24T14:15:22Z", "succeededAt": "2019-08-24T14:15:22Z" }}POST /v1/charges/{id}/reverse - только в день оплаты (по Ташкенту) и пока Split не выполнен.
После распределения возврат оформляется через поддержку.
Получатели
Авторизация
bearer Где: header
Тело запроса
application/json
Типы TypeScript
Используйте тип request body в TypeScript.
Тело ответа
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/recipients" \ -H "Content-Type: application/json" \ -d '{ "kind": "SELF_EMPLOYED", "fullName": "string", "pinfl": "string" }'{ "success": true, "meta": { "requestId": "string", "timestamp": "2019-08-24T14:15:22Z", "processingTimeMs": 0 }, "data": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "kind": "SELF_EMPLOYED", "fullName": "string", "pinfl": "string", "tin": "string", "status": "PENDING_VERIFICATION", "rejectionReason": "string", "createdAt": "2019-08-24T14:15:22Z" }}Авторизация
bearer Где: header
Параметры запроса
1 <= value11 <= value <= 10020Тело ответа
application/json
application/json
application/json
curl -X GET "https://example.com/v1/recipients"{ "success": true, "meta": { "requestId": "string", "timestamp": "2019-08-24T14:15:22Z", "processingTimeMs": 0, "pagination": { "page": 0, "limit": 0, "totalItems": 0, "totalPages": 0 } }, "data": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "kind": "SELF_EMPLOYED", "fullName": "string", "pinfl": "string", "tin": "string", "status": "PENDING_VERIFICATION", "rejectionReason": "string", "createdAt": "2019-08-24T14:15:22Z" } ]}Без поля recipients вся сумма уходит получателю мерчанта по умолчанию. Каждый получатель должен быть
проверен платформой - иначе ответ 422 с кодом -6004.