Skip to content
Pitch2SaleDevelopers
Open the app
Early access: these pages are being written and reviewed. Facts in the header boxes come straight from the product.

Create an invoice

POST
/api/v1/invoices
curl --request POST \
--url https://api.pitch2sale.com/api/v1/invoices \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "lead_id": "example", "opportunity_id": "example", "estimate_id": "example", "line_items": [], "due_date": "example", "currency": "USD", "notes": "example", "internal_notes": "example", "client_notes": "example", "terms": "example", "discount_percent": 1, "tax_percent": 1, "discount_value": 1, "discount_type": "percent", "is_recurring": false, "recurring_interval": "weekly", "custom_bank_detail": "example", "bank_detail_id": "example", "invoice_number_override": "example", "payment_terms_key": "example", "applied_tax_line_ids": [ "example" ], "bill_to_name": "example", "bill_to_company": "example", "bill_to_address": "example", "bill_from_name": "example", "bill_from_address": "example" }'

Created as a draft; the number is assigned from the organization’s numbering settings.

Media typeapplication/json
object
lead_id
required
string
/^[0-9a-fA-F]{24}$/
opportunity_id
string
/^[0-9a-fA-F]{24}$/
estimate_id
string
/^[0-9a-fA-F]{24}$/
line_items
Array<object>
default:
object
item_id
Any of:
string
/^[0-9a-fA-F]{24}$/
item_name
string
<= 500 characters
description
string
"" <= 2000 characters
quantity
required
number
unit_price
required
number
tax_percent
number
<= 100
total
required
number
due_date
Any of:
string
currency
string
default: USD >= 1 characters <= 3 characters
notes
Any of:
string
<= 5000 characters
internal_notes
Any of:
string
<= 10000 characters
client_notes
Any of:
string
<= 5000 characters
terms
Any of:
string
<= 10000 characters
discount_percent
number
<= 100
tax_percent
number
<= 100
discount_value
number
discount_type
string
Allowed values: percent fixed
is_recurring
boolean
recurring_interval
string
Allowed values: weekly monthly quarterly semi_annual annual
custom_bank_detail
Any of:
string
<= 2000 characters
bank_detail_id
Any of:
string
invoice_number_override
string
<= 50 characters
payment_terms_key
string
<= 50 characters
applied_tax_line_ids
Array<string>
bill_to_name
Any of:
string
<= 500 characters
bill_to_company
Any of:
string
<= 500 characters
bill_to_address
Any of:
string
<= 500 characters
bill_from_name
Any of:
string
<= 500 characters
bill_from_address
Any of:
string
<= 500 characters

The new invoice

Media typeapplication/json
object
invoice
required
object
_id
required
string
invoice_number
required
string
status
required
string
lead_id
required
string
lead_name
required
string | null
total
required
number
amount_paid
required
number
balance_due
required
number
key
additional properties
any
Examplegenerated
{
"invoice": {
"_id": "example",
"invoice_number": "example",
"status": "example",
"lead_id": "example",
"lead_name": "example",
"total": 1,
"amount_paid": 1,
"balance_due": 1
}
}

Validation failed

Media typeapplication/json
object
error
required
string
code
string
message
string
details
Array<object>
object
field
required
string
message
required
string
code
required
string
Examplegenerated
{
"error": "example",
"code": "example",
"message": "example",
"details": [
{
"field": "example",
"message": "example",
"code": "example"
}
]
}

Authentication required or token invalid

Media typeapplication/json
object
error
required
string
code
string
message
string
details
Array<object>
object
field
required
string
message
required
string
code
required
string
Examplegenerated
{
"error": "example",
"code": "example",
"message": "example",
"details": [
{
"field": "example",
"message": "example",
"code": "example"
}
]
}

Role permission or token scope missing

Media typeapplication/json
object
error
required
string
code
string
message
string
details
Array<object>
object
field
required
string
message
required
string
code
required
string
Examplegenerated
{
"error": "example",
"code": "example",
"message": "example",
"details": [
{
"field": "example",
"message": "example",
"code": "example"
}
]
}

Rate limit exceeded

Media typeapplication/json
object
error
required
string
code
string
message
string
details
Array<object>
object
field
required
string
message
required
string
code
required
string
Examplegenerated
{
"error": "example",
"code": "example",
"message": "example",
"details": [
{
"field": "example",
"message": "example",
"code": "example"
}
]
}