> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Travel Rule: история доставки через API

> Получите полную историю доставки Travel Rule в Didit для транзакции: пагинация, типы транспорта, статус сообщений и временные метки доставки.

Промпт для API истории доставок Travel Rule
Скопировать промпт в буфер обмена

<pre>
  \`Read the complete Travel Rule delivery history for one transaction.

  Endpoint:
  GET [https://verification.didit.me/v3/transactions/\{transaction\_id}/travel-rule/deliveries/](https://verification.didit.me/v3/transactions/\{transaction_id}/travel-rule/deliveries/)

  Authentication:
  Use the x-api-key header with my Didit API key. {transaction_id} is the Didit transaction uuid on my application. The key needs transaction read permission.

  Query parameters:

  * limit - entries per page, default 100; larger values are capped at 100, and a value above 1,000,000 returns 400.
  * offset - entries to skip, default 0, up to 1,000,000; a larger value returns 400.

  What to read from the response:

  * count, next, previous, results. count is capped at 100 and is not a reliable total for larger histories; follow next until it is null.
  * Entries are ordered oldest first, then by identifier for ties. Each has uuid, kind (SEND, ANSWER, TXID, CANCEL, POLL), status (QUEUED, SENDING, RETRYING, DELIVERED, FAILED), rail (EMAIL, TRP, INTERNAL, NETWORK, or null before selection), created\_at, delivered\_at and detail\_lines.
  * detail\_lines describes the message kind and status without transport payloads or raw errors. The rail is supplier-neutral: NETWORK collapses every named network into one value.

  Transaction detail embeds only the newest 100 entries as travel\_rule.deliveries, with travel\_rule.deliveries\_truncated when older ones were omitted. Transaction lists omit both fields. travel\_rule.delivery remains the newest entry only.

  Failure modes:

  * 400 - limit or offset above 1,000,000.
  * 401 - a wrong, revoked or expired API key.
  * 403 - the x-api-key header is missing, or the key lacks transaction read permission.
  * 404 - unknown transaction, no Travel Rule transfer, or a deleted transaction.

  Full guide: /transaction-monitoring/travel-rule#delivery-and-retries.\`
</pre>

Вставьте в

API истории доставок Travel Rule от Didit возвращает все записи о доставке для транзакции, с пагинацией, от старых к новым.

Используйте ваш `x-api-key` с правом на чтение транзакций. `transaction_id` содержит UUID транзакции в Didit. Если транзакция или перевод не найдены, API возвращает `404`; если прав недостаточно, возвращается `403`.

## Пагинация и сортировка

Ответ содержит `count`, `next`, `previous` и `results`. По умолчанию `limit` равен 100 и ограничен 100; `offset` по умолчанию равен нулю и не должен превышать 1,000,000, иначе возвращается `400`. Значение `count` обычно ограничено 100 и не является надёжным общим итогом для больших историй. Переходите по `next`, пока он не станет `null`, независимо от значения `count`. Записи упорядочены по времени создания, а при совпадении времени по идентификатору.

Каждая запись содержит `uuid`, `kind`, `status`, `rail`, `created_at`, `delivered_at` и `detail_lines`. `rail` принимает значения `EMAIL`, `TRP`, `INTERNAL`, `NETWORK` или `null` до выбора канала. `detail_lines` описывает тип сообщения и его статус, без необработанных ошибок и транспортных payload.

## Встроенная история

[Детали транзакции](https://docs.didit.me/ru/management-api/transactions/get.md) включают только 100 самых новых записей из `travel_rule.deliveries`, которые выводятся от самых старых к новым. Поле `deliveries_truncated` показывает, были ли опущены более старые записи. Списки транзакций не содержат эти два поля истории. Существующее поле `delivery` по-прежнему описывает самую новую доставку.

Значения статусов см. в разделе [доставка и повторные попытки](https://docs.didit.me/ru/transaction-monitoring/travel-rule.md#доставка-и-повторные-попытки). [Сообщения контрагента](https://docs.didit.me/ru/management-api/travel-rule/list-messages.md) относятся к отдельному endpoint для переписки.


## OpenAPI

````yaml ru/openapi-25.json GET /v3/transactions/{transaction_id}/travel-rule/deliveries/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: >-
    API верификации личности. Аутентификация выполняется с помощью заголовка
    x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/transactions/{transaction_id}/travel-rule/deliveries/:
    get:
      tags:
        - Travel Rule
      summary: Получить список истории доставки Travel Rule
      description: >-
        Прочитать полную историю доставок для транзакции, от самых старых к
        новым. Требуется право на чтение транзакций. В отличие от последних 100
        записей, встроенных в детальные данные, этот endpoint постранично
        возвращает всю историю. См. [история
        доставок](/ru/management-api/travel-rule/list-deliveries).
      operationId: listTravelRuleDeliveries
      parameters:
        - name: transaction_id
          in: path
          required: true
          description: Стабильный UUID транзакции Didit, которой принадлежит перевод.
          schema:
            type: string
            format: uuid
        - name: limit
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 1000000
            default: 100
          description: >-
            Записей на странице. По умолчанию 100; большие значения
            ограничиваются 100; значение выше 1,000,000 возвращает `400`.
        - name: offset
          in: query
          schema:
            type: integer
            maximum: 1000000
            minimum: 0
            default: 0
          description: >-
            Количество записей, которые нужно пропустить, до 1,000,000. Большее
            значение возвращает `400`.
      responses:
        '200':
          description: История доставок с пагинацией, от самых старых к новым.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TravelRuleDeliveryLogPage'
              example:
                count: 1
                next: null
                previous: null
                results:
                  - uuid: 11111111-2222-4333-8444-555555555555
                    kind: SEND
                    status: DELIVERED
                    rail: NETWORK
                    created_at: '2026-11-01T10:00:00Z'
                    delivered_at: '2026-11-01T10:00:01Z'
                    detail_lines:
                      - Send
                      - Delivered
        '400':
          description: Отправлено значение `limit` или `offset` больше 1 000 000.
        '401':
          description: Неверный, отозванный или истёкший API-ключ.
        '403':
          description: >-
            Отсутствующий, недействительный или отозванный API-ключ, либо у
            ключа нет прав на чтение транзакций этого приложения. При отсутствии
            ключа возвращается `403`; при неверном, отозванном или истекшем
            ключе возвращается `401`.
        '404':
          description: Транзакция или перевод Travel Rule не найдены.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/transactions/11111111-2222-3333-4444-555555555555/travel-rule/deliveries/?limit=100&offset=0'
            \
              -H 'x-api-key: YOUR_API_KEY'
components:
  schemas:
    TravelRuleDeliveryLogPage:
      type: object
      required:
        - count
        - next
        - previous
        - results
      properties:
        count:
          type: integer
          minimum: 0
          description: >-
            Количество обычно ограничено 100; это не надёжный итог для больших
            историй. Переходите по next, пока он не станет null, независимо от
            count.
        next:
          type: string
          format: uri
          nullable: true
          description: URL следующей страницы или null.
        previous:
          type: string
          format: uri
          nullable: true
          description: URL предыдущей страницы или null.
        results:
          type: array
          items:
            $ref: '#/components/schemas/TravelRuleDeliveryLogEntry'
          description: >-
            Записи в порядке от старых к новым по времени создания, затем по
            идентификатору.
    TravelRuleDeliveryLogEntry:
      type: object
      description: Одна запись истории доставки, не зависящая от поставщика.
      required:
        - uuid
        - kind
        - status
        - rail
        - created_at
        - delivered_at
        - detail_lines
      properties:
        uuid:
          type: string
          format: uuid
          description: Идентификатор доставки.
        kind:
          type: string
          enum:
            - SEND
            - ANSWER
            - TXID
            - CANCEL
            - POLL
          description: >-
            Что содержит сообщение. `SEND`: первое сообщение перевода
            контрагенту (исходящее; канал передачи выбирается при отправке).
            `ANSWER`: ваше согласие или отклонение, направляемое запросившей
            сети (входящее). `TXID`: хеш ончейн-транзакции после завершения
            перевода. `CANCEL`: отмена после того, как вы отменили перевод.
            `POLL`: запрос статуса к сети, поддерживающей такую возможность,
            повторяемый каждые 5 минут, пока перевод ожидает ответа от
            контрагента.
        status:
          type: string
          enum:
            - QUEUED
            - SENDING
            - RETRYING
            - DELIVERED
            - FAILED
          description: Текущий статус доставки.
        rail:
          type: string
          nullable: true
          enum:
            - EMAIL
            - TRP
            - INTERNAL
            - NETWORK
            - null
          description: Тип транспорта, не привязанный к поставщику; null, пока не выбран.
        created_at:
          type: string
          format: date-time
          description: Когда была создана доставка.
        delivered_at:
          type: string
          format: date-time
          nullable: true
          description: Когда доставка завершилась, или null.
        detail_lines:
          type: array
          items:
            type: string
          description: >-
            Понятный тип сообщения и статус доставки. Не раскрывает транспортные
            payload и исходные ошибки.
      example:
        uuid: 11111111-2222-4333-8444-555555555555
        kind: SEND
        status: DELIVERED
        rail: NETWORK
        created_at: '2026-11-01T10:00:00Z'
        delivered_at: '2026-11-01T10:00:01Z'
        detail_lines:
          - Send
          - Delivered
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        API-ключ вашего приложения из раздела «Разработчикам» -> «API-ключи» в
        Business Console. Основной ключ имеет полный доступ. Именованный ключ
        может иметь ограниченную область действия: без доступа, чтение или
        запись для каждого ресурса, ограничение определенными сценариями или
        одобренными сессиями, списком IP-адресов и сроком действия. 401
        означает, что ключ неверен, отозван или его срок действия истек; 403
        означает, что ключ не был передан, у ключа нет доступа к этому ресурсу
        или действию, либо запрос поступил с адреса вне его списка IP-адресов;
        404 на маршруте сессии означает, что сессия не входит в сценарии или
        статусы ключа. Ключ без доступа к медиа получает URL изображений, видео
        и PDF как null, а ключ без прав на запись сессий получает ссылки на
        сессии и токены как null. См. https://docs.didit.me/console/api-keys.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.