Invoices

Invoices are Flint's receivables resource. Every invoice is backed by an order: create one from an existing open order, or use quick pay input and Flint creates the backing order internally. When you send an invoice, Flint freezes the customer-facing billing content into a snapshot, issues a stable, revocable hosted invoice link, and emails the recipient.

An invoice moves from draft to open on send, then to partially_paid or paid as money comes in, or void if you cancel it. Collection can be online (an invoice-owned hosted checkout session for card payment) or offline via manual payments for checks, cash, wires, and other external methods. Delivery attempts, reminders, lifecycle events, and PDFs are all tracked on the invoice itself, and payment activity publishes webhook events.

See the Invoicing guide for an end-to-end walkthrough, and Payment links vs checkout sessions vs invoices for choosing the right collection surface.

List invoices#

GET/v1/invoicesRequires scope: commerce.invoices.read or commerce.invoices.write

Returns a paginated list of invoices for the authenticated merchant.

Query parameters
page_sizeinteger

Page size, default 20, max 100.

page_tokenstring

Cursor returned by the previous list response.

statusenum

Filter by invoice status. Repeat the parameter or pass comma-separated values to match multiple statuses.

draftopenpartially_paidpaidvoid
customer_idstring

Filter by Flint customer ID.

order_idstring

Filter by Flint order ID.

external_reference_idstring

Exact-match filter on the caller-owned external reference ID.

created_afterstring

RFC3339 lower bound for created_at.

created_beforestring

RFC3339 upper bound for created_at.

due_afterstring

RFC3339 lower bound for due_at.

due_beforestring

RFC3339 upper bound for due_at.

is_overdueboolean

Filter by whether the invoice is overdue.

has_amount_dueboolean

Filter by whether the invoice has a remaining amount due.

sort_byenum

Sort field.

created_atupdated_atdue_atinvoice_numberoutstanding_money
sort_directionenum

Sort direction.

ascdesc
querystring

Search across invoice_id, invoice_number, external_reference_id, recipient_email, and reference.

Response · 200
dataarray of objectrequired
metaobject
next_page_tokenstring
request_idstring

Error codes

AUTH_REQUIREDINSUFFICIENT_SCOPEINVALID_API_KEYINVALID_REQUESTRATE_LIMIT_EXCEEDED
Bash
curl https://api.withflintpay.com/v1/invoices \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": [
    {
      "invoice_id": "inv_01J00000000000000000000000",
      "merchant_id": "mer_01J00000000000000000000000",
      "order_id": "ord_01J00000000000000000000000",
      "customer_id": "cus_01J00000000000000000000000",
      "invoice_number": "1042",
      "status": "open",
      "refund_status": "none",
      "collection_block_status": "",
      "due_at": "2026-03-31T23:59:59Z",
      "sent_at": "2026-03-21T15:04:05Z",
      "recipient_email": "buyer@example.com",
      "cc_emails": [
        "owner@example.com"
      ],
      "reference": "PO-1042",
      "snapshot": {
        "merchant_display_name": "Flint Services",
        "customer_display_name": "Avery Buyer",
        "customer_email": "buyer@example.com",
        "line_items": [
          {
            "name": "Consulting session",
            "quantity": 1,
            "unit_price_money": {
              "amount": 15000,
              "currency": "USD"
            },
            "base_subtotal_money": {
              "amount": 15000,
              "currency": "USD"
            },
            "modifier_total_money": {
              "amount": 0,
              "currency": "USD"
            },
            "subtotal_money": {
              "amount": 15000,
              "currency": "USD"
            },
            "discount_money": {
              "amount": 0,
              "currency": "USD"
            },
            "tax_money": {
              "amount": 0,
              "currency": "USD"
            },
            "total_money": {
              "amount": 15000,
              "currency": "USD"
            }
          }
        ],
        "pricing_amounts": {
          "subtotal_money": {
            "amount": 15000,
            "currency": "USD"
          },
          "discount_money": {
            "amount": 0,
            "currency": "USD"
          },
          "charge_money": {
            "amount": 0,
            "currency": "USD"
          },
          "tax_money": {
            "amount": 0,
            "currency": "USD"
          },
          "requested_tip_money": {
            "amount": 0,
            "currency": "USD"
          },
          "total_money": {
            "amount": 15000,
            "currency": "USD"
          }
        },
        "memo": "Payment due within 10 days."
      },
      "outstanding_money": {
        "amount": 15000,
        "currency": "USD"
      },
      "paid_money": {
        "amount": 0,
        "currency": "USD"
      },
      "refunded_money": {
        "amount": 0,
        "currency": "USD"
      },
      "is_overdue": false,
      "created_at": "2026-03-21T15:03:00Z",
      "updated_at": "2026-03-21T15:04:05Z"
    }
  ],
  "next_page_token": "Zm9yd2FyZC1vbmx5LW9wYXF1ZS1jdXJzb3I",
  "request_id": "bce56cba-0827-44aa-bb56-4f200ba15ee6"
}

