Home

Invoice Falcon API

v1.0.0

Contact: support@invoicefalcon.com

Base URL
https://app.invoicefalcon.com/api/v1/externalProduction

API for managing invoices, templates, customers, and settings for your Shopify store.

All endpoints require authentication via the X-Auth-Token header. Generate your API key in the Invoice Falcon app under Settings > Integrations.

Authentication

ApiKeyAuthapiKey

Your store's API key. Generate it under Settings > Integrations.

API Key: X-Auth-Token in header

Invoices

List, create, search, and manage invoices.

List invoices

GET
https://app.invoicefalcon.com/api/v1/external/invoices

Retrieve a paginated list of invoices. Supports filtering by document type, financial status, and date range.

Parameters

invoice_typestringinvoicequotepro_formainvoicequery

Filter by document type.

financial_statusstringpaidpendingpartially_paidpartially_refundedrefundedvoidedauthorizedquery

Filter by payment status.

created_at_minstring<date>query

Filter invoices created on or after this date (YYYY-MM-DD).

created_at_maxstring<date>query

Filter invoices created on or before this date (YYYY-MM-DD).

pageinteger>= 11query

Page number.

per_pageinteger[1, 250]25query

Items per page (max 250).

Response

200OKobject

A paginated list of invoices.

401Unauthorizedobject

Missing or invalid API key.

429Too Many Requestsobject

Rate limit exceeded. Check X-RateLimit-Reset header.

Authorization

ApiKeyAuthapiKey in header

Your store's API key. Generate it under Settings > Integrations.

List invoices
curl -X GET 'https://app.invoicefalcon.com/api/v1/external/invoices'
const response = await fetch('https://app.invoicefalcon.com/api/v1/external/invoices', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('https://app.invoicefalcon.com/api/v1/external/invoices')
data = response.json()
{
  "invoices": [
    {
      "id": 0,
      "slug": "string",
      "number": "string",
      "invoice_type": "invoice",
      "total_price": "string",
      "currency": "string",
      "financial_status": "string",
      "order_name": "string",
      "customer_name": "string",
      "customer_email": "string",
      "created_at": "2024-01-15T09:30:00Z",
      "updated_at": "2024-01-15T09:30:00Z"
    }
  ],
  "meta": {
    "total": 0,
    "page": 0,
    "per_page": 0,
    "total_pages": 0
  }
}
{
  "error": "Invalid API key"
}
{
  "error": "Rate limit exceeded",
  "retry_after": 0,
  "message": "string"
}

Create an invoice

POST
https://app.invoicefalcon.com/api/v1/external/invoices

Create (or retrieve) an invoice from a Shopify order ID. If the invoice already exists, it is returned. Optionally generates the PDF immediately.

Body

application/json
order_idintegerrequired

Shopify order or draft order ID.

draftbooleanfalse

Set true for draft orders (quotes/pro-formas).

generate_pdfbooleantrue

Whether to generate the PDF immediately.

template_idinteger

Optional template ID for PDF generation.

Response

201Createdobject

Invoice created.

401Unauthorizedobject

Missing or invalid API key.

422Unprocessable Entityobject

Request could not be processed.

429Too Many Requestsobject

Rate limit exceeded. Check X-RateLimit-Reset header.

Authorization

ApiKeyAuthapiKey in header

Your store's API key. Generate it under Settings > Integrations.

Create an invoice
curl -X POST 'https://app.invoicefalcon.com/api/v1/external/invoices' \
  -H 'Content-Type: application/json' \
  -d '{
    "order_id": 0,
    "draft": false,
    "generate_pdf": true,
    "template_id": 0
  }'
const response = await fetch('https://app.invoicefalcon.com/api/v1/external/invoices', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "order_id": 0,
      "draft": false,
      "generate_pdf": true,
      "template_id": 0
    }),
});

const data = await response.json();
import requests

payload = {
  "order_id": 0,
  "draft": False,
  "generate_pdf": True,
  "template_id": 0
}

response = requests.post('https://app.invoicefalcon.com/api/v1/external/invoices', json=payload)
data = response.json()
Request Body
{
  "order_id": 0,
  "draft": false,
  "generate_pdf": true,
  "template_id": 0
}
{
  "invoice": {
    "id": 0,
    "slug": "string",
    "number": "string",
    "invoice_type": "string",
    "total_price": "string",
    "currency": "string",
    "financial_status": "string",
    "fulfillment_status": "string",
    "order_name": "string",
    "order_number": 0,
    "processed_at": "2024-01-15T09:30:00Z",
    "note": "string",
    "created_at": "2024-01-15T09:30:00Z",
    "updated_at": "2024-01-15T09:30:00Z",
    "customer": {
      "id": 0,
      "email": "string",
      "first_name": "string",
      "last_name": "string"
    },
    "billing_address": {
      "first_name": "string",
      "last_name": "string",
      "company": "string",
      "address1": "string",
      "address2": "string",
      "city": "string",
      "province": "string",
      "country": "string",
      "zip": "string",
      "phone": "string"
    },
    "shipping_address": {
      "first_name": "string",
      "last_name": "string",
      "company": "string",
      "address1": "string",
      "address2": "string",
      "city": "string",
      "province": "string",
      "country": "string",
      "zip": "string",
      "phone": "string"
    },
    "line_items": [
      {
        "title": "string",
        "variant_title": "string",
        "quantity": 0,
        "price": "string",
        "sku": "string"
      }
    ],
    "tax_lines": [
      {
        "title": "string",
        "rate": 0,
        "price": "string"
      }
    ]
  }
}
{
  "error": "Invalid API key"
}
{
  "error": "string",
  "errors": {}
}
{
  "error": "Rate limit exceeded",
  "retry_after": 0,
  "message": "string"
}

Search invoices

GET
https://app.invoicefalcon.com/api/v1/external/invoices/search

Search invoices by customer name, email, invoice number, order name, or country.

Parameters

qstringrequiredquery

Search query string.

pageinteger>= 11query

Page number.

per_pageinteger[1, 250]25query

Items per page (max 250).

Response

200OKobject

Matching invoices.

401Unauthorizedobject

Missing or invalid API key.

422Unprocessable Entityobject

Request could not be processed.

429Too Many Requestsobject

Rate limit exceeded. Check X-RateLimit-Reset header.

Authorization

ApiKeyAuthapiKey in header

Your store's API key. Generate it under Settings > Integrations.

