Skip to main content
PUT
/
v1
/
platform
/
businesses
/
{business_id}
/
invoices
/
{invoice_id}
Update invoice
curl --request PUT \
  --url https://sandbox.thredfi.com/v1/platform/businesses/{business_id}/invoices/{invoice_id}/ \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "invoice_number": "<string>",
  "invoice_type": "invoice",
  "memo": "<string>",
  "external_id": "<string>",
  "due_at": "2023-11-07T05:31:56Z",
  "document": {
    "file": "<string>",
    "document_type": "sales_invoice",
    "upload_source": "<string>",
    "metadata": "<unknown>",
    "tags": "<unknown>"
  },
  "customer_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "line_items": [
    {
      "quantity": 123,
      "unit_price": 123,
      "external_id": "<string>",
      "description": "<string>",
      "account_identifier": "<unknown>",
      "product": "<string>",
      "discount_amount": 0,
      "sales_taxes": [
        {
          "amount": 123,
          "tax_account": "<unknown>",
          "discount_amount": 0
        }
      ]
    }
  ],
  "additional_discount": 123,
  "additional_sales_taxes_total": 123,
  "tips": 123
}
'
{
  "type": "<string>",
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "business_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "status": "SENT",
  "sent_at": "2023-11-07T05:31:56Z",
  "due_at": "2023-11-07T05:31:56Z",
  "paid_at": "2023-11-07T05:31:56Z",
  "voided_at": "2023-11-07T05:31:56Z",
  "is_overdue": false,
  "invoice_number": "<string>",
  "invoice_type": "invoice",
  "currency": "<string>",
  "customer": {
    "type": "<string>",
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "external_id": "<string>",
    "reference_number": "<string>",
    "individual_name": "<string>",
    "company_name": "<string>",
    "display_name": "<string>",
    "email": "[email protected]",
    "mobile_phone": "<string>",
    "office_phone": "<string>",
    "address_line1": "<string>",
    "address_line2": "<string>",
    "city": "<string>",
    "state_county": "<string>",
    "postal_code": "<string>",
    "country": "<string>",
    "full_address": "<string>",
    "address_string": "<string>",
    "vat_number": "<string>",
    "tax_exempt": true,
    "status": "<string>",
    "is_active": true,
    "is_archived": true,
    "transaction_tags": [
      "<unknown>"
    ],
    "notes": "<string>",
    "metadata": "<unknown>",
    "payment_terms_days": 123,
    "credit_limit": 123,
    "credit_limit_cents": 123,
    "outstanding_balance": 123,
    "documents": [
      {
        "url": "<string>",
        "expires_in": 123,
        "document_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "file_name": "<string>",
        "file_size": 123,
        "mime_type": "<string>"
      }
    ],
    "created_at": "2023-11-07T05:31:56Z",
    "updated_at": "2023-11-07T05:31:56Z",
    "archived_at": "2023-11-07T05:31:56Z"
  },
  "line_items": [
    {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "invoice_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "account_identifier": {
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "type": "AccountId"
      },
      "description": "<string>",
      "unit_price": 123,
      "quantity": 123,
      "subtotal": 123,
      "discount_amount": 123,
      "sales_taxes_total": 123,
      "total_amount": 123,
      "external_id": "<string>",
      "product": "<string>"
    }
  ],
  "subtotal": 123,
  "additional_discount": 123,
  "additional_sales_taxes": [
    {
      "amount": 123,
      "tax_account": "<unknown>",
      "rate": "<string>",
      "name": "<string>"
    }
  ],
  "additional_sales_taxes_total": 123,
  "tips": 123,
  "tips_account": "<string>",
  "total_amount": 123,
  "outstanding_balance": 123,
  "payment_allocations": [
    {
      "amount_cents": 123,
      "payment_date": "2023-12-25",
      "payment_method": "<string>",
      "payment_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
    }
  ],
  "credit_allocations": [
    {
      "amount_cents": 123,
      "applied_at": "2023-11-07T05:31:56Z",
      "credit_note_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "reference_number": "<string>"
    }
  ],
  "refund_allocations": [
    {
      "refund_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "amount_cents": 123,
      "allocated_at": "2023-11-07T05:31:56Z",
      "reference_number": "<string>"
    }
  ],
  "write_offs": [
    {
      "write_off_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "amount_cents": 123,
      "reason": "<string>",
      "status": "<string>",
      "write_off_at": "2023-11-07T05:31:56Z"
    }
  ],
  "document": {
    "url": "<string>",
    "expires_in": 123,
    "document_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "file_name": "<string>",
    "file_size": 123,
    "mime_type": "<string>"
  },
  "imported_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z",
  "external_id": "<string>",
  "memo": "<string>"
}