Create invoice draft#

POST/v1/invoicesIdempotentRequires scope: commerce.invoices.write

Creates an invoice draft. Provide exactly one source: order_id for an order-backed draft, or quick_pay for a hidden backing-order draft.

Request body
cc_emailsarray of string
due_atstring

RFC3339 timestamp.

external_reference_idstring
footerstring
memostring
metadatamap of string
order_idstring
quick_payobject
recipient_emailstring
referencestring
scheduled_send_atstring

RFC3339 timestamp.

service_atstring

RFC3339 timestamp.

Response · 201
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDINSUFFICIENT_SCOPEINVALID_API_KEYINVALID_REQUESTRATE_LIMIT_EXCEEDED
Bash
curl -X POST https://api.withflintpay.com/v1/invoices \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: a-unique-key" \
  -d '{
    "quick_pay": {
      "line_items": [
        {
          "name": "Consulting session",
          "quantity": 1,
          "unit_price_money": {
            "amount": 15000,
            "currency": "USD"
          }
        }
      ],
      "customer_id": "cus_01J00000000000000000000000"
    },
    "due_at": "2026-03-31T23:59:59Z",
    "recipient_email": "buyer@example.com",
    "reference": "PO-1042",
    "memo": "Payment due within 10 days."
  }'
JSON
{
  "data": {
    "invoice_id": "inv_01J00000000000000000000000",
    "merchant_id": "mer_01J00000000000000000000000",
    "order_id": "ord_01J00000000000000000000000",
    "customer_id": "cus_01J00000000000000000000000",
    "invoice_number": "1042",
    "status": "open",
    "refund_status": "none",
    "collection_block_status": "",
    "due_at": "2026-03-31T23:59:59Z",
    "sent_at": "2026-03-21T15:04:05Z",
    "recipient_email": "buyer@example.com",
    "cc_emails": [
      "owner@example.com"
    ],
    "reference": "PO-1042",
    "snapshot": {
      "merchant_display_name": "Flint Services",
      "customer_display_name": "Avery Buyer",
      "customer_email": "buyer@example.com",
      "line_items": [
        {
          "name": "Consulting session",
          "quantity": 1,
          "unit_price_money": {
            "amount": 15000,
            "currency": "USD"
          },
          "base_subtotal_money": {
            "amount": 15000,
            "currency": "USD"
          },
          "modifier_total_money": {
            "amount": 0,
            "currency": "USD"
          },
          "subtotal_money": {
            "amount": 15000,
            "currency": "USD"
          },
          "discount_money": {
            "amount": 0,
            "currency": "USD"
          },
          "tax_money": {
            "amount": 0,
            "currency": "USD"
          },
          "total_money": {
            "amount": 15000,
            "currency": "USD"
          }
        }
      ],
      "pricing_amounts": {
        "subtotal_money": {
          "amount": 15000,
          "currency": "USD"
        },
        "discount_money": {
          "amount": 0,
          "currency": "USD"
        },
        "charge_money": {
          "amount": 0,
          "currency": "USD"
        },
        "tax_money": {
          "amount": 0,
          "currency": "USD"
        },
        "requested_tip_money": {
          "amount": 0,
          "currency": "USD"
        },
        "total_money": {
          "amount": 15000,
          "currency": "USD"
        }
      },
      "memo": "Payment due within 10 days."
    },
    "outstanding_money": {
      "amount": 15000,
      "currency": "USD"
    },
    "paid_money": {
      "amount": 0,
      "currency": "USD"
    },
    "refunded_money": {
      "amount": 0,
      "currency": "USD"
    },
    "is_overdue": false,
    "created_at": "2026-03-21T15:03:00Z",
    "updated_at": "2026-03-21T15:04:05Z"
  },
  "request_id": "bce56cba-0827-44aa-bb56-4f200ba15ee6"
}

Get invoice#

GET/v1/invoices/{invoice_id}Requires scope: commerce.invoices.read or commerce.invoices.write

Returns a single invoice by ID.

Path parameters
invoice_idstringrequired

Flint invoice ID.

Query parameters
expandarray of enum

Supported expansions: customer, order. Expansion requires commerce.invoices.read plus the read scope for each expanded resource. Limits: at most 10 unique expand paths per request; path depth at most 2. Send repeated expand parameters as the canonical form, for example expand=customer&expand=order. Comma-separated values, expand[]=customer, and numeric expand[0]=customer are accepted for common client compatibility.

customerorder
Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDDANGLING_EXPANSION_REFERENCEEXPANSION_DEPENDENCY_UNAVAILABLEEXPANSION_RESOLUTION_FAILEDINSUFFICIENT_SCOPEINTERNAL_ERRORINVALID_API_KEYINVALID_EXPANDINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl https://api.withflintpay.com/v1/invoices/inv_01J00000000000000000000000 \
  -H "Authorization: Bearer YOUR_API_KEY"