Search invoices
curl -X GET 'https://app.invoicefalcon.com/api/v1/external/invoices/search'
const response = await fetch('https://app.invoicefalcon.com/api/v1/external/invoices/search', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('https://app.invoicefalcon.com/api/v1/external/invoices/search')
data = response.json()
{
  "invoices": [
    {
      "id": 0,
      "slug": "string",
      "number": "string",
      "invoice_type": "invoice",
      "total_price": "string",
      "currency": "string",
      "financial_status": "string",
      "order_name": "string",
      "customer_name": "string",
      "customer_email": "string",
      "created_at": "2024-01-15T09:30:00Z",
      "updated_at": "2024-01-15T09:30:00Z"
    }
  ],
  "meta": {
    "total": 0,
    "page": 0,
    "per_page": 0,
    "total_pages": 0
  }
}
{
  "error": "Invalid API key"
}
{
  "error": "string",
  "errors": {}
}
{
  "error": "Rate limit exceeded",
  "retry_after": 0,
  "message": "string"
}

Get an invoice

GET
https://app.invoicefalcon.com/api/v1/external/invoices/{slug}

Retrieve a single invoice by its slug. Returns full details including line items, tax lines, customer, and addresses.

Parameters

slugstringrequiredpath

The invoice's unique slug (UUID).

Response

200OKobject

The invoice with full details.

401Unauthorizedobject

Missing or invalid API key.

404Not Foundobject

Resource not found.

429Too Many Requestsobject

Rate limit exceeded. Check X-RateLimit-Reset header.

Authorization

ApiKeyAuthapiKey in header

Your store's API key. Generate it under Settings > Integrations.

Get an invoice
curl -X GET 'https://app.invoicefalcon.com/api/v1/external/invoices/{slug}'
const response = await fetch('https://app.invoicefalcon.com/api/v1/external/invoices/{slug}', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('https://app.invoicefalcon.com/api/v1/external/invoices/{slug}')
data = response.json()
{
  "invoice": {
    "id": 0,
    "slug": "string",
    "number": "string",
    "invoice_type": "string",
    "total_price": "string",
    "currency": "string",
    "financial_status": "string",
    "fulfillment_status": "string",
    "order_name": "string",
    "order_number": 0,
    "processed_at": "2024-01-15T09:30:00Z",
    "note": "string",
    "created_at": "2024-01-15T09:30:00Z",
    "updated_at": "2024-01-15T09:30:00Z",
    "customer": {
      "id": 0,
      "email": "string",
      "first_name": "string",
      "last_name": "string"
    },
    "billing_address": {
      "first_name": "string",
      "last_name": "string",
      "company": "string",
      "address1": "string",
      "address2": "string",
      "city": "string",
      "province": "string",
      "country": "string",
      "zip": "string",
      "phone": "string"
    },
    "shipping_address": {
      "first_name": "string",
      "last_name": "string",
      "company": "string",
      "address1": "string",
      "address2": "string",
      "city": "string",
      "province": "string",
      "country": "string",
      "zip": "string",
      "phone": "string"
    },
    "line_items": [
      {
        "title": "string",
        "variant_title": "string",
        "quantity": 0,
        "price": "string",
        "sku": "string"
      }
    ],
    "tax_lines": [
      {
        "title": "string",
        "rate": 0,
        "price": "string"
      }
    ]
  }
}
{
  "error": "Invalid API key"
}
{
  "error": "Not found"
}
{
  "error": "Rate limit exceeded",
  "retry_after": 0,
  "message": "string"
}

Regenerate invoice from Shopify

POST
https://app.invoicefalcon.com/api/v1/external/invoices/{slug}/regenerate

Force re-sync the invoice from the Shopify order data and regenerate the PDF. Useful when an order has been edited in Shopify.

Parameters

slugstringrequiredpath

The invoice's unique slug (UUID).

template_idintegerquery

Optional template ID for PDF regeneration.

Response

200OKobject

Invoice regenerated.

401Unauthorizedobject

Missing or invalid API key.

404Not Foundobject

Resource not found.

422Unprocessable Entityobject

Request could not be processed.

429Too Many Requestsobject

Rate limit exceeded. Check X-RateLimit-Reset header.

Authorization

ApiKeyAuthapiKey in header

Your store's API key. Generate it under Settings > Integrations.

Regenerate invoice from Shopify
curl -X POST 'https://app.invoicefalcon.com/api/v1/external/invoices/{slug}/regenerate'
const response = await fetch('https://app.invoicefalcon.com/api/v1/external/invoices/{slug}/regenerate', {
  method: 'POST',
});

const data = await response.json();
import requests

response = requests.post('https://app.invoicefalcon.com/api/v1/external/invoices/{slug}/regenerate')
data = response.json()
{
  "invoice": {
    "id": 0,
    "slug": "string",
    "number": "string",
    "invoice_type": "string",
    "total_price": "string",
    "currency": "string",
    "financial_status": "string",
    "fulfillment_status": "string",
    "order_name": "string",
    "order_number": 0,
    "processed_at": "2024-01-15T09:30:00Z",
    "note": "string",
    "created_at": "2024-01-15T09:30:00Z",
    "updated_at": "2024-01-15T09:30:00Z",
    "customer": {
      "id": 0,
      "email": "string",
      "first_name": "string",
      "last_name": "string"
    },
    "billing_address": {
      "first_name": "string",
      "last_name": "string",
      "company": "string",
      "address1": "string",
      "address2": "string",
      "city": "string",
      "province": "string",
      "country": "string",
      "zip": "string",
      "phone": "string"
    },
    "shipping_address": {
      "first_name": "string",
      "last_name": "string",
      "company": "string",
      "address1": "string",
      "address2": "string",
      "city": "string",
      "province": "string",
      "country": "string",
      "zip": "string",
      "phone": "string"
    },
    "line_items": [
      {
        "title": "string",
        "variant_title": "string",
        "quantity": 0,
        "price": "string",
        "sku": "string"
      }
    ],
    "tax_lines": [
      {
        "title": "string",
        "rate": 0,
        "price": "string"
      }
    ]
  }
}
{
  "error": "Invalid API key"
}
{
  "error": "Not found"
}
{
  "error": "string",
  "errors": {}
}
{
  "error": "Rate limit exceeded",
  "retry_after": 0,
  "message": "string"
}

Documents

Generate and download PDF documents.

Bulk generate PDFs

POST
https://app.invoicefalcon.com/api/v1/external/invoices/bulk_pdf

Queue a bulk PDF generation job for a set of invoice IDs. Returns a bulk action ID to track progress. Maximum 5,000 invoices per request.

Body

application/json
invoice_idsArray<integer>required

Array of invoice IDs to generate PDFs for.

template_namestringdefault

Template name to use.

Response

202Acceptedobject

Bulk action queued.

401Unauthorizedobject

Missing or invalid API key.

422Unprocessable Entityobject

Request could not be processed.

429Too Many Requests

A bulk action is already in progress.

Authorization

ApiKeyAuthapiKey in header

Your store's API key. Generate it under Settings > Integrations.

Bulk generate PDFs
curl -X POST 'https://app.invoicefalcon.com/api/v1/external/invoices/bulk_pdf' \
  -H 'Content-Type: application/json' \
  -d '{
    "invoice_ids": [
      0
    ],
    "template_name": "default"
  }'
const response = await fetch('https://app.invoicefalcon.com/api/v1/external/invoices/bulk_pdf', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "invoice_ids": [
        0
      ],
      "template_name": "default"
    }),
});

const data = await response.json();
import requests

payload = {
  "invoice_ids": [
    0
  ],
  "template_name": "default"
}

response = requests.post('https://app.invoicefalcon.com/api/v1/external/invoices/bulk_pdf', json=payload)
data = response.json()
Request Body
{
  "invoice_ids": [
    0
  ],
  "template_name": "default"
}
{
  "bulk_action": {
    "id": 0,
    "status": "string",
    "total_count": 0
  }
}
{
  "error": "Invalid API key"
}
{
  "error": "string",
  "errors": {}
}

Get invoice PDF download link

GET
https://app.invoicefalcon.com/api/v1/external/invoices/{slug}/pdf

Generate (if needed) and return a signed download URL for the invoice PDF. Optionally specify a template.

Parameters

slugstringrequiredpath

The invoice's unique slug (UUID).

template_idintegerquery

Optional template ID. Falls back to the store's default.

Response

200OKobject

PDF download link.

401Unauthorizedobject

Missing or invalid API key.

404Not Foundobject

Resource not found.

422Unprocessable Entityobject

Request could not be processed.

429Too Many Requestsobject

Rate limit exceeded. Check X-RateLimit-Reset header.

Authorization

ApiKeyAuthapiKey in header

Your store's API key. Generate it under Settings > Integrations.

