Sobes.tech
Back to questions
Middle
8

POST /api/v1/transfers/internal ● Idempotency-Key: UUID (обязательный) ● Authorization: Bearer <token> { "source_account_id": "83740e53-689c-[phone]f9e61f22401", "destination_account_id": "[phone]f5c-[phone]a", "amount": 1500.50, "currency": "USD", "description": "Payment for rent", "save_as_template": true } { "status": "success", "transaction_id": "77e1c83b-7bb0-437b-9250-8c9339e0538b", "data": { "amount": 1500.00, "currency": "USD", "executed_at": "[phone]T23:15:00Z", "template_saved": true } } [The sequence diagram and database schema are provided for context on the transfer service, business logic, event publishing, and database structure.]

Companies where asked
waysbits

Answer from AI

sobes.tech AI

Данный запрос описывает внутренний перевод между счетами через API с обязательным заголовком Idempotency-Key для обеспечения идемпотентности операции и авторизацией по токену.

Ключевые моменты:

  • Idempotency-Key — уникальный UUID, который гарантирует, что повторный запрос с тем же ключом не приведёт к повторному списанию средств.
  • Тело запроса содержит идентификаторы счетов, сумму, валюту, описание и флаг сохранения шаблона.
  • В ответе возвращается статус, ID транзакции и данные о выполнении, включая факт сохранения шаблона.

Пример использования идемпотентности:

Если клиент случайно отправит запрос дважды (например, из-за таймаута), сервер по Idempotency-Key распознает повтор и не создаст дублирующую транзакцию.

Проверка бизнес-логики:

  • Проверка баланса на исходящем счёте.
  • Валидация валюты и суммы.
  • Обновление балансов в базе.
  • Публикация событий для других сервисов.

Это обеспечивает надежность и согласованность при выполнении внутренних переводов.