Skip to main content
POST
/
coa
/
api
/
v1
/
invoice
/
bulk-create
Bulk Create Invoices
curl --request POST \
  --url https://api.meetcampfire.com/coa/api/v1/invoice/bulk-create \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "invoices": [
    {}
  ]
}
'
[
  [
    {
      "id": 1001,
      "invoice_number": "INV-20250506-001",
      "invoice_date": "2025-05-06",
      "due_date": "2025-06-05",
      "total_amount": "1000.00",
      "amount_due": "1000.00",
      "status": "open"
    },
    {
      "id": 1002,
      "invoice_number": "INV-20250606-001",
      "invoice_date": "2025-06-06",
      "due_date": "2025-07-06",
      "total_amount": "1000.00",
      "amount_due": "1000.00",
      "status": "open"
    }
  ]
]

Authorizations

Authorization
string
header
required

Token-based authentication with required prefix "Token"

Body

Serializer for bulk invoice creation. Accepts a list of invoice data.

invoices
object[]
required

List of invoice data dictionaries matching AccountingInvoiceSerializer structure

Minimum array length: 1

Response

id
integer
required
lines
object[]
required
payments
object[]
required
payment_journal_entries
integer[]
required
journal_entry_intercompany
string
required
client_name
string
required
client_email
string
required
client_invoice_message
string
required
client_use_stripe_auto_bill
boolean
required
status
string
required
past_due_days
integer | null
required
entity_name
string
required
entity_currency
string
required
entity_invoice_message
string
required
total_amount
number<double>
required
Required range: -1000000000000000000 < x < 1000000000000000000
amount_paid
number<double>
required
Required range: -1000000000000000000 < x < 1000000000000000000
amount_due
number<double>
required
contract_name
string
required
attachments
object[]
required
stripe_connection_name
string
required
stripe_connection_entity
integer
required
stripe_connection_billing_portal_enabled
boolean
required
avalara_connection_name
string
required
avalara_connection_company
string
required
tax_rate_name
string
required
tax_rate_value
number<double>
required
Required range: -1000000 < x < 1000000
payment_term_name
string
required
voided_journal_entry_order
integer | null
required
last_modified_at
string<date-time>
required
is_deleted
boolean
default:false
required
deleted_at
string<date-time> | null
required
search_vector
string | null
required
search_text
string | null
required
invoice_date
string<date>
required
due_date
string<date>
required
created_at
string<date-time>
required
customer
integer
required
entity
integer
required
invoice_number
string
revenue_transactions
integer[]
item_date
string<date> | null
auto_send_invoice
boolean | null
auto_send_invoice_at
string<date> | null
auto_sent_at
string<date-time> | null
reminder_sent_dates
any

Dictionary tracking when reminders were sent for each day overdue (e.g., {'5': '2024-01-15', '10': '2024-01-20'})

billing_address
string | null
billing_addressee
string | null
Maximum string length: 255
shipping_address
string | null
shipping_addressee
string | null
Maximum string length: 255
terms
  • custom - Custom
  • net_5 - Net 5
  • net_7 - Net 7
  • net_10 - Net 10
  • net_15 - Net 15
  • net_20 - Net 20
  • net_30 - Net 30
  • net_40 - Net 40
  • net_45 - Net 45
  • net_60 - Net 60
  • net_90 - Net 90
  • net_105 - Net 105
  • net_120 - Net 120
  • due_on_receipt - Due on Receipt
Available options:
custom,
net_5,
net_7,
net_10,
net_15,
net_20,
net_30,
net_40,
net_45,
net_60,
net_90,
net_105,
net_120,
due_on_receipt
ref_number
string | null
Maximum string length: 120
purchase_order_number
string | null
Maximum string length: 120
shipping_date
string<date> | null
paid_date
string<date> | null
uncollectible_date
string<date> | null
sent_date
string<date> | null
period_start
string<date> | null
period_end
string<date> | null
location_of_sale
string | null
message_on_invoice
string | null
payment_status
  • open - Open
  • sent - Sent
  • partial - Partially Paid
  • paid - Paid
  • uncollectible - Uncollectible
  • voided - Voided
Available options:
open,
sent,
partial,
paid,
uncollectible,
voided
anrok_transaction_id
string | null

ID of the transaction in Anrok (set when transaction is created)

Maximum string length: 255
warning_message
string | null
currency
string
Maximum string length: 3
exchange_rate
number<double> | null
Required range: -100000000000000 < x < 100000000000000
exchange_rate_book
number<double> | null
Required range: -100000000000000 < x < 100000000000000
last_sent_at
string<date-time> | null
integration_id
string | null
Maximum string length: 250
integration_context
unknown
vat_number
string | null
Maximum string length: 250
discount
number<double> | null

Discount amount for the invoice

Required range: -1000000000000000000 < x < 1000000000000000000
payment_term_applied_discount
number<double> | null

Discount amount applied based on payment term early payment discount

Required range: -1000000000000000000 < x < 1000000000000000000
use_stripe_auto_bill
boolean | null
Maximum string length: 500
stripe_payment_intent_id
string | null
Maximum string length: 500
stripe_invoice_id
string | null
Maximum string length: 500
stripe_pdf_url
string | null
Maximum string length: 500
Maximum string length: 500
source
string | null
Maximum string length: 250
source_id
string | null
voided_date
string<date> | null
client
integer | null
payment_term
integer | null
bad_debt_journal_entry
integer | null
journal_entry
integer | null
voided_journal_entry
integer | null
entity_transfer_journal_entry
integer | null
contract
integer | null
avalara_connection
integer | null
sphere_connection
integer | null
anrok_connection
integer | null
tax_rate
integer | null
stripe_connection
integer | null
source_file
integer | null