Integrate Reconfirm in a few steps.

Your Reconfirm team configures your integration. Send orders, receive decisions, and ship on facts.

Overview

  1. Ask Reconfirm to connect your store or shipping system.
  2. Send each order through the API or CSV import.
  3. View customer decisions in your dashboard or receive a signed webhook.

Base path: /api/v1

Authentication

Your Reconfirm team provisions an organization-specific key. Keep it on your server.

Authorization: Bearer YOUR_API_KEY

Send a delivery

POST /api/v1/orders accepts an order and durably queues its initial confirmation.

{
  "external_order_id": "4821",
  "customer_name": "Sara Ahmed",
  "customer_phone": "+201001234567",
  "shipping": {
    "address": "12 Nile Street",
    "city": "Cairo",
    "country": "EG"
  },
  "items": [
    {
      "name": "Cotton T-shirt",
      "quantity": 1,
      "unit_price": "250.00"
    }
  ],
  "total": "250.00",
  "currency": "EGP"
}

An identical external order ID returns the existing order. Conflicting customer details return 409.

Upload UTF-8 CSV files up to 20 MiB to POST /api/v1/imports. Required columns: external_order_id,customer_name,customer_phone.

Customer responses

Your team can configure a signed webhook for order.decision_recorded. Deliveries include a stable event ID and an X-Reconfirm-Signature HMAC-SHA256 signature. Acknowledge with a 2xx response and deduplicate by event ID.

Inspect an order using GET /api/v1/orders/{id}. The first valid template-button decision is permanent.

Statuses

DecisionMeaning
PENDING_CONFIRMATIONWaiting for a customer decision.
CONFIRMEDThe customer confirmed.
CANCELLEDThe customer cancelled.
RESCHEDULE_REQUESTEDThe customer requested another date.

Workflow progress and message delivery are tracked separately from the decision.

Errors

401 invalid credentials · 409 conflicting order · 422 invalid input · 503 temporarily unavailable.