Delivery configuration

Delivery configuration defines which shipment, pickup, and local-delivery choices Flint can offer before payment. It covers reusable profiles, zones, location sets, methods, pricing, quotes, previews, and selections. Fulfillment records remain under Fulfillment.

Quote and select delivery at checkout#

Fulfillment configuration answers three separate questions:

  1. A profile says whether a catalog item requires fulfillment and which fulfillment types may satisfy it.
  2. A method says how one buyer-visible choice is routed, checked for eligibility, priced, taxed, scheduled, and labeled.
  3. A quote evaluates the methods pinned to one checkout. A selection commits one option for every required choice group.

Profiles, zones, location sets, methods, and callback endpoints are versioned resources. A configuration change publishes an immutable revision for future checkouts. Existing checkout sessions continue using their pinned revisions. Use the resource's version as expected_version when a PATCH changes pinnable configuration.

Rate-table methods return their ordered rates inline in configuration.pricing.rate_table.rates. Manage an individual rate through /v1/delivery-methods/{delivery_method_id}/rates and its stable delivery_rate_id. Create, update, and delete operations require the method's current version as expected_version, publish a new method revision, and return the next delivery_method_version write fence.

The three selectable fulfillment types are shipment, pickup, and local_delivery. delivery is not an alias for local_delivery.

Every environment gets an active General profile when you create a physical catalog item without an explicit profile. Listing delivery profiles is read-only and does not create it. General requires a quote, allows shipment, pickup, and local delivery, uses the chosen method's origin, combines compatible obligations, and keeps each line item whole. Create another profile only when a catalog item needs different fulfillment rules.

Configure delivery#

Set up reusable resources before assigning methods to a payment link:

  1. Use the active General profile, or create and activate a profile with different rules. A new physical product variant that omits delivery_profile_id receives the General profile.
  2. Create and activate any zones or location sets referenced by a method. The method's origin.type determines whether Flint uses a location set for allocation or buyer pickup.
  3. Create a method with one type and its typed configuration, then activate it.
  4. Replace the payment link's complete method assignment with PUT /v1/payment-links/{payment_link_id}/delivery-methods.

Each resource family has its own request schema. Method-only fields such as type, description, display_position, and recommendation_priority are rejected by profile, zone, location-set, and callback endpoints. Callback endpoints accept transport configuration but not metadata.

This creates a profile whose items require a quoted shipment or pickup:

Bash
curl -X POST \
  https://api.withflintpay.com/v1/delivery-profiles \
  -H "Authorization: Bearer flint_test_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: create-standard-profile" \
  -d '{
    "name": "Standard physical goods",
    "configuration": {
      "requirement": "required",
      "resolution_mode": "quote",
      "allowed_types": ["shipment", "pickup"],
      "origin_policy": {
        "type": "inventory_routing"
      },
      "combination_policy": "combine_when_compatible",
      "splitting_policy": "whole_line_item"
    }
  }'

Creation publishes revision 1 and defaults to status: "inactive". Send status: "active" when every referenced dependency already exists and is active. Otherwise activate the method after its dependencies are ready.

A method request uses a closed, typed configuration. Predicate nodes contain exactly one operator. Leaf operators such as country, state, and postal_code are direct fields and are never wrapped in leaf:

JSON
{
  "country": {
    "subject": "destination_address",
    "values": ["US", "CA"]
  }
}

Eligibility can also match the current customer using customer_group, customer_verified, customer_has_email, and customer_has_phone_number. An anonymous buyer does not match a false-valued customer condition. Flint snapshots only these allowlisted facts. Customer metadata, names, notes, and other private fields are not part of fulfillment eligibility.

Zone expressions accept only geographic conditions: country, state, postal_code, and radius. Put customer and window_time conditions in the method's eligibility expression.

Bash
curl -X POST \
  https://api.withflintpay.com/v1/delivery-methods \
  -H "Authorization: Bearer flint_test_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: create-standard-shipping" \
  -d '{
    "name": "Standard shipping",
    "type": "shipment",
    "configuration": {
      "origin": {
        "type": "fixed_location",
        "location_id": "loc_..."
      },
      "pricing": {
        "type": "fixed",
        "fixed": {
          "currency_options": {
            "USD": {"amount": 900}
          }
        }
      },
      "estimate": {"type": "none"}
    }
  }'

Omitting eligibility offers the method everywhere you serve. Omitting taxable and tax_category inherits the merchant's delivery tax defaults, then derives any unset category from the method type. Flint derives window selection from estimate.type and uses zero for the optional lifetime and selection guarantee settings. Inside currency_options, the map key supplies an omitted currency value. Calculated, callback, and caller-supplied pricing must include minimum_option_lifetime_seconds, which must be less than 900.

HTTP
POST /v1/delivery-profiles/{delivery_profile_id}/activate
POST /v1/delivery-methods/{delivery_method_id}/activate

An activation or archive request that is blocked by another active resource returns DELIVERY_RESOURCE_HAS_DEPENDENCIES with the dependency type and blocking count. A stale expected_version returns DELIVERY_RESOURCE_VERSION_CONFLICT with the current version. Omitting expected_version while changing a field that publishes a revision returns DELIVERY_EXPECTED_VERSION_REQUIRED; its param identifies the field that triggered the write fence. A method's buyer-visible name, description, display position, and recommendation priority are pinnable and publish revisions. Presentation-only changes to other resource families do not.

Assign delivery_profile_id when a product variant or bundle component should not use its inherited or default profile. Reads return the assigned profile, its current revision, and delivery_configuration_status. Filter product-variant and bundle-component lists by delivery_profile_id or by delivery_configuration_status=configured|action_required to find assignments that need attention.

HTTP
GET /v1/products/{product_id}/variants?delivery_profile_id=dprof_...
GET /v1/bundles/{bundle_id}/components?delivery_configuration_status=action_required

Clearing delivery_profile_id on an update leaves the catalog relationship in action_required until another active profile is assigned.

Buyer authentication#

A buyer-facing checkout request authenticates with both headers:

HTTP
X-Checkout-Session-ID: cs_...
X-Checkout-Session-Secret: ...

The checkout session ID in the header must match the ID in the route. Merchant API keys and authorized partner tokens can use the same checkout delivery routes.

Customer-dependent rules use the checkout's snapshotted allowlisted facts. Creating a new quote evaluates the current checkout and customer state.

Read the current checkout state#

Read the checkout session and effective selection before creating or replacing a quote:

HTTP
GET /v1/checkout-sessions/{checkout_session_id}
GET /v1/checkout-sessions/{checkout_session_id}/delivery-selections/current

The effective selection's source is provisional while checkout owns it and committed after payment commits it to the order. Terminal checkout sessions remain readable, including their effective selection and order, so a receipt or return visit does not need to start a new quote.

For Flint-owned pricing, an open checkout read can carry a derived current quote. A checkout that uses callback or caller-supplied pricing reports that it requires an explicit quote. Reads never call a merchant callback.

Create a quote#

Create a quote when the buyer supplies or corrects a destination, chooses a pickup location, or the checkout reports that an explicit quote is required:

Bash
curl -X POST \
  https://api.withflintpay.com/v1/checkout-sessions/cs_123/delivery-quotes \
  -H "X-Checkout-Session-ID: cs_123" \
  -H "X-Checkout-Session-Secret: CHECKOUT_SECRET" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: quote-cart-42-address-2" \
  -d '{
    "expected_delivery_selection_id": null,
    "destination_address": {
      "line1": "120 Kent Avenue",
      "city": "Brooklyn",
      "state": "NY",
      "postal_code": "11249",
      "country": "US"
    }
  }'

Launch destination validation accepts US and CA. Other country codes return a field-level validation error instead of producing a quote that downstream evaluators cannot support.

Pass the exact current selection ID when replacing an existing selection. If DELIVERY_SELECTION_CHANGED is returned, read the effective selection again and create the replacement quote from that new basis. Do not retry with a cached selection ID.

Each choice_group contains candidate outcomes and selectable options. An option owns its amount, expiry, arrival estimate, recipient requirements, and any offered windows. A quote is selectable only when every required choice group has a current available option.

window_start_at and window_end_at are absolute RFC 3339 instants. timezone names the IANA timezone to use when displaying offered windows. Do not display those instants as UTC unless timezone is UTC. When present, arrival_estimate contains buyer-facing local calendar dates and its resolved timezone. delivery_plan.type is single_delivery or multiple_deliveries; a multi-delivery plan also reports its planned count and overall first-arrival and completion bounds.

Use input_requirements to build quote and selection forms without parsing prose. Each requirement has a stable field_path, a purpose (quote, selection, or pickup_availability), and a typed constraint. Constraint types include string, address_field, email, phone, coordinate, time_window, and caller_supplied_rate. Length limits, formats, supported countries, allowed values, and offered windows are machine-readable fields when applicable. Selection requirements also identify the exact choice groups, methods, and options they apply to.

Find an available pickup location#

Query pickup availability before creating a pickup quote:

Bash
curl -X POST \
  https://api.withflintpay.com/v1/checkout-sessions/cs_123/query-pickup-availability \
  -H "X-Checkout-Session-ID: cs_123" \
  -H "X-Checkout-Session-Secret: CHECKOUT_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "expected_delivery_selection_id": null,
    "buyer_location": {
      "type": "address",
      "address": {
        "postal_code": "11249",
        "country": "US"
      }
    }
  }'

This query does not reserve inventory. Create a quote with the selected result's location_id as pickup_location_id. Quote creation checks the location and inventory again, so handle inventory changes by querying availability again.

Supply rates from your server#

A caller_supplied method uses a two-request exchange with merchant authentication:

  1. Create a quote without method_results. The response is a non-selectable pending quote with pending_caller_rate_requests.
  2. Price every requested method and choice-group pair, then create a second quote with the pending quote's ID as basis_delivery_quote_id and the complete method_results array.

The second request must repeat the planning inputs from the pending request, including destination_address, buyer_location, pickup_location_id, and inventory_assignments when supplied. Use a new idempotency key because the priced quote has a different request body. Changed or stale inputs return DELIVERY_QUOTE_BASIS_INVALID.

JSON
{
  "basis_delivery_quote_id": "dqt_...",
  "destination_address": {
    "postal_code": "11249",
    "country": "US"
  },
  "method_results": [
    {
      "delivery_method_revision_id": "dmetr_...",
      "delivery_choice_group_id": "dcgrp_...",
      "outcome": {
        "type": "available",
        "amount_money": { "amount": 900, "currency": "USD" },
        "expires_at": "2030-07-30T18:30:00Z",
        "selection_guarantee_expires_at": "2030-07-30T19:00:00Z",
        "service_level": "same_day"
      }
    }
  ]
}

The result array must contain exactly one outcome for every pending request. Extra, missing, or duplicate pairs are rejected. Buyer credentials cannot submit caller-supplied rates.

Select options and windows#

Create a selection with one choice per required group:

Bash
curl -X POST \
  https://api.withflintpay.com/v1/checkout-sessions/cs_123/delivery-selections \
  -H "X-Checkout-Session-ID: cs_123" \
  -H "X-Checkout-Session-Secret: CHECKOUT_SECRET" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: select-cart-42-3" \
  -d '{
    "delivery_quote_id": "dqt_...",
    "expected_delivery_selection_id": null,
    "choices": [
      {
        "delivery_choice_group_id": "dcgrp_...",
        "delivery_option_id": "dopt_...",
        "input": {
          "shipment": {
            "delivery_window_id": "fwin_..."
          }
        }
      }
    ],
    "destination_address": {
      "line1": "120 Kent Avenue",
      "city": "Brooklyn",
      "state": "NY",
      "postal_code": "11249",
      "country": "US"
    },
    "recipient": {
      "name": "Ada Lovelace",
      "email": "ada@example.com",
      "phone": "+14155552671"
    }
  }'

Send exactly one input object matching the option type. An empty matching object is valid when the choice has no instructions or offered window. Send delivery_window_id inside that typed input whenever the option has window_selection: "offered". The selected window can change the option price and can expire before the parent option. A lapsed window or quote returns a typed expiry error; create a current quote and ask the buyer to choose again.

Selection-purpose input_requirements is the complete source of truth for required recipient fields. Each option's recipient_requirements is the option-scoped convenience projection of those same name, email, and phone rules. Email and phone values are validated using the declared format. Unknown recipient fields are rejected.

Buyer credentials cannot set external_system or external_reference_id. Those fields are merchant-owned correlation values and require server authentication.

Clear a provisional selection with its exact current ID:

HTTP
DELETE /v1/checkout-sessions/{checkout_session_id}/delivery-selections/current?expected_delivery_selection_id=dsel_...
Idempotency-Key: clear-cart-42-4

The compare-and-swap ID prevents one browser tab from clearing a newer selection written by another tab. A committed order selection cannot be cleared from checkout.

Payment and recovery#

Payment revalidates the selection, its calculation deadline, inventory authority, configuration revisions, and selected window before it starts a payment attempt. An expired promotion, coupon, option, or window cannot be extended by retrying payment.

Handle these errors by reading current state before retrying:

CodeRecovery
DELIVERY_SELECTION_CHANGEDRead the effective selection, then quote and select against its exact ID.
DELIVERY_QUOTE_EXPIREDCreate a current quote and ask the buyer to select a current option.
DELIVERY_SELECTION_EXPIREDCreate a current quote and selection.
DELIVERY_CALCULATION_EXPIREDRequote so discounts, tax, and delivery economics are recalculated together.
PAYMENT_ATTEMPT_IN_PROGRESSFinish or cancel the payment attempt that owns the selection.

Pricing strategies#

A method uses exactly one pricing strategy:

  • fixed: one configured amount per currency.
  • rate_table: the highest-priority matching rate wins.
  • tiered: contiguous bands start at zero and the final band is unbounded.
  • calculated: Flint combines configured base, distance, weight, and handling components.
  • callback: Flint sends one signed, bounded request for the choice group's callback methods.
  • caller_supplied: your server completes a pending quote with normalized method results.

Flint does not clamp callback or caller-supplied amounts. Values outside the method's configured currency bounds become cannot_calculate.

For a callback method, set configuration.quote_input_fields to the smallest closed set your rate service needs. Supported values are the address roots, line1, line2, city, state, postal_code, and country under destination_address or buyer_location, plus buyer_location.coordinate. Missing declared values become typed quote input requirements before Flint calls your server.

Hosted checkout rejects required caller_supplied methods because a buyer page cannot provide merchant-owned rates. In embedded checkout, create the quote from your server. A buyer-authenticated quote request on a checkout containing a caller-supplied method returns DELIVERY_CALLER_RATES_UNAVAILABLE_TO_BUYER.

Callback and caller-supplied outcomes can include a private merchant_reference of at most 500 characters. When that option is selected, Flint copies the reference into the encrypted selection and payment snapshot. Merchant-authenticated selection reads return it on the selected choice. Buyer-authenticated reads and public economic quote projections omit it.

Create a delivery rate callback directly. Flint owns its outbound transport and signing-key set, so the request does not accept a webhook endpoint ID:

Bash
curl -X POST \
  https://api.withflintpay.com/v1/delivery-rate-callbacks \
  -H "Authorization: Bearer flint_test_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: create-delivery-rate-callback" \
  -d '{
    "name": "Fulfillment rates",
    "configuration": {
      "url": "https://rates.example.com/flint/delivery-rates"
    }
  }'

The create response returns key_id and secret. Store the secret immediately because later reads omit it. Flint defaults request_timeout_seconds to 2, preview_enabled to false, both byte limits to 262144, and redirect_policy to reject. Each immutable delivery rate callback revision pins those values. Updating the URL publishes a new revision and does not rewrite an existing checkout's callback destination.

Routine signing-key rotation accepts both the outgoing and incoming key for one hour. Use delivery revocation to fence a compromised key immediately.

Implement a delivery rate callback#

Flint sends one JSON POST for all callback-priced candidate methods in a choice group. The event type is delivery.rate_evaluation. Test deliveries use delivery.rate_evaluation.test and set test: true in the body.

The request includes only address and coordinate fields declared by at least one method in the batch. It never includes customer eligibility facts, address-verification state, provider payloads, customer metadata, or private notes. Pricing bases, item quantity, weight, distances, and execution allocations remain available because they are required to calculate the rate.

The request uses the same signing scheme as Flint webhooks:

HeaderValue
webhook-idThe delivery_rate_evaluation_id. It remains stable when Flint retries the same evaluation.
webhook-timestampUnix timestamp used by Standard Webhooks verification.
webhook-signatureStandard Webhooks signature. Verify it against the raw request body using the delivery rate callback secret.
X-Flint-SignatureLegacy Flint signature over the raw body.
X-Flint-Event-Typedelivery.rate_evaluation or delivery.rate_evaluation.test.
X-Flint-Key-IDThe current signing key ID.
X-Flint-Key-IDsEvery key ID whose signature may be present during the one-hour rotation overlap.

Use the Webhooks guide for Standard Webhooks and legacy signature verification examples. Verify before parsing JSON, reject stale timestamps, and accept any listed signature during rotation.

A request has this shape:

JSON
{
  "delivery_rate_evaluation_id": "dreval_...",
  "key_id": "cbkey_...",
  "checkout_session_id": "cs_...",
  "order_id": "ord_...",
  "delivery_quote_revision": 4,
  "quote_creation_identity": "a stable quote-attempt identity",
  "delivery_feasibility_plan_fingerprint": "sha256...",
  "delivery_choice_group_id": "dcgrp_...",
  "choice_group_fingerprint": "sha256...",
  "delivery_rate_callback_revision_id": "dcbr_...",
  "currency": "USD",
  "destination": {
    "postal_code": "11249",
    "country": "US"
  },
  "candidates": [
    {
      "delivery_method_revision_id": "dmetr_...",
      "execution_legs": [
        {
          "delivery_execution_leg_id": "dleg_...",
          "fingerprint": "sha256...",
          "origin_location_id": "loc_...",
          "origin_geography_revision": 7,
          "allocations": [
            {
              "demand_key": "line:oli_...",
              "order_line_item_id": "oli_...",
              "quantity": 1,
              "merchandise_value_money": {
                "amount": 2500,
                "currency": "USD"
              },
              "allowed_types": ["shipment"]
            }
          ]
        }
      ],
      "pricing": {
        "currency": "USD",
        "bases": {
          "order_subtotal": 2500,
          "choice_group_subtotal": 2500
        },
        "total_weight_grams": 900,
        "total_item_quantity": 1,
        "leg_distance_meters": [8200]
      }
    }
  ],
  "evaluated_at": "2030-07-30T18:00:00Z"
}

Return one result for every candidate method revision and echo the evaluation ID:

JSON
{
  "delivery_rate_evaluation_id": "dreval_...",
  "ttl_seconds": 120,
  "method_results": [
    {
      "delivery_method_revision_id": "dmetr_...",
      "outcome": {
        "type": "available",
        "amount_money": {
          "amount": 900,
          "currency": "USD"
        },
        "expires_at": "2030-07-30T18:15:00Z",
        "selection_guarantee_expires_at": "2030-07-30T18:30:00Z",
        "service_level": "same_day",
        "merchant_reference": "rate-request-8472"
      }
    }
  ]
}

An outcome is one of:

  • available: requires amount_money. It may include one fixed window, offered_windows, window_selection, window_pricing, expiry fields, service_level, and a private merchant_reference.
  • unavailable: include a stable unavailable_reason, such as destination_not_served.
  • cannot_calculate: include a stable failure_category and whether the failure is retryable.

Return a 2xx response with one JSON object and no trailing data. Unknown response fields are rejected. The response must stay within the endpoint's maximum_response_bytes. A missing, duplicate, or malformed method result becomes cannot_calculate for that method without invalidating valid sibling results.

ttl_seconds controls response caching. It defaults to 120 seconds and cannot exceed 300 seconds. Responses containing cannot_calculate outcomes are cached for at most 30 seconds.

Flint applies the configured request timeout to each attempt. A transport failure or non-2xx response is retried once immediately with the same delivery_rate_evaluation_id. Malformed successful JSON is not retried. Your handler must therefore deduplicate by webhook-id or delivery_rate_evaluation_id before performing side effects. Redirects are never followed.

After 30 consecutive failures, the callback circuit opens and Flint drops its methods without calling the endpoint. Quote diagnostics report callback_circuit_open. The callback resource exposes circuit_state and circuit_failure_count. Flint automatically allows a half-open probe after the recovery delay and closes the circuit after a valid response.

Emergency revocation#

POST /v1/delivery-revocations permanently fences compromised or unsafe configuration. Prefer an exact revision, signing key, or Location geography version when you know it. A stable delivery_method or delivery_rate_callback target must include that resource's current version as expected_version. Flint resolves the stable target to that exact revision under a write lock, so a concurrent publication cannot revoke a revision you did not inspect.

Revocation immediately invalidates affected unowned quotes and provisional selections. Committed order and payment history remains readable for audit and fulfillment execution.

Previews and diagnostics#

POST /v1/delivery-previews evaluates an orderless cart without creating a checkout, selection, inventory hold, or retained address. Use it to test configuration and display likely options. A preview is not selection authority.

Merchant-authenticated quote reads and delivery diagnostics include resource-specific method revisions and safe failure categories. Buyer reads contain actionable outcomes and input requirements but omit warehouse identity, callback configuration, secrets, private correlation, raw provider values, and exact inventory.

Endpoints

List delivery location sets#

GET/v1/delivery-location-setsRequires scope: commerce.delivery.read or commerce.delivery.write

Returns delivery location sets in a stable, cursor-paginated order.

Query parameters
page_sizeinteger

Number of resources to return.

page_tokenstring

Opaque cursor returned by the previous page.

querystring

Filter by Flint ID or name. Delivery methods also match their description.

statusenum

Filter by lifecycle status.

inactiveactivearchivedrevoked
delivery_method_idstring

Filter by an active current method that references this resource.

Response · 200
dataarray of objectrequired
metaobject
next_page_tokenstring
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/delivery-location-sets \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": [
    {
      "configuration": {
        "location_ids": [
          "example"
        ]
      },
      "created_at": "2026-08-02T16:00:00Z",
      "current_delivery_location_set_revision_id": "dlsr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
      "delivery_location_set_id": "dls_01K1P6G4M7H2N8Q9R3S5T6V7WX",
      "name": "Standard delivery",
      "status": "inactive",
      "updated_at": "2026-08-02T16:00:00Z",
      "version": 0
    }
  ],
  "next_page_token": "page_2",
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Create delivery location set#

POST/v1/delivery-location-setsIdempotentRequires scope: commerce.delivery.write

Delivery location sets pin reusable sets of Locations for allocation or buyer pickup. Creation publishes immutable revision 1 and leaves lifecycle activation explicit.

Request body
configurationobjectrequired
metadatamap of string
namestringrequired
Response · 201
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-location-sets \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: a-unique-key" \
  -d '{
    "configuration": {
      "location_ids": [
        "example"
      ]
    },
    "name": "Standard delivery"
  }'