Update invoice draft#

PATCH/v1/invoices/{invoice_id}IdempotentRequires scope: commerce.invoices.write

Updates mutable fields on a draft invoice. Sent invoices are immutable except for delivery-related actions.

Path parameters
invoice_idstringrequired

Flint invoice ID.

Request body
cc_emailsarray of string
due_atstring

RFC3339 timestamp.

external_reference_idstring
footerstring
memostring
metadatamap of string
recipient_emailstring
referencestring
scheduled_send_atstring

RFC3339 timestamp.

service_atstring

RFC3339 timestamp.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDINSUFFICIENT_SCOPEINVALID_API_KEYINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUND
Bash
curl -X PATCH https://api.withflintpay.com/v1/invoices/inv_01J00000000000000000000000 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: a-unique-key" \
  -d '{
    "recipient_email": "accounts-payable@example.com",
    "cc_emails": [
      "owner@example.com"
    ],
    "memo": "Updated delivery instructions."
  }'
JSON
{
  "data": {
    "invoice_id": "inv_01J00000000000000000000000",
    "merchant_id": "mer_01J00000000000000000000000",
    "order_id": "ord_01J00000000000000000000000",
    "customer_id": "cus_01J00000000000000000000000",
    "invoice_number": "1042",
    "status": "open",
    "refund_status": "none",
    "collection_block_status": "",
    "due_at": "2026-03-31T23:59:59Z",
    "sent_at": "2026-03-21T15:04:05Z",
    "recipient_email": "buyer@example.com",
    "cc_emails": [
      "owner@example.com"
    ],
    "reference": "PO-1042",
    "snapshot": {
      "merchant_display_name": "Flint Services",
      "customer_display_name": "Avery Buyer",
      "customer_email": "buyer@example.com",
      "line_items": [
        {
          "name": "Consulting session",
          "quantity": 1,
          "unit_price_money": {
            "amount": 15000,
            "currency": "USD"
          },
          "base_subtotal_money": {
            "amount": 15000,
            "currency": "USD"
          },
          "modifier_total_money": {
            "amount": 0,
            "currency": "USD"
          },
          "subtotal_money": {
            "amount": 15000,
            "currency": "USD"
          },
          "discount_money": {
            "amount": 0,
            "currency": "USD"
          },
          "tax_money": {
            "amount": 0,
            "currency": "USD"
          },
          "total_money": {
            "amount": 15000,
            "currency": "USD"
          }
        }
      ],
      "pricing_amounts": {
        "subtotal_money": {
          "amount": 15000,
          "currency": "USD"
        },
        "discount_money": {
          "amount": 0,
          "currency": "USD"
        },
        "charge_money": {
          "amount": 0,
          "currency": "USD"
        },
        "tax_money": {
          "amount": 0,
          "currency": "USD"
        },
        "requested_tip_money": {
          "amount": 0,
          "currency": "USD"
        },
        "total_money": {
          "amount": 15000,
          "currency": "USD"
        }
      },
      "memo": "Payment due within 10 days."
    },
    "outstanding_money": {
      "amount": 15000,
      "currency": "USD"
    },
    "paid_money": {
      "amount": 0,
      "currency": "USD"
    },
    "refunded_money": {
      "amount": 0,
      "currency": "USD"
    },
    "is_overdue": false,
    "created_at": "2026-03-21T15:03:00Z",
    "updated_at": "2026-03-21T15:04:05Z"
  },
  "request_id": "bce56cba-0827-44aa-bb56-4f200ba15ee6"
}

Get or create invoice checkout collection#

POST/v1/invoices/{invoice_id}/checkout-sessionIdempotentRequires scope: commerce.invoices.write

Returns the current open invoice checkout session and aligned card attempt when they still match the invoice balance and collection run. A newly created session and attempt share the fixed expiration of the active invoice public-link generation. Unexpired sessions are reused regardless of remaining lifetime; active payment work returns a resolving conflict instead of creating competing collection.

Path parameters
invoice_idstringrequired