Get invoice PDF download link
curl -X GET 'https://app.invoicefalcon.com/api/v1/external/invoices/{slug}/pdf'
const response = await fetch('https://app.invoicefalcon.com/api/v1/external/invoices/{slug}/pdf', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('https://app.invoicefalcon.com/api/v1/external/invoices/{slug}/pdf')
data = response.json()
{
  "invoice": {
    "slug": "string",
    "number": "string",
    "pdf_url": "https://example.com"
  }
}
{
  "error": "Invalid API key"
}
{
  "error": "Not found"
}
{
  "error": "string",
  "errors": {}
}
{
  "error": "Rate limit exceeded",
  "retry_after": 0,
  "message": "string"
}

Email

Send invoice emails to customers.

Send invoice email

POST
https://app.invoicefalcon.com/api/v1/external/invoices/{slug}/send_email

Send (or resend) the invoice email to the customer. Optionally specify a template for the PDF attachment.

Body

application/json
template_idinteger

Optional template ID for the PDF attachment.

Parameters

slugstringrequiredpath

The invoice's unique slug (UUID).

Response

200OKobject

Email queued for delivery.

401Unauthorizedobject

Missing or invalid API key.

404Not Foundobject

Resource not found.

422Unprocessable Entityobject

Request could not be processed.

429Too Many Requestsobject

Rate limit exceeded. Check X-RateLimit-Reset header.

Authorization

ApiKeyAuthapiKey in header

Your store's API key. Generate it under Settings > Integrations.

Send invoice email
curl -X POST 'https://app.invoicefalcon.com/api/v1/external/invoices/{slug}/send_email' \
  -H 'Content-Type: application/json' \
  -d '{
    "template_id": 0
  }'
const response = await fetch('https://app.invoicefalcon.com/api/v1/external/invoices/{slug}/send_email', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "template_id": 0
    }),
});

const data = await response.json();
import requests

payload = {
  "template_id": 0
}

response = requests.post('https://app.invoicefalcon.com/api/v1/external/invoices/{slug}/send_email', json=payload)
data = response.json()
Request Body
{
  "template_id": 0
}
{
  "message": "Email queued for delivery"
}
{
  "error": "Invalid API key"
}
{
  "error": "Not found"
}
{
  "error": "string",
  "errors": {}
}
{
  "error": "Rate limit exceeded",
  "retry_after": 0,
  "message": "string"
}

Templates

Manage invoice templates and their settings.

List templates

GET
https://app.invoicefalcon.com/api/v1/external/templates

Retrieve all templates for the authenticated store.

Response

200OKobject

A list of templates.

401Unauthorizedobject

Missing or invalid API key.

429Too Many Requestsobject

Rate limit exceeded. Check X-RateLimit-Reset header.

Authorization

ApiKeyAuthapiKey in header

Your store's API key. Generate it under Settings > Integrations.

List templates
curl -X GET 'https://app.invoicefalcon.com/api/v1/external/templates'
const response = await fetch('https://app.invoicefalcon.com/api/v1/external/templates', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('https://app.invoicefalcon.com/api/v1/external/templates')
data = response.json()
{
  "templates": [
    {
      "id": 0,
      "name": "string",
      "template_type": "invoice",
      "design_key": "string",
      "pre_selected_orders": true,
      "pre_selected_draft_orders": true,
      "pre_selected_pos_orders": true,
      "pre_selected_credit_notes": true,
      "accent_color": "string",
      "font_family": "string",
      "font_size": 0,
      "date_format": "string",
      "invoice_number_prefix": "string",
      "logo_url": "https://example.com",
      "logo_width": 0,
      "logo_enabled": true,
      "created_at": "2024-01-15T09:30:00Z",
      "updated_at": "2024-01-15T09:30:00Z"
    }
  ]
}
{
  "error": "Invalid API key"
}
{
  "error": "Rate limit exceeded",
  "retry_after": 0,
  "message": "string"
}

Create a template

POST
https://app.invoicefalcon.com/api/v1/external/templates

Body

application/json
templateTemplateInputrequired
Show child attributes
namestring
template_typestringinvoicepacking_slipcredit_note
accent_colorstring
font_familystring
font_sizeinteger
date_formatstring
invoice_number_prefixstring
logo_urlstring<uri>
logo_widthinteger
logo_enabledboolean
pre_selected_ordersboolean
pre_selected_draft_ordersboolean
pre_selected_pos_ordersboolean
pre_selected_credit_notesboolean

Response

201Createdobject

Template created.

401Unauthorizedobject

Missing or invalid API key.

422Unprocessable Entityobject

Request could not be processed.

429Too Many Requestsobject

Rate limit exceeded. Check X-RateLimit-Reset header.

Authorization

ApiKeyAuthapiKey in header

Your store's API key. Generate it under Settings > Integrations.

Create a template
curl -X POST 'https://app.invoicefalcon.com/api/v1/external/templates' \
  -H 'Content-Type: application/json' \
  -d '{
    "template": {
      "name": "string",
      "template_type": "invoice",
      "accent_color": "string",
      "font_family": "string",
      "font_size": 0,
      "date_format": "string",
      "invoice_number_prefix": "string",
      "logo_url": "https://example.com",
      "logo_width": 0,
      "logo_enabled": true,
      "pre_selected_orders": true,
      "pre_selected_draft_orders": true,
      "pre_selected_pos_orders": true,
      "pre_selected_credit_notes": true
    }
  }'
const response = await fetch('https://app.invoicefalcon.com/api/v1/external/templates', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "template": {
        "name": "string",
        "template_type": "invoice",
        "accent_color": "string",
        "font_family": "string",
        "font_size": 0,
        "date_format": "string",
        "invoice_number_prefix": "string",
        "logo_url": "https://example.com",
        "logo_width": 0,
        "logo_enabled": true,
        "pre_selected_orders": true,
        "pre_selected_draft_orders": true,
        "pre_selected_pos_orders": true,
        "pre_selected_credit_notes": true
      }
    }),
});

const data = await response.json();
import requests

payload = {
  "template": {
    "name": "string",
    "template_type": "invoice",
    "accent_color": "string",
    "font_family": "string",
    "font_size": 0,
    "date_format": "string",
    "invoice_number_prefix": "string",
    "logo_url": "https://example.com",
    "logo_width": 0,
    "logo_enabled": True,
    "pre_selected_orders": True,
    "pre_selected_draft_orders": True,
    "pre_selected_pos_orders": True,
    "pre_selected_credit_notes": True
  }
}

response = requests.post('https://app.invoicefalcon.com/api/v1/external/templates', json=payload)
data = response.json()
Request Body
{
  "template": {
    "name": "string",
    "template_type": "invoice",
    "accent_color": "string",
    "font_family": "string",
    "font_size": 0,
    "date_format": "string",
    "invoice_number_prefix": "string",
    "logo_url": "https://example.com",
    "logo_width": 0,
    "logo_enabled": true,
    "pre_selected_orders": true,
    "pre_selected_draft_orders": true,
    "pre_selected_pos_orders": true,
    "pre_selected_credit_notes": true
  }
}
{
  "template": {
    "id": 0,
    "name": "string",
    "template_type": "invoice",
    "design_key": "string",
    "pre_selected_orders": true,
    "pre_selected_draft_orders": true,
    "pre_selected_pos_orders": true,
    "pre_selected_credit_notes": true,
    "accent_color": "string",
    "font_family": "string",
    "font_size": 0,
    "date_format": "string",
    "invoice_number_prefix": "string",
    "logo_url": "https://example.com",
    "logo_width": 0,
    "logo_enabled": true,
    "created_at": "2024-01-15T09:30:00Z",
    "updated_at": "2024-01-15T09:30:00Z"
  }
}
{
  "error": "Invalid API key"
}
{
  "error": "string",
  "errors": {}
}
{
  "error": "Rate limit exceeded",
  "retry_after": 0,
  "message": "string"
}

Get a template

GET
https://app.invoicefalcon.com/api/v1/external/templates/{id}

Parameters

idintegerrequiredpath

Response

200OKobject

The template.

401Unauthorizedobject

Missing or invalid API key.

404Not Foundobject

Resource not found.

429Too Many Requestsobject

Rate limit exceeded. Check X-RateLimit-Reset header.

