---
title: "Link a Lane A draft to an intent"
method: POST
path: "/v1/payment-outcome-intents/{intentId}/draft-links"
tags: ["Payment outcome intents"]
---

# Link a Lane A draft to an intent

`POST /v1/payment-outcome-intents/{intentId}/draft-links`

## Request

- Base URL: `https://sandbox.api.infinite.dev`
- URL: `https://sandbox.api.infinite.dev/v1/payment-outcome-intents/{intentId}/draft-links`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/infinite/apis/infinite-api/docs/v1/payment-outcome-intents/:intentId/draft-links/post.ts> (a function with typed inputs; its response is checked against the schema)

Associate Lane A drafts while the intent is OPEN. Payee drafts (`eba_…`) are verified via account ownership. Transfer drafts (`tdraft_…`) require the MCP claim snapshot from `get_transfer_draft` (not AccountsService lookup).

## Path parameters

- `intentId` string, required

## Headers

- `X-API-Key` string

## Request body

- LinkPaymentOutcomeIntentDraftDto
  - `draftKind` 'PAYEE_DRAFT' | 'TRANSFER_DRAFT', required: PAYEE_DRAFT links a verified `eba_…` account. TRANSFER_DRAFT links an MCP `tdraft_…` with a verified snapshot payload.
  - `draftId` string, required: Lane A draft id (`eba_…` or `tdraft_…`).
  - `transferDraftSnapshot` LaneATransferDraftLinkSnapshotDto
    - `draftId` string, required
    - `customerId` string, required
    - `amountMinor` string, required
    - `sourceCurrency` string, required
    - `destinationCurrency` string, required
    - `destinationAccountId` string, required
    - `destinationRail` string, required
    - `sourceAccountId` string, nullable, required
    - `sourceRail` string, nullable, required
    - `paymentReason` string, nullable, required
    - `reference` string, nullable, required
    - `destinationCountry` string, nullable, required
    - `destinationCountryRequested` string, nullable
    - `requestDigest` string, required
    - `destinationAmountMinor` string, nullable

## Response `201`

- PaymentOutcomeIntentDraftLinkResponseDto
  - `id` string, required
  - `draftKind` 'PAYEE_DRAFT' | 'TRANSFER_DRAFT', required
  - `draftId` string, required
  - `linkedAt` string, date-time, required

## Other responses

- `401`: Unauthorized - Invalid or missing authentication credentials

## Changes

- **2026-10-03** `9f50af0b2ebf`: 1 breaking
  - added the pattern `^\d+$` to the request property `transferDraftSnapshot/allOf[#/components/schemas/LaneATransferDraftLinkSnapshotDto]/destinationAmountMinor`
- **2026-10-02** `603402a92e85`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/infinite/apis/infinite-api/changes/v1/payment-outcome-intents/:intentId/draft-links/post.md)

---

[API](https://skmtc.dev/infinite/apis/infinite-api.md) - [All operations](https://skmtc.dev/infinite/apis/infinite-api/llms.txt) - [OpenAPI document](https://skmtc.dev/infinite/apis/infinite-api/revisions/90065d3e6974?raw)