Flint invoice ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDINSUFFICIENT_SCOPEINVALID_API_KEYINVALID_REQUESTRATE_LIMIT_EXCEEDEDREQUEST_TIMEOUTRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/invoices/inv_01J00000000000000000000000/checkout-session \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "invoice": {
      "invoice_id": "inv_01J00000000000000000000000",
      "merchant_id": "mer_01J00000000000000000000000",
      "order_id": "ord_01J00000000000000000000000",
      "customer_id": "cus_01J00000000000000000000000",
      "invoice_number": "1042",
      "status": "open",
      "refund_status": "none",
      "collection_block_status": "",
      "due_at": "2026-03-31T23:59:59Z",
      "sent_at": "2026-03-21T15:04:05Z",
      "recipient_email": "buyer@example.com",
      "cc_emails": [
        "owner@example.com"
      ],
      "reference": "PO-1042",
      "snapshot": {
        "merchant_display_name": "Flint Services",
        "customer_display_name": "Avery Buyer",
        "customer_email": "buyer@example.com",
        "line_items": [
          {
            "name": "Consulting session",
            "quantity": 1,
            "unit_price_money": {
              "amount": 15000,
              "currency": "USD"
            },
            "base_subtotal_money": {
              "amount": 15000,
              "currency": "USD"
            },
            "modifier_total_money": {
              "amount": 0,
              "currency": "USD"
            },
            "subtotal_money": {
              "amount": 15000,
              "currency": "USD"
            },
            "discount_money": {
              "amount": 0,
              "currency": "USD"
            },
            "tax_money": {
              "amount": 0,
              "currency": "USD"
            },
            "total_money": {
              "amount": 15000,
              "currency": "USD"
            }
          }
        ],
        "pricing_amounts": {
          "subtotal_money": {
            "amount": 15000,
            "currency": "USD"
          },
          "discount_money": {
            "amount": 0,
            "currency": "USD"
          },
          "charge_money": {
            "amount": 0,
            "currency": "USD"
          },
          "tax_money": {
            "amount": 0,
            "currency": "USD"
          },
          "requested_tip_money": {
            "amount": 0,
            "currency": "USD"
          },
          "total_money": {
            "amount": 15000,
            "currency": "USD"
          }
        },
        "memo": "Payment due within 10 days."
      },
      "outstanding_money": {
        "amount": 15000,
        "currency": "USD"
      },
      "paid_money": {
        "amount": 0,
        "currency": "USD"
      },
      "refunded_money": {
        "amount": 0,
        "currency": "USD"
      },
      "is_overdue": false,
      "created_at": "2026-03-21T15:03:00Z",
      "updated_at": "2026-03-21T15:04:05Z"
    },
    "invoice_payment_attempt": {
      "invoice_payment_attempt_id": "invpa_01J00000000000000000000000",
      "invoice_id": "inv_01J00000000000000000000000",
      "rail": "card",
      "status": "open",
      "expected_amount_money": {
        "amount": 15000,
        "currency": "USD"
      },
      "checkout_session_id": "cs_01J00000000000000000000000",
      "started_at": "2026-03-21T15:05:00Z"
    },
    "checkout_session": {
      "checkout_session_id": "cs_01J00000000000000000000000",
      "surface": "",
      "delivery_method_ids": null,
      "status": "open",
      "order_id": "ord_01J00000000000000000000000",
      "invoice_id": "inv_01J00000000000000000000000",
      "expires_at": "2026-03-21T16:05:00Z",
      "url": "https://checkout.withflintpay.com/cs/cs_01J00000000000000000000000",
      "recovery_mode": false,
      "delivery_selection_required": false,
      "problems": null
    },
    "hosted_checkout": {
      "url": "https://checkout.withflintpay.com/cs/cs_01J00000000000000000000000",
      "checkout_auth_token": "csauth_example"
    },
    "reused_existing": false
  },
  "request_id": "bce56cba-0827-44aa-bb56-4f200ba15ee6"
}

List invoice delivery attempts#

GET/v1/invoices/{invoice_id}/delivery-attemptsRequires scope: commerce.invoices.read or commerce.invoices.write

Returns email delivery attempts for send and reminder actions.

Path parameters
invoice_idstringrequired

Flint invoice ID.

Query parameters
page_sizeinteger

Page size, default 20, max 100.

page_tokenstring

Cursor returned by the previous list response.

Response · 200
dataarray of objectrequired
metaobject
next_page_tokenstring
request_idstring

Error codes

AUTH_REQUIREDINSUFFICIENT_SCOPEINVALID_API_KEYINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUND
Bash
curl https://api.withflintpay.com/v1/invoices/inv_01J00000000000000000000000/delivery-attempts \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": [
    {
      "invoice_delivery_attempt_id": "indel_01J00000000000000000000000",
      "delivery_type": "send",
      "channel": "email",
      "to_email": "buyer@example.com",
      "status": "sent",
      "created_at": "2026-03-21T15:04:05Z",
      "sent_at": "2026-03-21T15:04:06Z"
    }
  ],
  "next_page_token": "Zm9yd2FyZC1vbmx5LW9wYXF1ZS1jdXJzb3I",
  "request_id": "bce56cba-0827-44aa-bb56-4f200ba15ee6"
}

List invoice events#

GET/v1/invoices/{invoice_id}/eventsRequires scope: commerce.invoices.read or commerce.invoices.write

Returns the audit timeline for an invoice.

Path parameters
invoice_idstringrequired

Flint invoice ID.

Query parameters
page_sizeinteger

Page size, default 20, max 100.

page_tokenstring

Cursor returned by the previous list response.

Response · 200
dataarray of objectrequired
metaobject
next_page_tokenstring
request_idstring

Error codes

AUTH_REQUIREDINSUFFICIENT_SCOPEINVALID_API_KEYINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUND
Bash
curl https://api.withflintpay.com/v1/invoices/inv_01J00000000000000000000000/events \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": [
    {
      "invoice_event_id": "inevt_01J00000000000000000000000",
      "event_type": "sent",
      "description": "Invoice sent",
      "actor_type": "merchant",
      "occurred_at": "2026-03-21T15:04:05Z"
    }
  ],
  "next_page_token": "Zm9yd2FyZC1vbmx5LW9wYXF1ZS1jdXJzb3I",
  "request_id": "bce56cba-0827-44aa-bb56-4f200ba15ee6"
}

Record manual invoice payment#

POST/v1/invoices/{invoice_id}/manual-paymentsIdempotentRequires scope: commerce.invoices.write

Applies an offline/manual payment to an issued invoice. Recording is rejected with INVOICE_PAYMENT_RESOLVING while an online payment is still resolving; an idle open checkout does not block. A payment that clears the balance invalidates the open checkout session. Safe to retry with the same Idempotency-Key.

Path parameters
invoice_idstringrequired

Flint invoice ID.

Request body
amount_moneyobjectrequired

Monetary amount represented as integer minor units plus an ISO 4217 currency code.

external_reference_idstring
notestring
received_atstring

RFC3339 timestamp.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDINSUFFICIENT_SCOPEINVALID_API_KEYINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUND
Bash
curl -X POST https://api.withflintpay.com/v1/invoices/inv_01J00000000000000000000000/manual-payments \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: a-unique-key" \
  -d '{
    "amount_money": {
      "amount": 5000,
      "currency": "USD"
    },
    "received_at": "2026-03-22T10:00:00Z",
    "external_reference_id": "manual-payment-1024",
    "note": "Paid by check #1024"
  }'
JSON
{
  "data": {
    "invoice_id": "inv_01J00000000000000000000000",
    "merchant_id": "mer_01J00000000000000000000000",
    "order_id": "ord_01J00000000000000000000000",
    "customer_id": "cus_01J00000000000000000000000",
    "invoice_number": "1042",
    "status": "open",
    "refund_status": "none",
    "collection_block_status": "",
    "due_at": "2026-03-31T23:59:59Z",
    "sent_at": "2026-03-21T15:04:05Z",
    "recipient_email": "buyer@example.com",
    "cc_emails": [
      "owner@example.com"
    ],
    "reference": "PO-1042",
    "snapshot": {
      "merchant_display_name": "Flint Services",
      "customer_display_name": "Avery Buyer",
      "customer_email": "buyer@example.com",
      "line_items": [
        {
          "name": "Consulting session",
          "quantity": 1,
          "unit_price_money": {
            "amount": 15000,
            "currency": "USD"
          },
          "base_subtotal_money": {
            "amount": 15000,
            "currency": "USD"
          },
          "modifier_total_money": {
            "amount": 0,
            "currency": "USD"
          },
          "subtotal_money": {
            "amount": 15000,
            "currency": "USD"
          },
          "discount_money": {
            "amount": 0,
            "currency": "USD"
          },
          "tax_money": {
            "amount": 0,
            "currency": "USD"
          },
          "total_money": {
            "amount": 15000,
            "currency": "USD"
          }
        }
      ],
      "pricing_amounts": {
        "subtotal_money": {
          "amount": 15000,
          "currency": "USD"
        },
        "discount_money": {
          "amount": 0,
          "currency": "USD"
        },
        "charge_money": {
          "amount": 0,
          "currency": "USD"
        },
        "tax_money": {
          "amount": 0,
          "currency": "USD"
        },
        "requested_tip_money": {
          "amount": 0,
          "currency": "USD"
        },
        "total_money": {
          "amount": 15000,
          "currency": "USD"
        }
      },
      "memo": "Payment due within 10 days."
    },
    "outstanding_money": {
      "amount": 15000,
      "currency": "USD"
    },
    "paid_money": {
      "amount": 0,
      "currency": "USD"
    },
    "refunded_money": {
      "amount": 0,
      "currency": "USD"
    },
    "is_overdue": false,
    "created_at": "2026-03-21T15:03:00Z",
    "updated_at": "2026-03-21T15:04:05Z"
  },
  "request_id": "bce56cba-0827-44aa-bb56-4f200ba15ee6"
}

Reverse manual invoice payment#

POST/v1/invoices/{invoice_id}/manual-payments/reverseIdempotentRequires scope: commerce.invoices.write