Authorization

ApiKeyAuthapiKey in header

Your store's API key. Generate it under Settings > Integrations.

Get a template
curl -X GET 'https://app.invoicefalcon.com/api/v1/external/templates/{id}'
const response = await fetch('https://app.invoicefalcon.com/api/v1/external/templates/{id}', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('https://app.invoicefalcon.com/api/v1/external/templates/{id}')
data = response.json()
{
  "template": {
    "id": 0,
    "name": "string",
    "template_type": "invoice",
    "design_key": "string",
    "pre_selected_orders": true,
    "pre_selected_draft_orders": true,
    "pre_selected_pos_orders": true,
    "pre_selected_credit_notes": true,
    "accent_color": "string",
    "font_family": "string",
    "font_size": 0,
    "date_format": "string",
    "invoice_number_prefix": "string",
    "logo_url": "https://example.com",
    "logo_width": 0,
    "logo_enabled": true,
    "created_at": "2024-01-15T09:30:00Z",
    "updated_at": "2024-01-15T09:30:00Z"
  }
}
{
  "error": "Invalid API key"
}
{
  "error": "Not found"
}
{
  "error": "Rate limit exceeded",
  "retry_after": 0,
  "message": "string"
}

Delete a template

DELETE
https://app.invoicefalcon.com/api/v1/external/templates/{id}

Parameters

idintegerrequiredpath

Response

204No Content

Template deleted.

401Unauthorizedobject

Missing or invalid API key.

404Not Foundobject

Resource not found.

429Too Many Requestsobject

Rate limit exceeded. Check X-RateLimit-Reset header.

Authorization

ApiKeyAuthapiKey in header

Your store's API key. Generate it under Settings > Integrations.

Delete a template
curl -X DELETE 'https://app.invoicefalcon.com/api/v1/external/templates/{id}'
const response = await fetch('https://app.invoicefalcon.com/api/v1/external/templates/{id}', {
  method: 'DELETE',
});

const data = await response.json();
import requests

response = requests.delete('https://app.invoicefalcon.com/api/v1/external/templates/{id}')
data = response.json()
{
  "error": "Invalid API key"
}
{
  "error": "Not found"
}
{
  "error": "Rate limit exceeded",
  "retry_after": 0,
  "message": "string"
}

Update a template

PATCH
https://app.invoicefalcon.com/api/v1/external/templates/{id}

Body

application/json
templateTemplateInputrequired
Show child attributes
namestring
template_typestringinvoicepacking_slipcredit_note
accent_colorstring
font_familystring
font_sizeinteger
date_formatstring
invoice_number_prefixstring
logo_urlstring<uri>
logo_widthinteger
logo_enabledboolean
pre_selected_ordersboolean
pre_selected_draft_ordersboolean
pre_selected_pos_ordersboolean
pre_selected_credit_notesboolean

Parameters

idintegerrequiredpath

Response

200OKobject

Template updated.

401Unauthorizedobject

Missing or invalid API key.

404Not Foundobject

Resource not found.

422Unprocessable Entityobject

Request could not be processed.

429Too Many Requestsobject

Rate limit exceeded. Check X-RateLimit-Reset header.

Authorization

ApiKeyAuthapiKey in header

Your store's API key. Generate it under Settings > Integrations.

Update a template
curl -X PATCH 'https://app.invoicefalcon.com/api/v1/external/templates/{id}' \
  -H 'Content-Type: application/json' \
  -d '{
    "template": {
      "name": "string",
      "template_type": "invoice",
      "accent_color": "string",
      "font_family": "string",
      "font_size": 0,
      "date_format": "string",
      "invoice_number_prefix": "string",
      "logo_url": "https://example.com",
      "logo_width": 0,
      "logo_enabled": true,
      "pre_selected_orders": true,
      "pre_selected_draft_orders": true,
      "pre_selected_pos_orders": true,
      "pre_selected_credit_notes": true
    }
  }'
const response = await fetch('https://app.invoicefalcon.com/api/v1/external/templates/{id}', {
  method: 'PATCH',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "template": {
        "name": "string",
        "template_type": "invoice",
        "accent_color": "string",
        "font_family": "string",
        "font_size": 0,
        "date_format": "string",
        "invoice_number_prefix": "string",
        "logo_url": "https://example.com",
        "logo_width": 0,
        "logo_enabled": true,
        "pre_selected_orders": true,
        "pre_selected_draft_orders": true,
        "pre_selected_pos_orders": true,
        "pre_selected_credit_notes": true
      }
    }),
});

const data = await response.json();
import requests

payload = {
  "template": {
    "name": "string",
    "template_type": "invoice",
    "accent_color": "string",
    "font_family": "string",
    "font_size": 0,
    "date_format": "string",
    "invoice_number_prefix": "string",
    "logo_url": "https://example.com",
    "logo_width": 0,
    "logo_enabled": True,
    "pre_selected_orders": True,
    "pre_selected_draft_orders": True,
    "pre_selected_pos_orders": True,
    "pre_selected_credit_notes": True
  }
}

response = requests.patch('https://app.invoicefalcon.com/api/v1/external/templates/{id}', json=payload)
data = response.json()
Request Body
{
  "template": {
    "name": "string",
    "template_type": "invoice",
    "accent_color": "string",
    "font_family": "string",
    "font_size": 0,
    "date_format": "string",
    "invoice_number_prefix": "string",
    "logo_url": "https://example.com",
    "logo_width": 0,
    "logo_enabled": true,
    "pre_selected_orders": true,
    "pre_selected_draft_orders": true,
    "pre_selected_pos_orders": true,
    "pre_selected_credit_notes": true
  }
}
{
  "template": {
    "id": 0,
    "name": "string",
    "template_type": "invoice",
    "design_key": "string",
    "pre_selected_orders": true,
    "pre_selected_draft_orders": true,
    "pre_selected_pos_orders": true,
    "pre_selected_credit_notes": true,
    "accent_color": "string",
    "font_family": "string",
    "font_size": 0,
    "date_format": "string",
    "invoice_number_prefix": "string",
    "logo_url": "https://example.com",
    "logo_width": 0,
    "logo_enabled": true,
    "created_at": "2024-01-15T09:30:00Z",
    "updated_at": "2024-01-15T09:30:00Z"
  }
}
{
  "error": "Invalid API key"
}
{
  "error": "Not found"
}
{
  "error": "string",
  "errors": {}
}
{
  "error": "Rate limit exceeded",
  "retry_after": 0,
  "message": "string"
}

Customers

Manage customer records (tax numbers, addresses).

List customers

GET
https://app.invoicefalcon.com/api/v1/external/customers

Retrieve a paginated list of customers. Supports search by name, email, or tax number.

Parameters

searchstringquery

Search by name, email, or tax number.

pageinteger>= 11query

Page number.

per_pageinteger[1, 250]25query

Items per page (max 250).

Response

200OKobject

A paginated list of customers.

401Unauthorizedobject

Missing or invalid API key.

429Too Many Requestsobject

Rate limit exceeded. Check X-RateLimit-Reset header.

Authorization

ApiKeyAuthapiKey in header

Your store's API key. Generate it under Settings > Integrations.

