Delivery revocations

Delivery revocations are permanent emergency fences for delivery evidence that must no longer be trusted. Use one after a callback signing key compromise, a broken callback revision, an unsafe method revision, or a Location incident.

Archiving a configuration resource stops it from appearing in new quotes but does not invalidate evidence already issued. A revocation invalidates issued quotes immediately. A current selection that depends on the target is released the next time it is read. This distinction is why revocations are separate from lifecycle transitions.

Revocations cannot be edited or deleted. Store the returned revocation ID and merchant note with the incident record that authorized the action.

Routes#

  • POST/v1/delivery-revocationsRequired API key scope: commerce.delivery.writeReference for POST /v1/delivery-revocations

    Permanently fences a compromised dependency. Call it only during an incident after identifying the exact dependency and revision. Example: POST /v1/delivery-revocations for delivery_rate_callback_revision drcbr_123.

  • GET/v1/delivery-revocations/{delivery_revocation_id}Required API key scopes: commerce.delivery.read or commerce.delivery.writeReference for GET /v1/delivery-revocations/{delivery_revocation_id}

    Reads the permanent incident record. Call it when auditing why a quote or selection was invalidated.

For example:

JSON
{
  "reason": "credential_compromise",
  "target": {
    "target_type": "delivery_rate_callback_revision",
    "delivery_rate_callback_id": "drcb_123",
    "delivery_rate_callback_revision_id": "drcbr_123"
  },
  "merchant_note": "Signing key exposure reported by the rate service"
}

The Delivery revocation object#

Every field on a delivery revocation, as returned by retrieve and carried by the endpoints below.

Attributes

created_atstringRequired

RFC3339 timestamp.

delivery_revocation_idstringRequired
estimated_impactobjectRequired
merchant_notestring
reasonenumRequired
  • unsafe_configuration
  • location_unavailable
  • credential_compromise
  • legal_requirement
  • other
targetone ofRequired

A typed revocation target. Each target_type accepts only its resource-specific identifiers and concurrency field.

JSON
{
  "created_at": "2026-08-02T16:00:00Z",
  "delivery_revocation_id": "example",
  "estimated_impact": {
    "active_quote_count": 1,
    "current_selection_count": 1
  },
  "reason": "unsafe_configuration",
  "target": {
    "location_geography_revision": 1,
    "location_id": "loc_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "target_type": "location_geography"
  }
}

Revoke delivery dependency#

POST/v1/delivery-revocationsIdempotent

Requires scope commerce.delivery.write

Permanently fences one exact method, endpoint, signing key, revision, or Location geography version. Issued quotes are revoked immediately. Current selections are released the next time they are read. Stable method and callback-endpoint targets require expected_version so a concurrent publication cannot broaden the revocation.

Request body

merchant_notestring
reasonenumRequired
  • unsafe_configuration
  • location_unavailable
  • credential_compromise
  • legal_requirement
  • other
targetone ofRequired

A typed revocation target. Each target_type accepts only its resource-specific identifiers and concurrency field.

Response · 201

dataobjectRequired
metaobject
request_idstring
curl -X POST https://api.withflintpay.com/v1/delivery-revocations \
  -H "Flint-Version: 2026-09-07" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: a-unique-key" \
  -d '{
    "reason": "unsafe_configuration",
    "target": {
      "location_geography_revision": 1,
      "location_id": "loc_01K1P6G4M7H2N8Q9R3S5T6V7WX",
      "target_type": "location_geography"
    }
  }'
curl https://api.withflintpay.com/v1/delivery-revocations/{delivery_revocation_id} \
  -H "Flint-Version: 2026-09-07" \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "created_at": "2026-08-02T16:00:00Z",
    "delivery_revocation_id": "example",
    "estimated_impact": {
      "active_quote_count": 1,
      "current_selection_count": 1
    },
    "reason": "unsafe_configuration",
    "target": {
      "location_geography_revision": 1,
      "location_id": "loc_01K1P6G4M7H2N8Q9R3S5T6V7WX",
      "target_type": "location_geography"
    }
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Was this helpful?