**Last updated**: 07 April 2026 | [**Change log**](/access/products/payments/changelog/)

# Pay via AI Agent (Delegate token)

Enterprise

The delegate token is created as part of the [Agentic Commerce Protocol (ACP) flow for ChatGPT instant checkout](/access/products/ai/acp/)

## How to enable

After receiving the delegate token from the agent (e.g. ChatGPT) apply it in the Payments API request by setting:

* `instruction.method` to `card`
* `instruction.paymentInstrument.type` to `delegate`.


### Delegate Token


```json
{
  "transactionReference": "order1234",
  "merchant": {
    "entity": "default"
  },
  "instruction": {
    "method": "card", // [!code focus:5] // [!code highlight:5]
    "paymentInstrument": {
      "type": "delegate",
      "sessionHref": "https://try.access.worldpay.com/sessions/eyJrIjoxLCJkIjoialRBL0FFelBzcnZpNCtzRGNRemh0NzI0NE1rdUtjMUFJdjYxVnlibWZuUT0ifQ"
    },
    "customer": {
      "email": "john.appleseed@example.com",
      "phone": "00000000000",
      "ipAddress": "192.168.0.1"
    },
    "narrative": {
      "line1": "trading name"
    },
    "value": {
      "currency": "GBP",
      "amount": 42
    }
  }
}
```

### Feature limitations

The delegate token flow is currently restricted to guest card payments.

3DS, SCA Exemptions and Worldpay token creation are not available.

## Sequence diagram


```mermaid

sequenceDiagram
    participant Agent
    participant Merchant
    participant Sessions as Worldpay Sessions API
    participant PAPI as Worldpay Payments API
    Merchant-->>Agent: Product feed (step 1)
    Agent->>+Merchant: POST to /checkout_sessions (step 2)
    Merchant-->>-Agent: Return PSP information inc. checkoutId
    Agent->>+Sessions: POST to /sessions/agentic_commerce/delegate_payment (step 3)
    Sessions->>Sessions: Store delegate payment data
    Sessions-->>-Agent: Return delegate token (sessionHref)
    Agent->>+Merchant: POST to /checkout_sessions/{id}/complete {payment_data:href} (step 4)
    Merchant->>+PAPI: POST to /api/payments {instruction.paymentInstrument.sessionHref} (step 5)
    PAPI->>+Sessions: GET {sessionHref}
    Sessions->>Sessions: Lookup session
    Sessions-->>-PAPI: Return delegate payment data
    PAPI->>PAPI: Validate delegate payment data against instruction
    opt : if valid
        PAPI->>PAPI: Authorize payment
    end
    PAPI-->>-Merchant: Return payment outcome
    Merchant-->>-Agent: Return payment outcome
```