List customers
curl -X GET 'https://app.invoicefalcon.com/api/v1/external/customers'
const response = await fetch('https://app.invoicefalcon.com/api/v1/external/customers', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('https://app.invoicefalcon.com/api/v1/external/customers')
data = response.json()
{
  "customers": [
    {
      "id": 0,
      "email": "string",
      "first_name": "string",
      "last_name": "string",
      "phone": "string",
      "tax_number": "string",
      "eori_number": "string",
      "tags": "string",
      "shopify_customer_id": 0,
      "created_at": "2024-01-15T09:30:00Z",
      "updated_at": "2024-01-15T09:30:00Z"
    }
  ],
  "meta": {
    "total": 0,
    "page": 0,
    "per_page": 0,
    "total_pages": 0
  }
}
{
  "error": "Invalid API key"
}
{
  "error": "Rate limit exceeded",
  "retry_after": 0,
  "message": "string"
}

Create a customer

POST
https://app.invoicefalcon.com/api/v1/external/customers

Body

application/json
customerCustomerInputrequired
Show child attributes
emailstring
first_namestring
last_namestring
phonestring
tax_numberstring
eori_numberstring
tagsstring

Response

201Createdobject

Customer created.

401Unauthorizedobject

Missing or invalid API key.

422Unprocessable Entityobject

Request could not be processed.

429Too Many Requestsobject

Rate limit exceeded. Check X-RateLimit-Reset header.

Authorization

ApiKeyAuthapiKey in header

Your store's API key. Generate it under Settings > Integrations.

Create a customer
curl -X POST 'https://app.invoicefalcon.com/api/v1/external/customers' \
  -H 'Content-Type: application/json' \
  -d '{
    "customer": {
      "email": "string",
      "first_name": "string",
      "last_name": "string",
      "phone": "string",
      "tax_number": "string",
      "eori_number": "string",
      "tags": "string"
    }
  }'
const response = await fetch('https://app.invoicefalcon.com/api/v1/external/customers', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "customer": {
        "email": "string",
        "first_name": "string",
        "last_name": "string",
        "phone": "string",
        "tax_number": "string",
        "eori_number": "string",
        "tags": "string"
      }
    }),
});

const data = await response.json();
import requests

payload = {
  "customer": {
    "email": "string",
    "first_name": "string",
    "last_name": "string",
    "phone": "string",
    "tax_number": "string",
    "eori_number": "string",
    "tags": "string"
  }
}

response = requests.post('https://app.invoicefalcon.com/api/v1/external/customers', json=payload)
data = response.json()
Request Body
{
  "customer": {
    "email": "string",
    "first_name": "string",
    "last_name": "string",
    "phone": "string",
    "tax_number": "string",
    "eori_number": "string",
    "tags": "string"
  }
}
{
  "customer": {
    "id": 0,
    "email": "string",
    "first_name": "string",
    "last_name": "string",
    "phone": "string",
    "tax_number": "string",
    "eori_number": "string",
    "tags": "string",
    "shopify_customer_id": 0,
    "created_at": "2024-01-15T09:30:00Z",
    "updated_at": "2024-01-15T09:30:00Z"
  }
}
{
  "error": "Invalid API key"
}
{
  "error": "string",
  "errors": {}
}
{
  "error": "Rate limit exceeded",
  "retry_after": 0,
  "message": "string"
}

Get a customer

GET
https://app.invoicefalcon.com/api/v1/external/customers/{id}

Retrieve a customer by ID, including their addresses.

Parameters

idintegerrequiredpath

Response

200OKobject

The customer with addresses.

401Unauthorizedobject

Missing or invalid API key.

404Not Foundobject

Resource not found.

429Too Many Requestsobject

Rate limit exceeded. Check X-RateLimit-Reset header.

Authorization

ApiKeyAuthapiKey in header

Your store's API key. Generate it under Settings > Integrations.

Get a customer
curl -X GET 'https://app.invoicefalcon.com/api/v1/external/customers/{id}'
const response = await fetch('https://app.invoicefalcon.com/api/v1/external/customers/{id}', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('https://app.invoicefalcon.com/api/v1/external/customers/{id}')
data = response.json()
{
  "customer": {
    "id": 0,
    "email": "string",
    "first_name": "string",
    "last_name": "string",
    "phone": "string",
    "tax_number": "string",
    "eori_number": "string",
    "tags": "string",
    "shopify_customer_id": 0,
    "created_at": "2024-01-15T09:30:00Z",
    "updated_at": "2024-01-15T09:30:00Z",
    "addresses": [
      {
        "id": 0,
        "first_name": "string",
        "last_name": "string",
        "company": "string",
        "address1": "string",
        "address2": "string",
        "city": "string",
        "province": "string",
        "country": "string",
        "zip": "string",
        "phone": "string",
        "address_type": "string"
      }
    ]
  }
}
{
  "error": "Invalid API key"
}
{
  "error": "Not found"
}
{
  "error": "Rate limit exceeded",
  "retry_after": 0,
  "message": "string"
}

Delete a customer

DELETE
https://app.invoicefalcon.com/api/v1/external/customers/{id}

Parameters

idintegerrequiredpath

Response

204No Content

Customer deleted.

401Unauthorizedobject

Missing or invalid API key.

404Not Foundobject

Resource not found.

429Too Many Requestsobject

Rate limit exceeded. Check X-RateLimit-Reset header.

Authorization

ApiKeyAuthapiKey in header

Your store's API key. Generate it under Settings > Integrations.

Delete a customer
curl -X DELETE 'https://app.invoicefalcon.com/api/v1/external/customers/{id}'
const response = await fetch('https://app.invoicefalcon.com/api/v1/external/customers/{id}', {
  method: 'DELETE',
});

const data = await response.json();
import requests

response = requests.delete('https://app.invoicefalcon.com/api/v1/external/customers/{id}')
data = response.json()
{
  "error": "Invalid API key"
}
{
  "error": "Not found"
}
{
  "error": "Rate limit exceeded",
  "retry_after": 0,
  "message": "string"
}

Update a customer

PATCH
https://app.invoicefalcon.com/api/v1/external/customers/{id}

Body

application/json
customerCustomerInputrequired
Show child attributes
emailstring
first_namestring
last_namestring
phonestring
tax_numberstring
eori_numberstring
tagsstring

Parameters

idintegerrequiredpath

Response

200OKobject

Customer updated.

401Unauthorizedobject

Missing or invalid API key.

404Not Foundobject

Resource not found.

422Unprocessable Entityobject

Request could not be processed.

429Too Many Requestsobject

Rate limit exceeded. Check X-RateLimit-Reset header.

Authorization

ApiKeyAuthapiKey in header

Your store's API key. Generate it under Settings > Integrations.

Update a customer
curl -X PATCH 'https://app.invoicefalcon.com/api/v1/external/customers/{id}' \
  -H 'Content-Type: application/json' \
  -d '{
    "customer": {
      "email": "string",
      "first_name": "string",
      "last_name": "string",
      "phone": "string",
      "tax_number": "string",
      "eori_number": "string",
      "tags": "string"
    }
  }'
const response = await fetch('https://app.invoicefalcon.com/api/v1/external/customers/{id}', {
  method: 'PATCH',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "customer": {
        "email": "string",
        "first_name": "string",
        "last_name": "string",
        "phone": "string",
        "tax_number": "string",
        "eori_number": "string",
        "tags": "string"
      }
    }),
});

const data = await response.json();
import requests

payload = {
  "customer": {
    "email": "string",
    "first_name": "string",
    "last_name": "string",
    "phone": "string",
    "tax_number": "string",
    "eori_number": "string",
    "tags": "string"
  }
}

response = requests.patch('https://app.invoicefalcon.com/api/v1/external/customers/{id}', json=payload)
data = response.json()
Request Body
{
  "customer": {
    "email": "string",
    "first_name": "string",
    "last_name": "string",
    "phone": "string",
    "tax_number": "string",
    "eori_number": "string",
    "tags": "string"
  }
}
{
  "customer": {
    "id": 0,
    "email": "string",
    "first_name": "string",
    "last_name": "string",
    "phone": "string",
    "tax_number": "string",
    "eori_number": "string",
    "tags": "string",
    "shopify_customer_id": 0,
    "created_at": "2024-01-15T09:30:00Z",
    "updated_at": "2024-01-15T09:30:00Z"
  }
}
{
  "error": "Invalid API key"
}
{
  "error": "Not found"
}
{
  "error": "string",
  "errors": {}
}
{
  "error": "Rate limit exceeded",
  "retry_after": 0,
  "message": "string"
}

Settings

Read and update store invoicing configuration.

Get settings

GET
https://app.invoicefalcon.com/api/v1/external/settings

Retrieve the store's invoicing configuration — business info, email settings, automation rules, and display preferences.

Response

200OKobject

Store settings.

401Unauthorizedobject

Missing or invalid API key.

429Too Many Requestsobject

Rate limit exceeded. Check X-RateLimit-Reset header.

Authorization

ApiKeyAuthapiKey in header

Your store's API key. Generate it under Settings > Integrations.

Get settings
curl -X GET 'https://app.invoicefalcon.com/api/v1/external/settings'
const response = await fetch('https://app.invoicefalcon.com/api/v1/external/settings', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('https://app.invoicefalcon.com/api/v1/external/settings')
data = response.json()
{
  "settings": {
    "business_name": "string",
    "email": "string",
    "phone_number": "string",
    "address1": "string",
    "address2": "string",
    "address3": "string",
    "address4": "string",
    "tax_id": "string",
    "tax_id_title": "string",
    "tax_office_name": "string",
    "invoice_title": "string",
    "draft_invoice_title": "string",
    "credit_note_title": "string",
    "packing_slip_title": "string",
    "invoice_number_prefix": "string",
    "next_invoice_number": "string",
    "invoice_from_email": "string",
    "invoice_bcc_email": "string",
    "invoice_bcc": true,
    "locale": "string",
    "email_locale": "string",
    "datetime_format": "string",
    "automatic_invoicing": true,
    "automatic_invoicing_with_payment_link": true,
    "financial_status": "string",
    "fulfillment_status": "string",
    "default_due_days": 0,
    "footer_message": "string",
    "facebook_url": "string",
    "instagram_url": "string",
    "twitter_url": "string",
    "use_custom_email": true,
    "email_subject_template": "string",
    "email_body_template": "string",
    "email_dkim_verified": true,
    "enable_payment_reminders": true,
    "payment_reminder_interval": 0,
    "payment_reminder_when": "before",
    "customer_locale_invoice": true
  }
}
{
  "error": "Invalid API key"
}
{
  "error": "Rate limit exceeded",
  "retry_after": 0,
  "message": "string"
}

Update settings

PATCH
https://app.invoicefalcon.com/api/v1/external/settings

Update one or more store invoicing settings.

Body

application/json
settingsSettingsInputrequired

All fields are optional — only include fields you want to update.

Show child attributes
business_namestring
emailstring
phone_numberstring
address1string
address2string
address3string
address4string
tax_idstring
tax_id_titlestring
tax_office_namestring
invoice_titlestring
draft_invoice_titlestring
credit_note_titlestring
packing_slip_titlestring
invoice_number_prefixstring
next_invoice_numberstring
invoice_from_emailstring
invoice_bcc_emailstring
invoice_bccboolean
localestring
datetime_formatstring
automatic_invoicingboolean
automatic_invoicing_with_payment_linkboolean
financial_statusstring
fulfillment_statusstring
default_due_daysinteger
footer_messagestring
facebook_urlstring
instagram_urlstring
twitter_urlstring
use_custom_emailboolean
email_subject_templatestring
email_body_templatestring
enable_payment_remindersboolean
payment_reminder_intervalinteger
payment_reminder_whenstringbeforeafter
customer_locale_invoiceboolean

Response

200OKobject

Settings updated.

401Unauthorizedobject

Missing or invalid API key.

422Unprocessable Entityobject

Request could not be processed.

429Too Many Requestsobject

Rate limit exceeded. Check X-RateLimit-Reset header.

Authorization

ApiKeyAuthapiKey in header

Your store's API key. Generate it under Settings > Integrations.

Update settings
curl -X PATCH 'https://app.invoicefalcon.com/api/v1/external/settings' \
  -H 'Content-Type: application/json' \
  -d '{
    "settings": {
      "business_name": "string",
      "email": "string",
      "phone_number": "string",
      "address1": "string",
      "address2": "string",
      "address3": "string",
      "address4": "string",
      "tax_id": "string",
      "tax_id_title": "string",
      "tax_office_name": "string",
      "invoice_title": "string",
      "draft_invoice_title": "string",
      "credit_note_title": "string",
      "packing_slip_title": "string",
      "invoice_number_prefix": "string",
      "next_invoice_number": "string",
      "invoice_from_email": "string",
      "invoice_bcc_email": "string",
      "invoice_bcc": true,
      "locale": "string",
      "datetime_format": "string",
      "automatic_invoicing": true,
      "automatic_invoicing_with_payment_link": true,
      "financial_status": "string",
      "fulfillment_status": "string",
      "default_due_days": 0,
      "footer_message": "string",
      "facebook_url": "string",
      "instagram_url": "string",
      "twitter_url": "string",
      "use_custom_email": true,
      "email_subject_template": "string",
      "email_body_template": "string",
      "enable_payment_reminders": true,
      "payment_reminder_interval": 0,
      "payment_reminder_when": "before",
      "customer_locale_invoice": true
    }
  }'
const response = await fetch('https://app.invoicefalcon.com/api/v1/external/settings', {
  method: 'PATCH',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "settings": {
        "business_name": "string",
        "email": "string",
        "phone_number": "string",
        "address1": "string",
        "address2": "string",
        "address3": "string",
        "address4": "string",
        "tax_id": "string",
        "tax_id_title": "string",
        "tax_office_name": "string",
        "invoice_title": "string",
        "draft_invoice_title": "string",
        "credit_note_title": "string",
        "packing_slip_title": "string",
        "invoice_number_prefix": "string",
        "next_invoice_number": "string",
        "invoice_from_email": "string",
        "invoice_bcc_email": "string",
        "invoice_bcc": true,
        "locale": "string",
        "datetime_format": "string",
        "automatic_invoicing": true,
        "automatic_invoicing_with_payment_link": true,
        "financial_status": "string",
        "fulfillment_status": "string",
        "default_due_days": 0,
        "footer_message": "string",
        "facebook_url": "string",
        "instagram_url": "string",
        "twitter_url": "string",
        "use_custom_email": true,
        "email_subject_template": "string",
        "email_body_template": "string",
        "enable_payment_reminders": true,
        "payment_reminder_interval": 0,
        "payment_reminder_when": "before",
        "customer_locale_invoice": true
      }
    }),
});

const data = await response.json();
import requests

payload = {
  "settings": {
    "business_name": "string",
    "email": "string",
    "phone_number": "string",
    "address1": "string",
    "address2": "string",
    "address3": "string",
    "address4": "string",
    "tax_id": "string",
    "tax_id_title": "string",
    "tax_office_name": "string",
    "invoice_title": "string",
    "draft_invoice_title": "string",
    "credit_note_title": "string",
    "packing_slip_title": "string",
    "invoice_number_prefix": "string",
    "next_invoice_number": "string",
    "invoice_from_email": "string",
    "invoice_bcc_email": "string",
    "invoice_bcc": True,
    "locale": "string",
    "datetime_format": "string",
    "automatic_invoicing": True,
    "automatic_invoicing_with_payment_link": True,
    "financial_status": "string",
    "fulfillment_status": "string",
    "default_due_days": 0,
    "footer_message": "string",
    "facebook_url": "string",
    "instagram_url": "string",
    "twitter_url": "string",
    "use_custom_email": True,
    "email_subject_template": "string",
    "email_body_template": "string",
    "enable_payment_reminders": True,
    "payment_reminder_interval": 0,
    "payment_reminder_when": "before",
    "customer_locale_invoice": True
  }
}

