What the grant allows
The wallet keeps working normally. Enablement does not lock it or make Dakota a signer on the customer’s own payments.
Enable a wallet
1. Have the customer sign the intent. The intent contains only three fields, so you can build it straight away:settlement_destination is refused with 400.
2. Submit it with POST /wallets/{wallet_id}/card_enablement:
state: "attaching".
3. Wait for wallet.card_enablement.completed. The enablement is then active, and you can issue cards against the wallet. The webhook payload records what the customer signed: the intent hash, the signing key, and the settlement destination. Keep it as your acceptance record. GET /wallets/{wallet_id}/card_enablement returns the same state.
States
When enablement is refused
Dakota checks these before it records anything, so a refused call leaves nothing behind.Retrying a failed attempt
Replaying the call on anactive enablement does nothing. While it is attaching, how you retry depends on what went wrong:

