Early access: these pages are being written and reviewed. Facts in the header boxes come straight from the product.
Record a payment against an invoice
POST
/api/v1/invoices/{id}/payments
const url = 'https://api.pitch2sale.com/api/v1/invoices/example/payments';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"amount":1,"payment_method":"cash","transaction_id":"example","payment_date":"2026-04-15T12:00:00Z","notes":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.pitch2sale.com/api/v1/invoices/example/payments \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "amount": 1, "payment_method": "cash", "transaction_id": "example", "payment_date": "2026-04-15T12:00:00Z", "notes": "example" }'Updates the paid amount and moves the invoice to partial or paid.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”id
required
string
Request Bodyrequired
Section titled “Request Bodyrequired”Responses
Section titled “Responses”The updated 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" } ]}