Reverses previously applied manual/offline payment amount from an invoice. Safe to retry with the same Idempotency-Key.

Path parameters
invoice_idstringrequired

Flint invoice ID.

Request body
amount_moneyobjectrequired

Monetary amount represented as integer minor units plus an ISO 4217 currency code.

external_reference_idstring
notestring
received_atstring

RFC3339 timestamp.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDINSUFFICIENT_SCOPEINVALID_API_KEYINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUND
Bash
curl -X POST https://api.withflintpay.com/v1/invoices/inv_01J00000000000000000000000/manual-payments/reverse \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: a-unique-key" \
  -d '{
    "amount_money": {
      "amount": 5000,
      "currency": "USD"
    },
    "received_at": "2026-03-22T10:00:00Z",
    "external_reference_id": "manual-payment-1024",
    "note": "Paid by check #1024"
  }'
JSON
{
  "data": {
    "invoice_id": "inv_01J00000000000000000000000",
    "merchant_id": "mer_01J00000000000000000000000",
    "order_id": "ord_01J00000000000000000000000",
    "customer_id": "cus_01J00000000000000000000000",
    "invoice_number": "1042",
    "status": "open",
    "refund_status": "none",
    "collection_block_status": "",
    "due_at": "2026-03-31T23:59:59Z",
    "sent_at": "2026-03-21T15:04:05Z",
    "recipient_email": "buyer@example.com",
    "cc_emails": [
      "owner@example.com"
    ],
    "reference": "PO-1042",
    "snapshot": {
      "merchant_display_name": "Flint Services",
      "customer_display_name": "Avery Buyer",
      "customer_email": "buyer@example.com",
      "line_items": [
        {
          "name": "Consulting session",
          "quantity": 1,
          "unit_price_money": {
            "amount": 15000,
            "currency": "USD"
          },
          "base_subtotal_money": {
            "amount": 15000,
            "currency": "USD"
          },
          "modifier_total_money": {
            "amount": 0,
            "currency": "USD"
          },
          "subtotal_money": {
            "amount": 15000,
            "currency": "USD"
          },
          "discount_money": {
            "amount": 0,
            "currency": "USD"
          },
          "tax_money": {
            "amount": 0,
            "currency": "USD"
          },
          "total_money": {
            "amount": 15000,
            "currency": "USD"
          }
        }
      ],
      "pricing_amounts": {
        "subtotal_money": {
          "amount": 15000,
          "currency": "USD"
        },
        "discount_money": {
          "amount": 0,
          "currency": "USD"
        },
        "charge_money": {
          "amount": 0,
          "currency": "USD"
        },
        "tax_money": {
          "amount": 0,
          "currency": "USD"
        },
        "requested_tip_money": {
          "amount": 0,
          "currency": "USD"
        },
        "total_money": {
          "amount": 15000,
          "currency": "USD"
        }
      },
      "memo": "Payment due within 10 days."
    },
    "outstanding_money": {
      "amount": 15000,
      "currency": "USD"
    },
    "paid_money": {
      "amount": 0,
      "currency": "USD"
    },
    "refunded_money": {
      "amount": 0,
      "currency": "USD"
    },
    "is_overdue": false,
    "created_at": "2026-03-21T15:03:00Z",
    "updated_at": "2026-03-21T15:04:05Z"
  },
  "request_id": "bce56cba-0827-44aa-bb56-4f200ba15ee6"
}

Download invoice PDF#

GET/v1/invoices/{invoice_id}/pdfRequires scope: commerce.invoices.read or commerce.invoices.write

Downloads the merchant-authenticated PDF artifact generated from the invoice snapshot.

Path parameters
invoice_idstringrequired

Flint invoice ID.

Error codes

AUTH_REQUIREDINSUFFICIENT_SCOPEINVALID_API_KEYINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUND
Bash
curl https://api.withflintpay.com/v1/invoices/inv_01J00000000000000000000000/pdf \
  -H "Authorization: Bearer YOUR_API_KEY"

Send invoice#

POST/v1/invoices/{invoice_id}/sendIdempotentRequires scope: commerce.invoices.write

Issues the invoice, creates the buyer-access link, and attempts the initial email delivery. Safe to retry with the same Idempotency-Key.

Path parameters
invoice_idstringrequired

