Skip to content

Linked cards (Beta) ​

Beta

Linked cards are in beta and only available to some wallets. If the wallet owner doesn't have access, these endpoints return 404 with code: "NOT_FOUND". The response shapes may change.

These are read-only endpoints. They let an agent see which payment cards the wallet owner has linked, and which card mandates (CARD_USD, see Mandates) the agent holds on each card.

Both endpoints require Authorization: Bearer <agent-jwt>. Responses use this format:

json
{ "success": true, "data": { ... } }
{ "success": false, "error": { "code": "...", "message": "..." } }

List linked cards ​

GET/api/vic/agent/cardsBearer agent-jwt
bash
curl "https://walletapi.fluxapay.xyz/api/vic/agent/cards?limit=20" \
  -H "Authorization: Bearer $JWT_TOKEN"
ParamDescription
limitPage size, 1–100.
cursornextCursor from the previous page.

Any other query parameter returns 400 invalid_request.

json
{
  "success": true,
  "data": {
    "cards": [
      { "id": "3f6c2b1e-8d4a-4c7e-9b2f-1a2b3c4d5e6f", "status": "ACTIVE", "brand": "visa", "last4": "4242", "expMonth": 12, "expYear": 2028 }
    ],
    "nextCursor": null
  }
}

List the agent's mandates on a card ​

GET/api/vic/agent/cards/:cardId/mandatesBearer agent-jwt
bash
curl https://walletapi.fluxapay.xyz/api/vic/agent/cards/3f6c2b1e-8d4a-4c7e-9b2f-1a2b3c4d5e6f/mandates \
  -H "Authorization: Bearer $JWT_TOKEN"
json
{
  "success": true,
  "data": {
    "cardId": "3f6c2b1e-8d4a-4c7e-9b2f-1a2b3c4d5e6f",
    "mandates": [
      {
        "mandateId": "mand_Q2h8x0b1Yc3k9ZpLmN4rTw",
        "status": "signed",
        "currency": "CARD_USD",
        "decimals": 2,
        "limitAmount": "12000",
        "spentAmount": "0",
        "pendingSpentAmount": "0",
        "remainingAmount": "12000",
        "isEnabled": true,
        "naturalLanguage": "Buy one pair of running shoes, up to $120",
        "purpose": "Buy one pair of running shoes, up to $120",
        "sourceCardId": "3f6c2b1e-8d4a-4c7e-9b2f-1a2b3c4d5e6f",
        "cardActivatedAt": null,
        "validFrom": "2026-10-27T10:00:00.000Z",
        "validUntil": "2026-10-27T11:00:00.000Z",
        "signedAt": "2026-10-27T10:02:00.000Z",
        "createdAt": "2026-10-27T10:00:00.000Z",
        "approvalUrl": null
      }
    ]
  }
}

Amounts are in cents (decimals: 2).

statusMeaning
pending_signatureAwaiting the user's signature. Show approvalUrl.
signedApproved and usable.
disabledThe user turned it off.
not_yet_validApproved, but its validity window hasn't started yet.
expiredPast validUntil.
any other valueTreat as processing (if recently signed) or not usable.

Errors ​

HTTPerror.codeMeaning
400invalid_request / invalid_card_id / invalid_card_list_limit / invalid_card_list_cursorInvalid query parameter or card ID (card IDs are UUIDs).
401agent_auth_failed / wrong_token_typeInvalid agent JWT, or a VC was sent.
403agent_not_authorizedThe agent isn't linked to an authorized wallet.
404NOT_FOUNDLinked cards aren't available for this wallet.
5xx–The card service is temporarily unavailable. Retry later. The response includes retryable.

Released under the MIT License.