JSON
{
  "data": {
    "configuration": {
      "location_ids": [
        "example"
      ]
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_location_set_revision_id": "dlsr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_location_set_id": "dls_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Get delivery location set#

GET/v1/delivery-location-sets/{delivery_location_set_id}Requires scope: commerce.delivery.read or commerce.delivery.write

Returns the current revision and lifecycle state for one delivery location set.

Path parameters
delivery_location_set_idstringrequired

Flint delivery location set ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/delivery-location-sets/dls_01K1P6G4M7H2N8Q9R3S5T6V7WX \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "configuration": {
      "location_ids": [
        "example"
      ]
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_location_set_revision_id": "dlsr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_location_set_id": "dls_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Update delivery location set#

PATCH/v1/delivery-location-sets/{delivery_location_set_id}IdempotentRequires scope: commerce.delivery.write

Sparsely updates mutable fields. A change to pinned configuration publishes a new immutable revision and requires expected_version.

Path parameters
delivery_location_set_idstringrequired

Flint delivery location set ID.

Request body
configurationobject
expected_versioninteger
metadatamap of string
namestring
Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X PATCH https://api.withflintpay.com/v1/delivery-location-sets/dls_01K1P6G4M7H2N8Q9R3S5T6V7WX \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: a-unique-key" \
  -d '{}'
JSON
{
  "data": {
    "configuration": {
      "location_ids": [
        "example"
      ]
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_location_set_revision_id": "dlsr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_location_set_id": "dls_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Activate delivery location set#

POST/v1/delivery-location-sets/{delivery_location_set_id}/activateIdempotentRequires scope: commerce.delivery.write

Transitions the delivery location set lifecycle after validating its current pinned dependencies.

Path parameters
delivery_location_set_idstringrequired

Flint delivery location set ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-location-sets/dls_01K1P6G4M7H2N8Q9R3S5T6V7WX/activate \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "configuration": {
      "location_ids": [
        "example"
      ]
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_location_set_revision_id": "dlsr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_location_set_id": "dls_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Archive delivery location set#

POST/v1/delivery-location-sets/{delivery_location_set_id}/archiveIdempotentRequires scope: commerce.delivery.write

Transitions the delivery location set lifecycle after validating its current pinned dependencies.

Path parameters
delivery_location_set_idstringrequired

Flint delivery location set ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-location-sets/dls_01K1P6G4M7H2N8Q9R3S5T6V7WX/archive \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "configuration": {
      "location_ids": [
        "example"
      ]
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_location_set_revision_id": "dlsr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_location_set_id": "dls_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Deactivate delivery location set#

POST/v1/delivery-location-sets/{delivery_location_set_id}/deactivateIdempotentRequires scope: commerce.delivery.write

Transitions the delivery location set lifecycle after validating its current pinned dependencies.

Path parameters
delivery_location_set_idstringrequired

Flint delivery location set ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-location-sets/dls_01K1P6G4M7H2N8Q9R3S5T6V7WX/deactivate \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "configuration": {
      "location_ids": [
        "example"
      ]
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_location_set_revision_id": "dlsr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_location_set_id": "dls_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

List delivery location set revisions#

GET/v1/delivery-location-sets/{delivery_location_set_id}/revisionsRequires scope: commerce.delivery.read or commerce.delivery.write

Returns immutable revisions for one delivery location set in descending revision order.

Path parameters
delivery_location_set_idstringrequired

Flint delivery location set ID.

Query parameters
page_sizeinteger

Number of revisions to return.

page_tokenstring

Opaque cursor returned by the previous page.

Response · 200
dataarray of objectrequired
metaobject
next_page_tokenstring
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/delivery-location-sets/dls_01K1P6G4M7H2N8Q9R3S5T6V7WX/revisions \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": [
    {
      "configuration": {
        "location_ids": [
          "example"
        ]
      },
      "created_at": "2026-08-02T16:00:00Z",
      "delivery_location_set_id": "dls_01K1P6G4M7H2N8Q9R3S5T6V7WX",
      "delivery_location_set_revision_id": "dlsr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
      "revision": 0
    }
  ],
  "next_page_token": "page_2",
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Get delivery location set revision#

GET/v1/delivery-location-sets/{delivery_location_set_id}/revisions/{delivery_location_set_revision_id}Requires scope: commerce.delivery.read or commerce.delivery.write

Returns one immutable pinned revision of the delivery location set.

Path parameters
delivery_location_set_idstringrequired

Flint delivery location set ID.

delivery_location_set_revision_idstringrequired

Flint delivery location set revision ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/delivery-location-sets/dls_01K1P6G4M7H2N8Q9R3S5T6V7WX/revisions/dlsr_01K1P6G4M7H2N8Q9R3S5T6V7WX \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "configuration": {
      "location_ids": [
        "example"
      ]
    },
    "created_at": "2026-08-02T16:00:00Z",
    "delivery_location_set_id": "dls_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_location_set_revision_id": "dlsr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "revision": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

List delivery methods#

GET/v1/delivery-methodsRequires scope: commerce.delivery.read or commerce.delivery.write

Returns delivery methods in a stable, cursor-paginated order.

Query parameters
page_sizeinteger

Number of resources to return.

page_tokenstring

Opaque cursor returned by the previous page.

querystring

Filter by Flint ID or name. Delivery methods also match their description.

statusenum

Filter by lifecycle status.

inactiveactivearchivedrevoked
typeenum

Filter by method type.

shipmentlocal_deliverypickup
delivery_zone_idstring

Filter by referenced delivery zone.

delivery_location_set_idstring

Filter by referenced delivery location set.

delivery_rate_callback_idstring

Filter by referenced callback endpoint.

location_idstring

Filter by referenced Location.

Response · 200
dataarray of objectrequired
metaobject
next_page_tokenstring
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/delivery-methods \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": [
    {
      "configuration": {
        "estimate": {
          "type": "none"
        },
        "minimum_option_lifetime_seconds": 0,
        "offer_windows": true,
        "origin": {
          "delivery_location_set_id": "dls_01K1P6G4M7H2N8Q9R3S5T6V7WX",
          "type": "allocated_origin_group"
        },
        "pricing": {
          "calculated": {},
          "type": "calculated"
        },
        "selection_guarantee_seconds": 0,
        "tax_category": "service_fee"
      },
      "created_at": "2026-08-02T16:00:00Z",
      "current_delivery_method_revision_id": "dmetr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
      "delivery_method_id": "dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX",
      "name": "Standard delivery",
      "status": "inactive",
      "updated_at": "2026-08-02T16:00:00Z",
      "version": 0
    }
  ],
  "next_page_token": "page_2",
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Create delivery method#

POST/v1/delivery-methodsIdempotentRequires scope: commerce.delivery.write

Delivery methods combine eligibility, pricing, schedules, estimates, tax treatment, and execution behavior. Creation publishes immutable revision 1 and leaves lifecycle activation explicit.

Request body
option 1object
option 2object
option 3object
Response · 201
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTDELIVERY_STATUS_INVALIDINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-methods \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: a-unique-key" \
  -d '{
    "configuration": {
      "origin": {
        "location_id": "loc_01K1P6G4M7H2N8Q9R3S5T6V7WX",
        "type": "fixed_location"
      },
      "pricing": {
        "calculated": {},
        "type": "calculated"
      }
    },
    "type": "shipment"
  }'
JSON
{
  "data": {
    "configuration": {
      "estimate": {
        "type": "none"
      },
      "minimum_option_lifetime_seconds": 0,
      "offer_windows": true,
      "origin": {
        "delivery_location_set_id": "dls_01K1P6G4M7H2N8Q9R3S5T6V7WX",
        "type": "allocated_origin_group"
      },
      "pricing": {
        "calculated": {},
        "type": "calculated"
      },
      "selection_guarantee_seconds": 0,
      "tax_category": "service_fee"
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_method_revision_id": "dmetr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_method_id": "dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Get delivery method#

GET/v1/delivery-methods/{delivery_method_id}Requires scope: commerce.delivery.read or commerce.delivery.write

Returns the current revision and lifecycle state for one delivery method.

Path parameters
delivery_method_idstringrequired

Flint delivery method ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/delivery-methods/dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "configuration": {
      "estimate": {
        "type": "none"
      },
      "minimum_option_lifetime_seconds": 0,
      "offer_windows": true,
      "origin": {
        "delivery_location_set_id": "dls_01K1P6G4M7H2N8Q9R3S5T6V7WX",
        "type": "allocated_origin_group"
      },
      "pricing": {
        "calculated": {},
        "type": "calculated"
      },
      "selection_guarantee_seconds": 0,
      "tax_category": "service_fee"
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_method_revision_id": "dmetr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_method_id": "dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Update delivery method#

PATCH/v1/delivery-methods/{delivery_method_id}IdempotentRequires scope: commerce.delivery.write

Sparsely updates mutable fields. A change to pinned configuration publishes a new immutable revision and requires expected_version.

Path parameters
delivery_method_idstringrequired

Flint delivery method ID.

Request body
configurationone of
descriptionstring
display_positioninteger
expected_versioninteger
metadatamap of string
namestring
recommendation_priorityinteger
Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X PATCH https://api.withflintpay.com/v1/delivery-methods/dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: a-unique-key" \
  -d '{}'
JSON
{
  "data": {
    "configuration": {
      "estimate": {
        "type": "none"
      },
      "minimum_option_lifetime_seconds": 0,
      "offer_windows": true,
      "origin": {
        "delivery_location_set_id": "dls_01K1P6G4M7H2N8Q9R3S5T6V7WX",
        "type": "allocated_origin_group"
      },
      "pricing": {
        "calculated": {},
        "type": "calculated"
      },
      "selection_guarantee_seconds": 0,
      "tax_category": "service_fee"
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_method_revision_id": "dmetr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_method_id": "dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Activate delivery method#

POST/v1/delivery-methods/{delivery_method_id}/activateIdempotentRequires scope: commerce.delivery.write

Transitions the delivery method lifecycle after validating its current pinned dependencies.

Path parameters
delivery_method_idstringrequired

Flint delivery method ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-methods/dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX/activate \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "configuration": {
      "estimate": {
        "type": "none"
      },
      "minimum_option_lifetime_seconds": 0,
      "offer_windows": true,
      "origin": {
        "delivery_location_set_id": "dls_01K1P6G4M7H2N8Q9R3S5T6V7WX",
        "type": "allocated_origin_group"
      },
      "pricing": {
        "calculated": {},
        "type": "calculated"
      },
      "selection_guarantee_seconds": 0,
      "tax_category": "service_fee"
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_method_revision_id": "dmetr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_method_id": "dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Archive delivery method#

POST/v1/delivery-methods/{delivery_method_id}/archiveIdempotentRequires scope: commerce.delivery.write

Transitions the delivery method lifecycle after validating its current pinned dependencies.

Path parameters
delivery_method_idstringrequired

Flint delivery method ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-methods/dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX/archive \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "configuration": {
      "estimate": {
        "type": "none"
      },
      "minimum_option_lifetime_seconds": 0,
      "offer_windows": true,
      "origin": {
        "delivery_location_set_id": "dls_01K1P6G4M7H2N8Q9R3S5T6V7WX",
        "type": "allocated_origin_group"
      },
      "pricing": {
        "calculated": {},
        "type": "calculated"
      },
      "selection_guarantee_seconds": 0,
      "tax_category": "service_fee"
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_method_revision_id": "dmetr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_method_id": "dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Deactivate delivery method#

POST/v1/delivery-methods/{delivery_method_id}/deactivateIdempotentRequires scope: commerce.delivery.write

Transitions the delivery method lifecycle after validating its current pinned dependencies.

Path parameters
delivery_method_idstringrequired

Flint delivery method ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-methods/dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX/deactivate \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "configuration": {
      "estimate": {
        "type": "none"
      },
      "minimum_option_lifetime_seconds": 0,
      "offer_windows": true,
      "origin": {
        "delivery_location_set_id": "dls_01K1P6G4M7H2N8Q9R3S5T6V7WX",
        "type": "allocated_origin_group"
      },
      "pricing": {
        "calculated": {},
        "type": "calculated"
      },
      "selection_guarantee_seconds": 0,
      "tax_category": "service_fee"
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_method_revision_id": "dmetr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_method_id": "dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

List delivery rates#

GET/v1/delivery-methods/{delivery_method_id}/ratesRequires scope: commerce.delivery.read or commerce.delivery.write

List delivery rates.

Path parameters
delivery_method_idstringrequired

Flint delivery method ID.

Query parameters
page_sizeinteger

Number of rates to return.

page_tokenstring

Opaque cursor returned by the previous page.

Response · 200
dataarray of objectrequired
metaobject
next_page_tokenstring
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/delivery-methods/dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX/rates \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": [
    {
      "configuration": {
        "currency_options": {},
        "when": {
          "zone": {
            "delivery_zone_id": "dzone_01K1P6G4M7H2N8Q9R3S5T6V7WX",
            "subject": "destination_address"
          }
        }
      },
      "created_at": "2026-08-02T16:00:00Z",
      "delivery_method_id": "dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX",
      "delivery_method_version": 1,
      "delivery_rate_id": "example",
      "priority": 0,
      "updated_at": "2026-08-02T16:00:00Z"
    }
  ],
  "next_page_token": "page_2",
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Create delivery rate#

POST/v1/delivery-methods/{delivery_method_id}/ratesIdempotentRequires scope: commerce.delivery.write

Create delivery rate.

Path parameters
delivery_method_idstringrequired

Flint delivery method ID.

Request body
configurationobjectrequired

Typed rate predicate and per-currency Money values.

expected_versionintegerrequired
priorityintegerrequired
Response · 201
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-methods/dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX/rates \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: a-unique-key" \
  -d '{
    "configuration": {
      "currency_options": {},
      "when": {
        "zone": {
          "delivery_zone_id": "dzone_01K1P6G4M7H2N8Q9R3S5T6V7WX",
          "subject": "destination_address"
        }
      }
    },
    "expected_version": 1,
    "priority": 0
  }'
JSON
{
  "data": {
    "configuration": {
      "currency_options": {},
      "when": {
        "zone": {
          "delivery_zone_id": "dzone_01K1P6G4M7H2N8Q9R3S5T6V7WX",
          "subject": "destination_address"
        }
      }
    },
    "created_at": "2026-08-02T16:00:00Z",
    "delivery_method_id": "dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_method_version": 1,
    "delivery_rate_id": "example",
    "priority": 0,
    "updated_at": "2026-08-02T16:00:00Z"
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Get delivery rate#

GET/v1/delivery-methods/{delivery_method_id}/rates/{delivery_rate_id}Requires scope: commerce.delivery.read or commerce.delivery.write

Get delivery rate.

Path parameters
delivery_method_idstringrequired

Flint delivery method ID.

delivery_rate_idstringrequired

Flint delivery rate ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/delivery-methods/dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX/rates/{delivery_rate_id} \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "configuration": {
      "currency_options": {},
      "when": {
        "zone": {
          "delivery_zone_id": "dzone_01K1P6G4M7H2N8Q9R3S5T6V7WX",
          "subject": "destination_address"
        }
      }
    },
    "created_at": "2026-08-02T16:00:00Z",
    "delivery_method_id": "dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_method_version": 1,
    "delivery_rate_id": "example",
    "priority": 0,
    "updated_at": "2026-08-02T16:00:00Z"
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Update delivery rate#

PATCH/v1/delivery-methods/{delivery_method_id}/rates/{delivery_rate_id}IdempotentRequires scope: commerce.delivery.write

Update delivery rate.

Path parameters
delivery_method_idstringrequired

Flint delivery method ID.

delivery_rate_idstringrequired

Flint delivery rate ID.

Request body
configurationobject

Typed rate predicate and per-currency Money values.

expected_versionintegerrequired
priorityinteger
Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X PATCH https://api.withflintpay.com/v1/delivery-methods/dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX/rates/{delivery_rate_id} \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: a-unique-key" \
  -d '{
    "expected_version": 1
  }'
JSON
{
  "data": {
    "configuration": {
      "currency_options": {},
      "when": {
        "zone": {
          "delivery_zone_id": "dzone_01K1P6G4M7H2N8Q9R3S5T6V7WX",
          "subject": "destination_address"
        }
      }
    },
    "created_at": "2026-08-02T16:00:00Z",
    "delivery_method_id": "dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_method_version": 1,
    "delivery_rate_id": "example",
    "priority": 0,
    "updated_at": "2026-08-02T16:00:00Z"
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Delete delivery rate#

DELETE/v1/delivery-methods/{delivery_method_id}/rates/{delivery_rate_id}IdempotentRequires scope: commerce.delivery.write

Delete delivery rate.

Path parameters
delivery_method_idstringrequired

Flint delivery method ID.

delivery_rate_idstringrequired

Flint delivery rate ID.

Query parameters
expected_versionintegerrequired

Current delivery_method_version. Deleting a rate publishes the next immutable method revision.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X DELETE https://api.withflintpay.com/v1/delivery-methods/dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX/rates/{delivery_rate_id} \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "configuration": {
      "currency_options": {},
      "when": {
        "zone": {
          "delivery_zone_id": "dzone_01K1P6G4M7H2N8Q9R3S5T6V7WX",
          "subject": "destination_address"
        }
      }
    },
    "created_at": "2026-08-02T16:00:00Z",
    "delivery_method_id": "dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_method_version": 1,
    "delivery_rate_id": "example",
    "priority": 0,
    "updated_at": "2026-08-02T16:00:00Z"
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

List delivery method revisions#

GET/v1/delivery-methods/{delivery_method_id}/revisionsRequires scope: commerce.delivery.read or commerce.delivery.write

Returns immutable revisions for one delivery method in descending revision order.

Path parameters
delivery_method_idstringrequired

Flint delivery method ID.

Query parameters
page_sizeinteger

Number of revisions to return.

page_tokenstring

Opaque cursor returned by the previous page.

Response · 200
dataarray of objectrequired
metaobject
next_page_tokenstring
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/delivery-methods/dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX/revisions \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": [
    {
      "configuration": {
        "estimate": {
          "type": "none"
        },
        "minimum_option_lifetime_seconds": 0,
        "offer_windows": true,
        "origin": {
          "delivery_location_set_id": "dls_01K1P6G4M7H2N8Q9R3S5T6V7WX",
          "type": "allocated_origin_group"
        },
        "pricing": {
          "calculated": {},
          "type": "calculated"
        },
        "selection_guarantee_seconds": 0,
        "tax_category": "service_fee"
      },
      "created_at": "2026-08-02T16:00:00Z",
      "delivery_method_id": "dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX",
      "delivery_method_revision_id": "dmetr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
      "revision": 0
    }
  ],
  "next_page_token": "page_2",
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Get delivery method revision#

GET/v1/delivery-methods/{delivery_method_id}/revisions/{delivery_method_revision_id}Requires scope: commerce.delivery.read or commerce.delivery.write

Returns one immutable pinned revision of the delivery method.

Path parameters
delivery_method_idstringrequired

Flint delivery method ID.

delivery_method_revision_idstringrequired

Flint delivery method revision ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/delivery-methods/dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX/revisions/dmetr_01K1P6G4M7H2N8Q9R3S5T6V7WX \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "configuration": {
      "estimate": {
        "type": "none"
      },
      "minimum_option_lifetime_seconds": 0,
      "offer_windows": true,
      "origin": {
        "delivery_location_set_id": "dls_01K1P6G4M7H2N8Q9R3S5T6V7WX",
        "type": "allocated_origin_group"
      },
      "pricing": {
        "calculated": {},
        "type": "calculated"
      },
      "selection_guarantee_seconds": 0,
      "tax_category": "service_fee"
    },
    "created_at": "2026-08-02T16:00:00Z",
    "delivery_method_id": "dmet_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_method_revision_id": "dmetr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "revision": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Get physical delivery profile default#

GET/v1/delivery-profile-defaults/physicalRequires scope: commerce.delivery.read or commerce.delivery.write

Returns the active delivery profile assigned by default when a physical variant omits delivery_profile_id.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/delivery-profile-defaults/physical \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "created_at": "2026-08-02T16:00:00Z",
    "delivery_profile_id": "dprof_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "product_type": "physical",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Update physical delivery profile default#

PUT/v1/delivery-profile-defaults/physicalIdempotentRequires scope: commerce.delivery.write

Changes the active profile assigned to newly created physical variants that omit delivery_profile_id. Existing assignments remain pinned until explicitly changed or the default is applied.

Request body
delivery_profile_idstringrequired
expected_versionintegerrequired

Current version of the physical delivery profile default.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X PUT https://api.withflintpay.com/v1/delivery-profile-defaults/physical \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: a-unique-key" \
  -d '{
    "delivery_profile_id": "dprof_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "expected_version": 1
  }'
JSON
{
  "data": {
    "created_at": "2026-08-02T16:00:00Z",
    "delivery_profile_id": "dprof_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "product_type": "physical",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Apply physical delivery profile default#

POST/v1/delivery-profile-defaults/physical/applyIdempotentRequires scope: commerce.delivery.write

Assigns the current default only to unassigned physical variants and bundle components. If the environment has no default yet, this provisions its built-in General profile first. Explicit and inactive-profile assignments are preserved.

Request body
expected_versionintegerrequired

Current version of the physical delivery profile default.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-profile-defaults/physical/apply \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: a-unique-key" \
  -d '{
    "expected_version": 1
  }'
JSON
{
  "data": {
    "bundle_components_updated": 1,
    "delivery_profile_id": "dprof_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "product_type": "physical",
    "product_variants_updated": 1
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

List delivery profiles#

GET/v1/delivery-profilesRequires scope: commerce.delivery.read or commerce.delivery.write

Returns delivery profiles in a stable, cursor-paginated order.

Query parameters
page_sizeinteger

Number of resources to return.

page_tokenstring

Opaque cursor returned by the previous page.

querystring

Filter by Flint ID or name. Delivery methods also match their description.

statusenum

Filter by lifecycle status.

inactiveactivearchivedrevoked
resolution_modeenum

Filter by profile resolution mode.

quotemanual
include_diagnosticsboolean

Compute catalog and delivery-configuration diagnostics for every profile in this page.

Response · 200
dataarray of objectrequired
metaobject
next_page_tokenstring
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/delivery-profiles \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": [
    {
      "configuration": {
        "requirement": "none"
      },
      "created_at": "2026-08-02T16:00:00Z",
      "current_delivery_profile_revision_id": "dprofr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
      "delivery_profile_id": "dprof_01K1P6G4M7H2N8Q9R3S5T6V7WX",
      "name": "Standard delivery",
      "status": "inactive",
      "updated_at": "2026-08-02T16:00:00Z",
      "version": 0
    }
  ],
  "next_page_token": "page_2",
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Create delivery profile#

POST/v1/delivery-profilesIdempotentRequires scope: commerce.delivery.write

Delivery profiles define reusable fulfillment behavior assigned to catalog obligations. Creation publishes immutable revision 1 and leaves lifecycle activation explicit.

Request body
configurationone ofrequired
metadatamap of string
namestringrequired
Response · 201
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-profiles \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: a-unique-key" \
  -d '{
    "configuration": {
      "requirement": "none"
    },
    "name": "Standard delivery"
  }'
JSON
{
  "data": {
    "configuration": {
      "requirement": "none"
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_profile_revision_id": "dprofr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_profile_id": "dprof_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Get delivery profile#

GET/v1/delivery-profiles/{delivery_profile_id}Requires scope: commerce.delivery.read or commerce.delivery.write

Returns the current revision and lifecycle state for one delivery profile.

Path parameters
delivery_profile_idstringrequired

Flint delivery profile ID.

Query parameters
include_diagnosticsboolean

Compute catalog and delivery-configuration diagnostics for this profile.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/delivery-profiles/dprof_01K1P6G4M7H2N8Q9R3S5T6V7WX \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "configuration": {
      "requirement": "none"
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_profile_revision_id": "dprofr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_profile_id": "dprof_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Update delivery profile#

PATCH/v1/delivery-profiles/{delivery_profile_id}IdempotentRequires scope: commerce.delivery.write

Sparsely updates mutable fields. A change to pinned configuration publishes a new immutable revision and requires expected_version.

Path parameters
delivery_profile_idstringrequired

Flint delivery profile ID.

Request body
configurationone of
expected_versioninteger
metadatamap of string
namestring
Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X PATCH https://api.withflintpay.com/v1/delivery-profiles/dprof_01K1P6G4M7H2N8Q9R3S5T6V7WX \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: a-unique-key" \
  -d '{}'
JSON
{
  "data": {
    "configuration": {
      "requirement": "none"
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_profile_revision_id": "dprofr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_profile_id": "dprof_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Activate delivery profile#

POST/v1/delivery-profiles/{delivery_profile_id}/activateIdempotentRequires scope: commerce.delivery.write

Transitions the delivery profile lifecycle after validating its current pinned dependencies.

Path parameters
delivery_profile_idstringrequired

Flint delivery profile ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-profiles/dprof_01K1P6G4M7H2N8Q9R3S5T6V7WX/activate \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "configuration": {
      "requirement": "none"
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_profile_revision_id": "dprofr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_profile_id": "dprof_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Archive delivery profile#

POST/v1/delivery-profiles/{delivery_profile_id}/archiveIdempotentRequires scope: commerce.delivery.write

Transitions the delivery profile lifecycle after validating its current pinned dependencies.

Path parameters
delivery_profile_idstringrequired

Flint delivery profile ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-profiles/dprof_01K1P6G4M7H2N8Q9R3S5T6V7WX/archive \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "configuration": {
      "requirement": "none"
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_profile_revision_id": "dprofr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_profile_id": "dprof_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Deactivate delivery profile#

POST/v1/delivery-profiles/{delivery_profile_id}/deactivateIdempotentRequires scope: commerce.delivery.write

Transitions the delivery profile lifecycle after validating its current pinned dependencies.

Path parameters
delivery_profile_idstringrequired

Flint delivery profile ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-profiles/dprof_01K1P6G4M7H2N8Q9R3S5T6V7WX/deactivate \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "configuration": {
      "requirement": "none"
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_profile_revision_id": "dprofr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_profile_id": "dprof_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

List delivery profile revisions#

GET/v1/delivery-profiles/{delivery_profile_id}/revisionsRequires scope: commerce.delivery.read or commerce.delivery.write

Returns immutable revisions for one delivery profile in descending revision order.

Path parameters
delivery_profile_idstringrequired

Flint delivery profile ID.

Query parameters
page_sizeinteger

Number of revisions to return.

page_tokenstring

Opaque cursor returned by the previous page.

Response · 200
dataarray of objectrequired
metaobject
next_page_tokenstring
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/delivery-profiles/dprof_01K1P6G4M7H2N8Q9R3S5T6V7WX/revisions \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": [
    {
      "configuration": {
        "requirement": "none"
      },
      "created_at": "2026-08-02T16:00:00Z",
      "delivery_profile_id": "dprof_01K1P6G4M7H2N8Q9R3S5T6V7WX",
      "delivery_profile_revision_id": "dprofr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
      "revision": 0
    }
  ],
  "next_page_token": "page_2",
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Get delivery profile revision#

GET/v1/delivery-profiles/{delivery_profile_id}/revisions/{delivery_profile_revision_id}Requires scope: commerce.delivery.read or commerce.delivery.write

Returns one immutable pinned revision of the delivery profile.

Path parameters
delivery_profile_idstringrequired

Flint delivery profile ID.

delivery_profile_revision_idstringrequired

Flint delivery profile revision ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/delivery-profiles/dprof_01K1P6G4M7H2N8Q9R3S5T6V7WX/revisions/dprofr_01K1P6G4M7H2N8Q9R3S5T6V7WX \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "configuration": {
      "requirement": "none"
    },
    "created_at": "2026-08-02T16:00:00Z",
    "delivery_profile_id": "dprof_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_profile_revision_id": "dprofr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "revision": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

List delivery rate callbacks#

GET/v1/delivery-rate-callbacksRequires scope: commerce.delivery.read or commerce.delivery.write

Returns delivery rate callbacks in a stable, cursor-paginated order.

Query parameters
page_sizeinteger

Number of resources to return.

page_tokenstring

Opaque cursor returned by the previous page.

querystring

Filter by Flint ID or name. Delivery methods also match their description.

statusenum

Filter by lifecycle status.

inactiveactivearchivedrevoked
delivery_method_idstring

Filter by an active current method that references this resource.

Response · 200
dataarray of objectrequired
metaobject
next_page_tokenstring
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/delivery-rate-callbacks \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": [
    {
      "circuit_failure_count": 0,
      "circuit_state": "closed",
      "configuration": {
        "url": "https://merchant.example/delivery"
      },
      "created_at": "2026-08-02T16:00:00Z",
      "current_delivery_rate_callback_revision_id": "dcbr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
      "delivery_rate_callback_id": "dcb_01K1P6G4M7H2N8Q9R3S5T6V7WX",
      "name": "Standard delivery",
      "status": "inactive",
      "updated_at": "2026-08-02T16:00:00Z",
      "version": 0
    }
  ],
  "next_page_token": "page_2",
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Create delivery rate callback#

POST/v1/delivery-rate-callbacksIdempotentRequires scope: commerce.delivery.write

Delivery callback endpoints pin shared outbound callback transport configuration. Creation publishes immutable revision 1 and leaves lifecycle activation explicit.

Request body
configurationobjectrequired
namestringrequired
Response · 201
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-rate-callbacks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: a-unique-key" \
  -d '{
    "configuration": {
      "url": "https://merchant.example/delivery"
    },
    "name": "Standard delivery"
  }'
JSON
{
  "data": {
    "circuit_failure_count": 0,
    "circuit_state": "closed",
    "configuration": {
      "url": "https://merchant.example/delivery"
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_rate_callback_revision_id": "dcbr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_rate_callback_id": "dcb_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Get delivery rate callback#

GET/v1/delivery-rate-callbacks/{delivery_rate_callback_id}Requires scope: commerce.delivery.read or commerce.delivery.write

Returns the current revision and lifecycle state for one delivery rate callback.

Path parameters
delivery_rate_callback_idstringrequired

Flint delivery rate callback ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/delivery-rate-callbacks/dcb_01K1P6G4M7H2N8Q9R3S5T6V7WX \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "circuit_failure_count": 0,
    "circuit_state": "closed",
    "configuration": {
      "url": "https://merchant.example/delivery"
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_rate_callback_revision_id": "dcbr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_rate_callback_id": "dcb_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Update delivery rate callback#

PATCH/v1/delivery-rate-callbacks/{delivery_rate_callback_id}IdempotentRequires scope: commerce.delivery.write

Sparsely updates mutable fields. A change to pinned configuration publishes a new immutable revision and requires expected_version.

Path parameters
delivery_rate_callback_idstringrequired

Flint delivery rate callback ID.

Request body
configurationobject
expected_versioninteger
namestring
Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X PATCH https://api.withflintpay.com/v1/delivery-rate-callbacks/dcb_01K1P6G4M7H2N8Q9R3S5T6V7WX \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: a-unique-key" \
  -d '{}'
JSON
{
  "data": {
    "circuit_failure_count": 0,
    "circuit_state": "closed",
    "configuration": {
      "url": "https://merchant.example/delivery"
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_rate_callback_revision_id": "dcbr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_rate_callback_id": "dcb_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Activate delivery rate callback#

POST/v1/delivery-rate-callbacks/{delivery_rate_callback_id}/activateIdempotentRequires scope: commerce.delivery.write

Transitions the delivery rate callback lifecycle after validating its current pinned dependencies.

Path parameters
delivery_rate_callback_idstringrequired

Flint delivery rate callback ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-rate-callbacks/dcb_01K1P6G4M7H2N8Q9R3S5T6V7WX/activate \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "circuit_failure_count": 0,
    "circuit_state": "closed",
    "configuration": {
      "url": "https://merchant.example/delivery"
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_rate_callback_revision_id": "dcbr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_rate_callback_id": "dcb_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Archive delivery rate callback#

POST/v1/delivery-rate-callbacks/{delivery_rate_callback_id}/archiveIdempotentRequires scope: commerce.delivery.write

Transitions the delivery rate callback lifecycle after validating its current pinned dependencies.

Path parameters
delivery_rate_callback_idstringrequired

Flint delivery rate callback ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-rate-callbacks/dcb_01K1P6G4M7H2N8Q9R3S5T6V7WX/archive \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "circuit_failure_count": 0,
    "circuit_state": "closed",
    "configuration": {
      "url": "https://merchant.example/delivery"
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_rate_callback_revision_id": "dcbr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_rate_callback_id": "dcb_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Check fulfillment callback connection#

POST/v1/delivery-rate-callbacks/{delivery_rate_callback_id}/check-connectionIdempotentRequires scope: commerce.delivery.write

Sends a minimal signed probe to verify endpoint reachability and callback credentials without running a synthetic rate evaluation.

Path parameters
delivery_rate_callback_idstringrequired

Flint delivery rate callback ID.

Response · 201
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDREQUEST_TIMEOUTRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-rate-callbacks/dcb_01K1P6G4M7H2N8Q9R3S5T6V7WX/check-connection \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "checked_at": "2026-08-02T16:00:00Z",
    "delivery_rate_callback_id": "dcb_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_rate_callback_revision_id": "dcbr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "key_id": "example",
    "latency_milliseconds": 1,
    "status": "succeeded"
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Deactivate delivery rate callback#

POST/v1/delivery-rate-callbacks/{delivery_rate_callback_id}/deactivateIdempotentRequires scope: commerce.delivery.write

Transitions the delivery rate callback lifecycle after validating its current pinned dependencies.

Path parameters
delivery_rate_callback_idstringrequired

Flint delivery rate callback ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-rate-callbacks/dcb_01K1P6G4M7H2N8Q9R3S5T6V7WX/deactivate \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "circuit_failure_count": 0,
    "circuit_state": "closed",
    "configuration": {
      "url": "https://merchant.example/delivery"
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_rate_callback_revision_id": "dcbr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_rate_callback_id": "dcb_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

List delivery rate callback revisions#

GET/v1/delivery-rate-callbacks/{delivery_rate_callback_id}/revisionsRequires scope: commerce.delivery.read or commerce.delivery.write

Returns immutable revisions for one delivery rate callback in descending revision order.

Path parameters
delivery_rate_callback_idstringrequired

Flint delivery rate callback ID.

Query parameters
page_sizeinteger

Number of revisions to return.

page_tokenstring

Opaque cursor returned by the previous page.

Response · 200
dataarray of objectrequired
metaobject
next_page_tokenstring
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/delivery-rate-callbacks/dcb_01K1P6G4M7H2N8Q9R3S5T6V7WX/revisions \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": [
    {
      "configuration": {
        "url": "https://merchant.example/delivery"
      },
      "created_at": "2026-08-02T16:00:00Z",
      "delivery_rate_callback_id": "dcb_01K1P6G4M7H2N8Q9R3S5T6V7WX",
      "delivery_rate_callback_revision_id": "dcbr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
      "revision": 0
    }
  ],
  "next_page_token": "page_2",
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Get delivery rate callback revision#

GET/v1/delivery-rate-callbacks/{delivery_rate_callback_id}/revisions/{delivery_rate_callback_revision_id}Requires scope: commerce.delivery.read or commerce.delivery.write

Returns one immutable pinned revision of the delivery rate callback.

Path parameters
delivery_rate_callback_idstringrequired

Flint delivery rate callback ID.

delivery_rate_callback_revision_idstringrequired

Flint delivery rate callback revision ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/delivery-rate-callbacks/dcb_01K1P6G4M7H2N8Q9R3S5T6V7WX/revisions/dcbr_01K1P6G4M7H2N8Q9R3S5T6V7WX \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "configuration": {
      "url": "https://merchant.example/delivery"
    },
    "created_at": "2026-08-02T16:00:00Z",
    "delivery_rate_callback_id": "dcb_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_rate_callback_revision_id": "dcbr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "revision": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Rotate fulfillment callback signing key#

POST/v1/delivery-rate-callbacks/{delivery_rate_callback_id}/rotate-secretIdempotentRequires scope: commerce.delivery.write

Rotates the endpoint signing secret, accepts both keys for one hour, and returns the new secret once.

Path parameters
delivery_rate_callback_idstringrequired

Flint delivery rate callback ID.

Response · 201
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-rate-callbacks/dcb_01K1P6G4M7H2N8Q9R3S5T6V7WX/rotate-secret \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "delivery_rate_callback_id": "dcb_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "key_id": "example",
    "secret": "example"
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Test fulfillment callback delivery#

POST/v1/delivery-rate-callbacks/{delivery_rate_callback_id}/test-deliveriesIdempotentRequires scope: commerce.delivery.write

Sends a signed fulfillment callback with synthetic non-PII data and returns a safe result.

Path parameters
delivery_rate_callback_idstringrequired

Flint delivery rate callback ID.

Response · 201
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDREQUEST_TIMEOUTRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-rate-callbacks/dcb_01K1P6G4M7H2N8Q9R3S5T6V7WX/test-deliveries \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "delivery_rate_callback_id": "dcb_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_rate_callback_revision_id": "dcbr_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "key_id": "example",
    "latency_milliseconds": 1,
    "status": "succeeded",
    "tested_at": "2026-08-02T16:00:00Z"
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

List delivery zones#

GET/v1/delivery-zonesRequires scope: commerce.delivery.read or commerce.delivery.write

Returns delivery zones in a stable, cursor-paginated order.

Query parameters
page_sizeinteger

Number of resources to return.

page_tokenstring

Opaque cursor returned by the previous page.

querystring

Filter by Flint ID or name. Delivery methods also match their description.

statusenum

Filter by lifecycle status.

inactiveactivearchivedrevoked
delivery_method_idstring

Filter by an active current method that references this resource.

Response · 200
dataarray of objectrequired
metaobject
next_page_tokenstring
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/delivery-zones \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": [
    {
      "configuration": {
        "country": {
          "subject": "destination_address",
          "values": [
            "example"
          ]
        }
      },
      "created_at": "2026-08-02T16:00:00Z",
      "current_delivery_zone_revision_id": "dzoner_01K1P6G4M7H2N8Q9R3S5T6V7WX",
      "delivery_zone_id": "dzone_01K1P6G4M7H2N8Q9R3S5T6V7WX",
      "name": "Standard delivery",
      "status": "inactive",
      "updated_at": "2026-08-02T16:00:00Z",
      "version": 0
    }
  ],
  "next_page_token": "page_2",
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Create delivery zone#

POST/v1/delivery-zonesIdempotentRequires scope: commerce.delivery.write

Delivery zones define versioned geographic eligibility. Creation publishes immutable revision 1 and leaves lifecycle activation explicit.

Request body
configurationone ofrequired

A reusable geographic predicate containing only country, state, postal_code, and radius conditions.

metadatamap of string
namestringrequired
Response · 201
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-zones \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: a-unique-key" \
  -d '{
    "configuration": {
      "country": {
        "subject": "destination_address",
        "values": [
          "example"
        ]
      }
    },
    "name": "Standard delivery"
  }'
JSON
{
  "data": {
    "configuration": {
      "country": {
        "subject": "destination_address",
        "values": [
          "example"
        ]
      }
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_zone_revision_id": "dzoner_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_zone_id": "dzone_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Get delivery zone#

GET/v1/delivery-zones/{delivery_zone_id}Requires scope: commerce.delivery.read or commerce.delivery.write

Returns the current revision and lifecycle state for one delivery zone.

Path parameters
delivery_zone_idstringrequired

Flint delivery zone ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/delivery-zones/dzone_01K1P6G4M7H2N8Q9R3S5T6V7WX \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "configuration": {
      "country": {
        "subject": "destination_address",
        "values": [
          "example"
        ]
      }
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_zone_revision_id": "dzoner_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_zone_id": "dzone_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Update delivery zone#

PATCH/v1/delivery-zones/{delivery_zone_id}IdempotentRequires scope: commerce.delivery.write

Sparsely updates mutable fields. A change to pinned configuration publishes a new immutable revision and requires expected_version.

Path parameters
delivery_zone_idstringrequired

Flint delivery zone ID.

Request body
configurationone of

A reusable geographic predicate containing only country, state, postal_code, and radius conditions.

expected_versioninteger
metadatamap of string
namestring
Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X PATCH https://api.withflintpay.com/v1/delivery-zones/dzone_01K1P6G4M7H2N8Q9R3S5T6V7WX \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: a-unique-key" \
  -d '{}'
JSON
{
  "data": {
    "configuration": {
      "country": {
        "subject": "destination_address",
        "values": [
          "example"
        ]
      }
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_zone_revision_id": "dzoner_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_zone_id": "dzone_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Activate delivery zone#

POST/v1/delivery-zones/{delivery_zone_id}/activateIdempotentRequires scope: commerce.delivery.write

Transitions the delivery zone lifecycle after validating its current pinned dependencies.

Path parameters
delivery_zone_idstringrequired

Flint delivery zone ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-zones/dzone_01K1P6G4M7H2N8Q9R3S5T6V7WX/activate \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "configuration": {
      "country": {
        "subject": "destination_address",
        "values": [
          "example"
        ]
      }
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_zone_revision_id": "dzoner_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_zone_id": "dzone_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Archive delivery zone#

POST/v1/delivery-zones/{delivery_zone_id}/archiveIdempotentRequires scope: commerce.delivery.write

Transitions the delivery zone lifecycle after validating its current pinned dependencies.

Path parameters
delivery_zone_idstringrequired

Flint delivery zone ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-zones/dzone_01K1P6G4M7H2N8Q9R3S5T6V7WX/archive \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "configuration": {
      "country": {
        "subject": "destination_address",
        "values": [
          "example"
        ]
      }
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_zone_revision_id": "dzoner_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_zone_id": "dzone_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Deactivate delivery zone#

POST/v1/delivery-zones/{delivery_zone_id}/deactivateIdempotentRequires scope: commerce.delivery.write

Transitions the delivery zone lifecycle after validating its current pinned dependencies.

Path parameters
delivery_zone_idstringrequired

Flint delivery zone ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/delivery-zones/dzone_01K1P6G4M7H2N8Q9R3S5T6V7WX/deactivate \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "configuration": {
      "country": {
        "subject": "destination_address",
        "values": [
          "example"
        ]
      }
    },
    "created_at": "2026-08-02T16:00:00Z",
    "current_delivery_zone_revision_id": "dzoner_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_zone_id": "dzone_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "name": "Standard delivery",
    "status": "inactive",
    "updated_at": "2026-08-02T16:00:00Z",
    "version": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

List delivery zone revisions#

GET/v1/delivery-zones/{delivery_zone_id}/revisionsRequires scope: commerce.delivery.read or commerce.delivery.write

Returns immutable revisions for one delivery zone in descending revision order.

Path parameters
delivery_zone_idstringrequired

Flint delivery zone ID.

Query parameters
page_sizeinteger

Number of revisions to return.

page_tokenstring

Opaque cursor returned by the previous page.

Response · 200
dataarray of objectrequired
metaobject
next_page_tokenstring
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/delivery-zones/dzone_01K1P6G4M7H2N8Q9R3S5T6V7WX/revisions \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": [
    {
      "configuration": {
        "country": {
          "subject": "destination_address",
          "values": [
            "example"
          ]
        }
      },
      "created_at": "2026-08-02T16:00:00Z",
      "delivery_zone_id": "dzone_01K1P6G4M7H2N8Q9R3S5T6V7WX",
      "delivery_zone_revision_id": "dzoner_01K1P6G4M7H2N8Q9R3S5T6V7WX",
      "revision": 0
    }
  ],
  "next_page_token": "page_2",
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Get delivery zone revision#

GET/v1/delivery-zones/{delivery_zone_id}/revisions/{delivery_zone_revision_id}Requires scope: commerce.delivery.read or commerce.delivery.write

Returns one immutable pinned revision of the delivery zone.

Path parameters
delivery_zone_idstringrequired

Flint delivery zone ID.

delivery_zone_revision_idstringrequired

Flint delivery zone revision ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/delivery-zones/dzone_01K1P6G4M7H2N8Q9R3S5T6V7WX/revisions/dzoner_01K1P6G4M7H2N8Q9R3S5T6V7WX \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "configuration": {
      "country": {
        "subject": "destination_address",
        "values": [
          "example"
        ]
      }
    },
    "created_at": "2026-08-02T16:00:00Z",
    "delivery_zone_id": "dzone_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "delivery_zone_revision_id": "dzoner_01K1P6G4M7H2N8Q9R3S5T6V7WX",
    "revision": 0
  },
  "request_id": "req_01K1P6G4M7H2N8Q9R3S5T6V7WX"
}

Replace payment link delivery methods#

PUT/v1/payment-links/{payment_link_id}/delivery-methodsIdempotentRequires scope: checkouts.payment_links.write

Replaces the complete stable delivery method assignment and publishes a new payment link revision.

Path parameters
payment_link_idstringrequired

Flint payment link ID.

Request body
delivery_method_idsarray of stringrequired
expected_payment_link_revisionintegerrequired
Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDELIVERY_CONFIGURATION_INVALIDDELIVERY_EXPECTED_VERSION_INVALIDDELIVERY_EXPECTED_VERSION_REQUIREDDELIVERY_METHODS_NOT_APPLICABLEDELIVERY_RESOURCE_HAS_DEPENDENCIESDELIVERY_RESOURCE_NOT_FOUNDDELIVERY_RESOURCE_VERSION_CONFLICTDELIVERY_SERVICE_UNAVAILABLEDELIVERY_STATE_CONFLICTINSUFFICIENT_SCOPEINVALID_API_KEYINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUND
Bash
curl -X PUT https://api.withflintpay.com/v1/payment-links/pl_123/delivery-methods \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: a-unique-key" \
  -d '{
    "delivery_method_ids": [
      "dmet_01J00000000000000000000000"
    ],
    "expected_payment_link_revision": 3
  }'
JSON
{
  "data": {
    "payment_link_id": "pl_123",
    "name": "Spring Gala",
    "line_items": [
      {
        "payment_link_line_item_id": "plli_123",
        "quantity": 1,
        "key": "general-admission",
        "name": "General Admission",
        "unit_price_money": {
          "amount": 2500,
          "currency": "USD"
        }
      }
    ],
    "status": "active",
    "completed_count": 3,
    "metadata": {
      "campaign": "spring-gala"
    },
    "merchant_id": "mer_123",
    "url": "https://checkout.withflintpay.com/pay/pl_123",
    "created_at": "2026-03-17T14:30:00Z",
    "updated_at": "2026-03-17T14:30:00Z",
    "description": "Event checkout",
    "payments": {
      "enabled_payment_options": [
        "card",
        "apple_pay",
        "google_pay"
      ]
    },
    "custom_fields": [
      {
        "payment_link_custom_field_id": "plcf_123",
        "key": "meal_preference",
        "label": "Meal preference",
        "custom_field_type": "dropdown",
        "required": true,
        "options": [
          "Vegetarian",
          "Chicken",
          "Fish"
        ]
      }
    ],
    "payment_link_type": "event",
    "event_config": {
      "event_at": "2026-05-12T19:00:00Z",
      "venue": "Pier 57, New York",
      "max_total_quantity": 500,
      "ticket_prefix": "GAL",
      "send_ticket_emails": true
    },
    "total_quantity_sold": 42,
    "image": {
      "url": "https://images.withflintpay.com/ia_spring_gala/original",
      "alt": "Spring gala",
      "width": 1600,
      "height": 900
    },
    "image_revision": 1
  },
  "request_id": "bce56cba-0827-44aa-bb56-4f200ba15ee6"
}
Rate this doc