Flint invoice ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDINSUFFICIENT_SCOPEINVALID_API_KEYINVALID_REQUESTRATE_LIMIT_EXCEEDEDREQUEST_TIMEOUTRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/invoices/inv_01J00000000000000000000000/send \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "invoice": {
      "invoice_id": "inv_01J00000000000000000000000",
      "merchant_id": "mer_01J00000000000000000000000",
      "order_id": "ord_01J00000000000000000000000",
      "customer_id": "cus_01J00000000000000000000000",
      "invoice_number": "1042",
      "status": "open",
      "refund_status": "none",
      "collection_block_status": "",
      "due_at": "2026-03-31T23:59:59Z",
      "sent_at": "2026-03-21T15:04:05Z",
      "recipient_email": "buyer@example.com",
      "cc_emails": [
        "owner@example.com"
      ],
      "reference": "PO-1042",
      "snapshot": {
        "merchant_display_name": "Flint Services",
        "customer_display_name": "Avery Buyer",
        "customer_email": "buyer@example.com",
        "line_items": [
          {
            "name": "Consulting session",
            "quantity": 1,
            "unit_price_money": {
              "amount": 15000,
              "currency": "USD"
            },
            "base_subtotal_money": {
              "amount": 15000,
              "currency": "USD"
            },
            "modifier_total_money": {
              "amount": 0,
              "currency": "USD"
            },
            "subtotal_money": {
              "amount": 15000,
              "currency": "USD"
            },
            "discount_money": {
              "amount": 0,
              "currency": "USD"
            },
            "tax_money": {
              "amount": 0,
              "currency": "USD"
            },
            "total_money": {
              "amount": 15000,
              "currency": "USD"
            }
          }
        ],
        "pricing_amounts": {
          "subtotal_money": {
            "amount": 15000,
            "currency": "USD"
          },
          "discount_money": {
            "amount": 0,
            "currency": "USD"
          },
          "charge_money": {
            "amount": 0,
            "currency": "USD"
          },
          "tax_money": {
            "amount": 0,
            "currency": "USD"
          },
          "requested_tip_money": {
            "amount": 0,
            "currency": "USD"
          },
          "total_money": {
            "amount": 15000,
            "currency": "USD"
          }
        },
        "memo": "Payment due within 10 days."
      },
      "outstanding_money": {
        "amount": 15000,
        "currency": "USD"
      },
      "paid_money": {
        "amount": 0,
        "currency": "USD"
      },
      "refunded_money": {
        "amount": 0,
        "currency": "USD"
      },
      "is_overdue": false,
      "created_at": "2026-03-21T15:03:00Z",
      "updated_at": "2026-03-21T15:04:05Z"
    },
    "public_url": "https://checkout.withflintpay.com/i/ivat_01J0000000000000000000000#invoice_token=ivt_example",
    "delivery_attempt": {
      "invoice_delivery_attempt_id": "indel_01J00000000000000000000000",
      "delivery_type": "send",
      "channel": "email",
      "to_email": "buyer@example.com",
      "status": "sent",
      "created_at": "2026-03-21T15:04:05Z",
      "sent_at": "2026-03-21T15:04:06Z"
    }
  },
  "request_id": "bce56cba-0827-44aa-bb56-4f200ba15ee6"
}

Send invoice reminder#

POST/v1/invoices/{invoice_id}/send-reminderIdempotentRequires scope: commerce.invoices.write

Attempts a reminder email for an already issued collectible invoice. Safe to retry with the same Idempotency-Key.

Path parameters
invoice_idstringrequired

Flint invoice ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDINSUFFICIENT_SCOPEINVALID_API_KEYINVALID_REQUESTRATE_LIMIT_EXCEEDEDREQUEST_TIMEOUTRESOURCE_NOT_FOUNDSERVICE_UNAVAILABLE
Bash
curl -X POST https://api.withflintpay.com/v1/invoices/inv_01J00000000000000000000000/send-reminder \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "invoice": {
      "invoice_id": "inv_01J00000000000000000000000",
      "merchant_id": "mer_01J00000000000000000000000",
      "order_id": "ord_01J00000000000000000000000",
      "customer_id": "cus_01J00000000000000000000000",
      "invoice_number": "1042",
      "status": "open",
      "refund_status": "none",
      "collection_block_status": "",
      "due_at": "2026-03-31T23:59:59Z",
      "sent_at": "2026-03-21T15:04:05Z",
      "recipient_email": "buyer@example.com",
      "cc_emails": [
        "owner@example.com"
      ],
      "reference": "PO-1042",
      "snapshot": {
        "merchant_display_name": "Flint Services",
        "customer_display_name": "Avery Buyer",
        "customer_email": "buyer@example.com",
        "line_items": [
          {
            "name": "Consulting session",
            "quantity": 1,
            "unit_price_money": {
              "amount": 15000,
              "currency": "USD"
            },
            "base_subtotal_money": {
              "amount": 15000,
              "currency": "USD"
            },
            "modifier_total_money": {
              "amount": 0,
              "currency": "USD"
            },
            "subtotal_money": {
              "amount": 15000,
              "currency": "USD"
            },
            "discount_money": {
              "amount": 0,
              "currency": "USD"
            },
            "tax_money": {
              "amount": 0,
              "currency": "USD"
            },
            "total_money": {
              "amount": 15000,
              "currency": "USD"
            }
          }
        ],
        "pricing_amounts": {
          "subtotal_money": {
            "amount": 15000,
            "currency": "USD"
          },
          "discount_money": {
            "amount": 0,
            "currency": "USD"
          },
          "charge_money": {
            "amount": 0,
            "currency": "USD"
          },
          "tax_money": {
            "amount": 0,
            "currency": "USD"
          },
          "requested_tip_money": {
            "amount": 0,
            "currency": "USD"
          },
          "total_money": {
            "amount": 15000,
            "currency": "USD"
          }
        },
        "memo": "Payment due within 10 days."
      },
      "outstanding_money": {
        "amount": 15000,
        "currency": "USD"
      },
      "paid_money": {
        "amount": 0,
        "currency": "USD"
      },
      "refunded_money": {
        "amount": 0,
        "currency": "USD"
      },
      "is_overdue": false,
      "created_at": "2026-03-21T15:03:00Z",
      "updated_at": "2026-03-21T15:04:05Z"
    },
    "public_url": "https://checkout.withflintpay.com/i/ivat_01J0000000000000000000000#invoice_token=ivt_example",
    "delivery_attempt": {
      "invoice_delivery_attempt_id": "indel_01J00000000000000000000000",
      "delivery_type": "send",
      "channel": "email",
      "to_email": "buyer@example.com",
      "status": "sent",
      "created_at": "2026-03-21T15:04:05Z",
      "sent_at": "2026-03-21T15:04:06Z"
    }
  },
  "request_id": "bce56cba-0827-44aa-bb56-4f200ba15ee6"
}

