XipID

Challenges

Cancel a challenge

POST https://api.xipid.org/challenges/{id}/cancel

Closes an open challenge as canceled: the page then tells the person the request was withdrawn, and the outcome challenge.canceled is posted to the callback URL.

Scope: any live key of the brand.

Limits: 1,000 requests a minute per key and 2,000 requests a minute per source address; every answer says what is left in X-RateLimit-Remaining, and a refusal when to come back in Retry-After.

Idempotency: takes an Idempotency-Key, which it requires: a retry under the same key is answered what the first request was, for 24 hours, and the key sent with another request is refused.

Changes: 2026-09-26: added.

Parameters

Answers

200 OK

The challenge, canceled.

Its headers: X-Request-Id, Xip-Version, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

{
  "id": "01JD2R5W8Y3K6M9P2S5V8X1Z4B",
  "brand_id": "01JD2R1A3C5E7G9J1K3M5N7P9Q",
  "status": "canceled",
  "subject": {
    "id": "01JD2R2B4D6F8H0J2K4M6N8P0Q",
    "pairwise_id": "Vb3kQ9xR2mTz7LpW4nYc8d",
    "reference": "acct_4417"
  },
  "request": {
    "type": "wire",
    "title": "Wire to Ridgeline Fabrication",
    "summary": "The first payment on invoice 2291.",
    "money": {
      "amount_minor": 4500000,
      "currency": "USD"
    },
    "counterparty": "Ridgeline Fabrication",
    "reference": "INV-2291",
    "requested_at": "2026-11-19T18:04:00.000Z"
  },
  "policy": {
    "checks": [
      "liveness",
      "face_match"
    ],
    "allow_decline": true,
    "allow_note": true,
    "expires_in_seconds": 600
  },
  "callback": {
    "url": "https://acme-bank.example/xipid/outcomes"
  },
  "metadata": {
    "branch": "downtown"
  },
  "checks": [],
  "text": {
    "status": "sent"
  },
  "created_at": "2026-11-19T18:04:00.512Z",
  "sent_at": "2026-11-19T18:04:01.204Z",
  "expires_at": "2026-11-19T18:14:00.512Z",
  "decided_at": "2026-11-19T18:05:02.140Z"
}

Errors