response = requests.patch('https://app.invoicefalcon.com/api/v1/external/settings', json=payload)
data = response.json()
Request Body
{
  "settings": {
    "business_name": "string",
    "email": "string",
    "phone_number": "string",
    "address1": "string",
    "address2": "string",
    "address3": "string",
    "address4": "string",
    "tax_id": "string",
    "tax_id_title": "string",
    "tax_office_name": "string",
    "invoice_title": "string",
    "draft_invoice_title": "string",
    "credit_note_title": "string",
    "packing_slip_title": "string",
    "invoice_number_prefix": "string",
    "next_invoice_number": "string",
    "invoice_from_email": "string",
    "invoice_bcc_email": "string",
    "invoice_bcc": true,
    "locale": "string",
    "datetime_format": "string",
    "automatic_invoicing": true,
    "automatic_invoicing_with_payment_link": true,
    "financial_status": "string",
    "fulfillment_status": "string",
    "default_due_days": 0,
    "footer_message": "string",
    "facebook_url": "string",
    "instagram_url": "string",
    "twitter_url": "string",
    "use_custom_email": true,
    "email_subject_template": "string",
    "email_body_template": "string",
    "enable_payment_reminders": true,
    "payment_reminder_interval": 0,
    "payment_reminder_when": "before",
    "customer_locale_invoice": true
  }
}
{
  "settings": {
    "business_name": "string",
    "email": "string",
    "phone_number": "string",
    "address1": "string",
    "address2": "string",
    "address3": "string",
    "address4": "string",
    "tax_id": "string",
    "tax_id_title": "string",
    "tax_office_name": "string",
    "invoice_title": "string",
    "draft_invoice_title": "string",
    "credit_note_title": "string",
    "packing_slip_title": "string",
    "invoice_number_prefix": "string",
    "next_invoice_number": "string",
    "invoice_from_email": "string",
    "invoice_bcc_email": "string",
    "invoice_bcc": true,
    "locale": "string",
    "email_locale": "string",
    "datetime_format": "string",
    "automatic_invoicing": true,
    "automatic_invoicing_with_payment_link": true,
    "financial_status": "string",
    "fulfillment_status": "string",
    "default_due_days": 0,
    "footer_message": "string",
    "facebook_url": "string",
    "instagram_url": "string",
    "twitter_url": "string",
    "use_custom_email": true,
    "email_subject_template": "string",
    "email_body_template": "string",
    "email_dkim_verified": true,
    "enable_payment_reminders": true,
    "payment_reminder_interval": 0,
    "payment_reminder_when": "before",
    "customer_locale_invoice": true
  }
}
{
  "error": "Invalid API key"
}
{
  "error": "string",
  "errors": {}
}
{
  "error": "Rate limit exceeded",
  "retry_after": 0,
  "message": "string"
}

Models

InvoiceSummary

object
idinteger
slugstring

Unique identifier for API calls.

numberstring

Display number (e.g. INV-001).

invoice_typestringinvoicequotepro_formashopify_order
total_pricestring

Decimal string.

currencystring

ISO 4217 code.

financial_statusstring
order_namestring