Void invoice#

POST/v1/invoices/{invoice_id}/voidIdempotentRequires scope: commerce.invoices.write

Voids an unpaid invoice so the associated order can be edited or collected again.

Path parameters
invoice_idstringrequired

Flint invoice ID.

Response · 200
dataobjectrequired
metaobject
request_idstring

Error codes

AUTH_REQUIREDINSUFFICIENT_SCOPEINVALID_API_KEYINVALID_REQUESTRATE_LIMIT_EXCEEDEDRESOURCE_NOT_FOUND
Bash
curl -X POST https://api.withflintpay.com/v1/invoices/inv_01J00000000000000000000000/void \
  -H "Authorization: Bearer YOUR_API_KEY"
JSON
{
  "data": {
    "invoice_id": "inv_01J00000000000000000000000",
    "merchant_id": "mer_01J00000000000000000000000",
    "order_id": "ord_01J00000000000000000000000",
    "customer_id": "cus_01J00000000000000000000000",
    "invoice_number": "1042",
    "status": "open",
    "refund_status": "none",
    "collection_block_status": "",
    "due_at": "2026-03-31T23:59:59Z",
    "sent_at": "2026-03-21T15:04:05Z",
    "recipient_email": "buyer@example.com",
    "cc_emails": [
      "owner@example.com"
    ],
    "reference": "PO-1042",
    "snapshot": {
      "merchant_display_name": "Flint Services",
      "customer_display_name": "Avery Buyer",
      "customer_email": "buyer@example.com",
      "line_items": [
        {
          "name": "Consulting session",
          "quantity": 1,
          "unit_price_money": {
            "amount": 15000,
            "currency": "USD"
          },
          "base_subtotal_money": {
            "amount": 15000,
            "currency": "USD"
          },
          "modifier_total_money": {
            "amount": 0,
            "currency": "USD"
          },
          "subtotal_money": {
            "amount": 15000,
            "currency": "USD"
          },
          "discount_money": {
            "amount": 0,
            "currency": "USD"
          },
          "tax_money": {
            "amount": 0,
            "currency": "USD"
          },
          "total_money": {
            "amount": 15000,
            "currency": "USD"
          }
        }
      ],
      "pricing_amounts": {
        "subtotal_money": {
          "amount": 15000,
          "currency": "USD"
        },
        "discount_money": {
          "amount": 0,
          "currency": "USD"
        },
        "charge_money": {
          "amount": 0,
          "currency": "USD"
        },
        "tax_money": {
          "amount": 0,
          "currency": "USD"
        },
        "requested_tip_money": {
          "amount": 0,
          "currency": "USD"
        },
        "total_money": {
          "amount": 15000,
          "currency": "USD"
        }
      },
      "memo": "Payment due within 10 days."
    },
    "outstanding_money": {
      "amount": 15000,
      "currency": "USD"
    },
    "paid_money": {
      "amount": 0,
      "currency": "USD"
    },
    "refunded_money": {
      "amount": 0,
      "currency": "USD"
    },
    "is_overdue": false,
    "created_at": "2026-03-21T15:03:00Z",
    "updated_at": "2026-03-21T15:04:05Z"
  },
  "request_id": "bce56cba-0827-44aa-bb56-4f200ba15ee6"
}
Rate this doc