Authorizations

Authorization
string
header
required

Partner-level JWT token (unscoped). Token payload includes partner_id. Business access is validated via partner ownership. Format: Bearer <your-jwt-token>

Use this for: Multi-business operations where the business_id is specified in the URL and partner has access to multiple businesses.

Path Parameters

business_id
string<uuid>
required

Business UUID provided by Thred (unique identifier for the business)

invoice_id
string<uuid>
required

A UUID string identifying this invoice.

Body

Invoice update serializer that preserves payments, refunds, and writeoffs Only allows updates to safe fields that don't break accounting integrity

invoice_number
string

Invoice number for display and reference

Required string length: 1 - 100
invoice_type
enum<string>

Type of invoice: invoice or receipt

  • invoice - Invoice
  • receipt - Receipt
Available options:
invoice,
receipt
memo
string

Invoice description or memo

external_id
string

External system identifier

due_at
string<date-time>

When payment is due (ISO 8601 format)

document
object

Optional document upload

customer_id
string<uuid>

Customer ID to assign invoice to

line_items
object[]

Array of line items for this invoice

additional_discount
integer

Additional invoice-level discount in cents

additional_sales_taxes_total
integer

Total additional sales taxes in cents

tips
integer

Tips amount in cents

Response

Invoice serializer for API responses All monetary amounts are returned in cents

type
string
required

Resource type identifier

id
string<uuid>
required

Unique invoice identifier

business_id
string<uuid>
required

Business this invoice belongs to

status
enum<string>
required

Invoice status in uppercase format

Available options:
DRAFT,
SENT,
PAID,
PARTIALLY_PAID,
OVERDUE,
CANCELLED,
REFUNDED
Example:

"SENT"

sent_at
string<date-time>
required

When the invoice was sent to customer

due_at
string<date-time>
required

When payment is due (ISO timestamp)

paid_at
string<date-time>
required

When the invoice was fully paid

voided_at
string<date-time> | null
required

When the invoice was voided (always null - we use cancelled status)

is_overdue
boolean
required

True if invoice is past due date and has outstanding balance

Example:

false

invoice_number
string
required

Invoice number for display and reference

Maximum string length: 100
invoice_type
enum<string>
required

Type of invoice: invoice or receipt

  • invoice - Invoice
  • receipt - Receipt
Available options:
invoice,
receipt
currency
string
required

ISO 4217 currency code (e.g., EUR, GBP, USD)

Maximum string length: 3
customer
object
required

Customer information

line_items
object[]
required

Array of invoice line items

subtotal
integer
required

Subtotal amount in cents before taxes

additional_discount
integer
required

Additional invoice-level discount in cents

additional_sales_taxes
object[]
required

Additional sales taxes array

additional_sales_taxes_total
integer
required

Total additional sales taxes in cents

tips
integer
required

Tips amount in cents

tips_account
string | null
required

Tips account information

total_amount
integer
required

Total invoice amount in cents including taxes

outstanding_balance
integer
required

Outstanding balance in cents

payment_allocations
object[]
required

Array of payment allocations

credit_allocations
object[]
required

Array of customer credit note allocations

refund_allocations
object[]
required

Array of refund allocations

write_offs
object[]
required

Array of write-offs on this invoice

document
object
required

Latest invoice document file with presigned URL

imported_at
string<date-time>
required

When the invoice was imported/created

updated_at
string<date-time>
required

When the invoice was last updated

external_id
string

External system identifier

memo
string

Invoice description or memo