Shopify order name (e.g. #1042).

customer_namestring
customer_emailstring
created_atstring<date-time>
updated_atstring<date-time>
Example
{
  "id": 0,
  "slug": "string",
  "number": "string",
  "invoice_type": "invoice",
  "total_price": "string",
  "currency": "string",
  "financial_status": "string",
  "order_name": "string",
  "customer_name": "string",
  "customer_email": "string",
  "created_at": "2024-01-15T09:30:00Z",
  "updated_at": "2024-01-15T09:30:00Z"
}

InvoiceDetail

object
idinteger
slugstring
numberstring
invoice_typestring
total_pricestring
currencystring
financial_statusstring
fulfillment_statusstring
order_namestring
order_numberinteger
processed_atstring<date-time>
notestring
created_atstring<date-time>
updated_atstring<date-time>
customerInvoiceCustomer
Show child attributes
idinteger
emailstring
first_namestring
last_namestring
billing_addressAddress
Show child attributes
first_namestring
last_namestring
companystring
address1string
address2string
citystring
provincestring
countrystring
zipstring
phonestring
shipping_addressAddress
Show child attributes
first_namestring
last_namestring
companystring
address1string
address2string
citystring
provincestring
countrystring
zipstring
phonestring
line_itemsArray<LineItem>
Show child attributes
titlestring
variant_titlestring
quantityinteger
pricestring
skustring
tax_linesArray<TaxLine>
Show child attributes
titlestring

Tax name (e.g. VAT, GST).

ratenumber

Decimal rate (e.g. 0.2 for 20%).

pricestring
Example
{
  "id": 0,
  "slug": "string",
  "number": "string",
  "invoice_type": "string",
  "total_price": "string",
  "currency": "string",
  "financial_status": "string",
  "fulfillment_status": "string",
  "order_name": "string",
  "order_number": 0,
  "processed_at": "2024-01-15T09:30:00Z",
  "note": "string",
  "created_at": "2024-01-15T09:30:00Z",
  "updated_at": "2024-01-15T09:30:00Z",
  "customer": {
    "id": 0,
    "email": "string",
    "first_name": "string",
    "last_name": "string"
  },
  "billing_address": {
    "first_name": "string",
    "last_name": "string",
    "company": "string",
    "address1": "string",
    "address2": "string",
    "city": "string",
    "province": "string",
    "country": "string",
    "zip": "string",
    "phone": "string"
  },
  "shipping_address": {
    "first_name": "string",
    "last_name": "string",
    "company": "string",
    "address1": "string",
    "address2": "string",
    "city": "string",
    "province": "string",
    "country": "string",
    "zip": "string",
    "phone": "string"
  },
  "line_items": [
    {
      "title": "string",
      "variant_title": "string",
      "quantity": 0,
      "price": "string",
      "sku": "string"
    }
  ],
  "tax_lines": [
    {
      "title": "string",
      "rate": 0,
      "price": "string"
    }
  ]
}

InvoiceCustomer

object
idinteger
emailstring
first_namestring
last_namestring
Example
{
  "id": 0,
  "email": "string",
  "first_name": "string",
  "last_name": "string"
}

Address

object
first_namestring
last_namestring
companystring
address1string
address2string
citystring
provincestring
countrystring
zipstring
phonestring
Example
{
  "first_name": "string",
  "last_name": "string",
  "company": "string",
  "address1": "string",
  "address2": "string",
  "city": "string",
  "province": "string",
  "country": "string",
  "zip": "string",
  "phone": "string"
}

LineItem

object
titlestring
variant_titlestring
quantityinteger
pricestring
skustring
Example
{
  "title": "string",
  "variant_title": "string",
  "quantity": 0,
  "price": "string",
  "sku": "string"
}

TaxLine

object
titlestring

Tax name (e.g. VAT, GST).

ratenumber

Decimal rate (e.g. 0.2 for 20%).

pricestring
Example
{
  "title": "string",
  "rate": 0,
  "price": "string"
}

Template

object
idinteger

Use as template_id in pdf/send_email/create.

namestring
template_typestringinvoicepacking_slipcredit_note
design_keystring | null
pre_selected_ordersboolean
pre_selected_draft_ordersboolean
pre_selected_pos_ordersboolean
pre_selected_credit_notesboolean
accent_colorstring
font_familystring
font_sizeinteger
date_formatstring
invoice_number_prefixstring
logo_urlstring<uri> | null
logo_widthinteger
logo_enabledboolean
created_atstring<date-time>
updated_atstring<date-time>
Example
{
  "id": 0,
  "name": "string",
  "template_type": "invoice",
  "design_key": "string",
  "pre_selected_orders": true,
  "pre_selected_draft_orders": true,
  "pre_selected_pos_orders": true,
  "pre_selected_credit_notes": true,
  "accent_color": "string",
  "font_family": "string",
  "font_size": 0,
  "date_format": "string",
  "invoice_number_prefix": "string",
  "logo_url": "https://example.com",
  "logo_width": 0,
  "logo_enabled": true,
  "created_at": "2024-01-15T09:30:00Z",
  "updated_at": "2024-01-15T09:30:00Z"
}

TemplateInput

object
namestring
template_typestringinvoicepacking_slipcredit_note
accent_colorstring
font_familystring
font_sizeinteger
date_formatstring
invoice_number_prefixstring
logo_urlstring<uri>
logo_widthinteger
logo_enabledboolean
pre_selected_ordersboolean
pre_selected_draft_ordersboolean
pre_selected_pos_ordersboolean
pre_selected_credit_notesboolean
Example
{
  "name": "string",
  "template_type": "invoice",
  "accent_color": "string",
  "font_family": "string",
  "font_size": 0,
  "date_format": "string",
  "invoice_number_prefix": "string",
  "logo_url": "https://example.com",
  "logo_width": 0,
  "logo_enabled": true,
  "pre_selected_orders": true,
  "pre_selected_draft_orders": true,
  "pre_selected_pos_orders": true,
  "pre_selected_credit_notes": true
}

Customer

object
idinteger
emailstring
first_namestring
last_namestring
phonestring
tax_numberstring

VAT/GST/tax identification number.

eori_numberstring

EU EORI number.

tagsstring
shopify_customer_idinteger
created_atstring<date-time>
updated_atstring<date-time>
Example
{
  "id": 0,
  "email": "string",
  "first_name": "string",
  "last_name": "string",
  "phone": "string",
  "tax_number": "string",
  "eori_number": "string",
  "tags": "string",
  "shopify_customer_id": 0,
  "created_at": "2024-01-15T09:30:00Z",
  "updated_at": "2024-01-15T09:30:00Z"
}

CustomerDetail

object
idinteger
emailstring
first_namestring
last_namestring
phonestring
tax_numberstring

VAT/GST/tax identification number.

eori_numberstring

EU EORI number.

tagsstring
shopify_customer_idinteger
created_atstring<date-time>
updated_atstring<date-time>
addressesArray<object>
Show child attributes
idinteger
first_namestring
last_namestring
companystring
address1string
address2string
citystring
provincestring
countrystring
zipstring
phonestring
address_typestring
Example
{
  "id": 0,
  "email": "string",
  "first_name": "string",
  "last_name": "string",
  "phone": "string",
  "tax_number": "string",
  "eori_number": "string",
  "tags": "string",
  "shopify_customer_id": 0,
  "created_at": "2024-01-15T09:30:00Z",
  "updated_at": "2024-01-15T09:30:00Z",
  "addresses": [
    {
      "id": 0,
      "first_name": "string",
      "last_name": "string",
      "company": "string",
      "address1": "string",
      "address2": "string",
      "city": "string",
      "province": "string",
      "country": "string",
      "zip": "string",
      "phone": "string",
      "address_type": "string"
    }
  ]
}

CustomerInput

object
emailstring
first_namestring
last_namestring
phonestring
tax_numberstring
eori_numberstring
tagsstring
Example
{
  "email": "string",
  "first_name": "string",
  "last_name": "string",
  "phone": "string",
  "tax_number": "string",
  "eori_number": "string",
  "tags": "string"
}

Settings

object
business_namestring
emailstring
phone_numberstring
address1string
address2string
address3string
address4string
tax_idstring
tax_id_titlestring
tax_office_namestring
invoice_titlestring
draft_invoice_titlestring
credit_note_titlestring
packing_slip_titlestring
invoice_number_prefixstring
next_invoice_numberstring
invoice_from_emailstring
invoice_bcc_emailstring
invoice_bccboolean
localestring
email_localestring
datetime_formatstring
automatic_invoicingboolean
automatic_invoicing_with_payment_linkboolean
financial_statusstring
fulfillment_statusstring
default_due_daysinteger
footer_messagestring
facebook_urlstring
instagram_urlstring
twitter_urlstring
use_custom_emailboolean
email_subject_templatestring
email_body_templatestring
email_dkim_verifiedbooleanread only
enable_payment_remindersboolean
payment_reminder_intervalinteger
payment_reminder_whenstringbeforeafter
customer_locale_invoiceboolean
Example
{
  "business_name": "string",
  "email": "string",
  "phone_number": "string",
  "address1": "string",
  "address2": "string",
  "address3": "string",
  "address4": "string",
  "tax_id": "string",
  "tax_id_title": "string",
  "tax_office_name": "string",
  "invoice_title": "string",
  "draft_invoice_title": "string",
  "credit_note_title": "string",
  "packing_slip_title": "string",
  "invoice_number_prefix": "string",
  "next_invoice_number": "string",
  "invoice_from_email": "string",
  "invoice_bcc_email": "string",
  "invoice_bcc": true,
  "locale": "string",
  "email_locale": "string",
  "datetime_format": "string",
  "automatic_invoicing": true,
  "automatic_invoicing_with_payment_link": true,
  "financial_status": "string",
  "fulfillment_status": "string",
  "default_due_days": 0,
  "footer_message": "string",
  "facebook_url": "string",
  "instagram_url": "string",
  "twitter_url": "string",
  "use_custom_email": true,
  "email_subject_template": "string",
  "email_body_template": "string",
  "email_dkim_verified": true,
  "enable_payment_reminders": true,
  "payment_reminder_interval": 0,
  "payment_reminder_when": "before",
  "customer_locale_invoice": true
}

SettingsInput

object

All fields are optional — only include fields you want to update.

business_namestring
emailstring
phone_numberstring
address1string
address2string
address3string
address4string
tax_idstring
tax_id_titlestring
tax_office_namestring
invoice_titlestring
draft_invoice_titlestring
credit_note_titlestring
packing_slip_titlestring
invoice_number_prefixstring
next_invoice_numberstring
invoice_from_emailstring
invoice_bcc_emailstring
invoice_bccboolean
localestring
datetime_formatstring
automatic_invoicingboolean
automatic_invoicing_with_payment_linkboolean
financial_statusstring
fulfillment_statusstring
default_due_daysinteger
footer_messagestring
facebook_urlstring
instagram_urlstring
twitter_urlstring
use_custom_emailboolean
email_subject_templatestring
email_body_templatestring
enable_payment_remindersboolean
payment_reminder_intervalinteger
payment_reminder_whenstringbeforeafter
customer_locale_invoiceboolean
Example
{
  "business_name": "string",
  "email": "string",
  "phone_number": "string",
  "address1": "string",
  "address2": "string",
  "address3": "string",
  "address4": "string",
  "tax_id": "string",
  "tax_id_title": "string",
  "tax_office_name": "string",
  "invoice_title": "string",
  "draft_invoice_title": "string",
  "credit_note_title": "string",
  "packing_slip_title": "string",
  "invoice_number_prefix": "string",
  "next_invoice_number": "string",
  "invoice_from_email": "string",
  "invoice_bcc_email": "string",
  "invoice_bcc": true,
  "locale": "string",
  "datetime_format": "string",
  "automatic_invoicing": true,
  "automatic_invoicing_with_payment_link": true,
  "financial_status": "string",
  "fulfillment_status": "string",
  "default_due_days": 0,
  "footer_message": "string",
  "facebook_url": "string",
  "instagram_url": "string",
  "twitter_url": "string",
  "use_custom_email": true,
  "email_subject_template": "string",
  "email_body_template": "string",
  "enable_payment_reminders": true,
  "payment_reminder_interval": 0,
  "payment_reminder_when": "before",
  "customer_locale_invoice": true
}

PaginationMeta

object
totalinteger
pageinteger
per_pageinteger
total_pagesinteger
Example
{
  "total": 0,
  "page": 0,
  "per_page": 0,
  "total_pages": 0
}