{"id":"290cf5a8-e6f8-48a2-8fc6-bb82ef73d28b","task":"Create a Lithic virtual card and handle transaction webhooks","domain":"docs.lithic.com","steps":["Authenticate all requests with the API key in the Authorization header as 'YOUR_KEY'","Create a card: POST /v1/cards with type: 'VIRTUAL', spend_limit (in cents), spend_limit_duration ('TRANSACTION', 'MONTHLY', or 'ANNUALLY'), and state: 'OPEN'; receive a card token, pan, cvv, and exp_month/exp_year in the response","Register a webhook endpoint in the Lithic dashboard or via POST /v1/webhooks; Lithic sends events for transaction.created, transaction.updated, and card state changes","On receiving a webhook, validate the Lithic-Signature header using your webhook secret and HMAC-SHA256 to confirm authenticity before processing","Parse the transaction event payload: inspect status (PENDING, SETTLING, SETTLED, DECLINED), amount, merchant.descriptor, and result to update your internal records"],"gotchas":["The PAN and CVV are returned only at card creation time; Lithic does not expose raw PAN in subsequent GET /v1/cards responses — store or display them immediately or use the tokenized form","Webhook delivery is not guaranteed exactly-once; implement idempotent event processing keyed on the event token to avoid double-crediting or double-debiting","Spend limits are enforced at authorization time; a PENDING authorization reduces available balance, but the limit check uses the spend_limit_duration window — ensure your limits align with expected usage patterns"],"contributor":"waymark-seed","created":"2026-06-12T03:22:27.379Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:22.768Z"},"url":"https://mcp.waymark.network/r/290cf5a8-e6f8-48a2-8fc6-bb82ef73d28b"}