Developer docs menu

API reference / Invoices

Invoices API

21 endpoints. Scopes: Scalar360.invoices.READ, .CREATE, .UPDATE, .DELETE or .ALL. All calls need Authorization: Scalar360-oauthtoken <access_token> — see Authentication.

GET

List

/api/v1/invoices

Scope: Scalar360.invoices.READ

ParameterInTypeRequired
statusquerystringNo
customerIdquerystring (uuid)No
qquerystringNo
hasIrnquerybooleanNo
posOnlyquerybooleanNo
pagequeryintegerNo
pageSizequeryintegerNo
sortByquerystringNo
sortDirquerystringNo
archivedOnlyquerybooleanNo
startDatequerystring (date)No
endDatequerystring (date)No
Example request
curl -X GET "https://api.scalar360.com/api/v1/invoices" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"
POST

Create

/api/v1/invoices

Scope: Scalar360.invoices.CREATE

Body fieldTypeRequiredNotes
customerIdstring (uuid)
warehouseIdstring (uuid)
customerNamestring
issueDatestring (date)
dueDatestring (date)
notesstring
poRefstring
supplyTypestring
reverseChargeboolean
recurringProfileIdstring (uuid)
occurrenceDatestring (date)
linesarray of objectYesrequired, not empty
lines[].itemIdstring (uuid)
lines[].descriptionstringYesrequired, not blank
lines[].hsnstring
lines[].qtynumber>= 0
lines[].unitstring
lines[].ratenumber>= 0
lines[].gstRatenumber>= 0
lines[].discountnumber>= 0
Example request
curl -X POST "https://api.scalar360.com/api/v1/invoices" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"lines":[{"itemId":"3f1c2b9e-7a1d-4c3e-9b2a-1e5f6a7b8c9d","description":"string","hsn":"string","qty":100,"unit":"string","rate":100}]}'
GET

Get

/api/v1/invoices/{id}

Scope: Scalar360.invoices.READ

ParameterInTypeRequired
idpathstring (uuid)Yes
Example request
curl -X GET "https://api.scalar360.com/api/v1/invoices/{id}" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"
PUT

Update

/api/v1/invoices/{id}

Scope: Scalar360.invoices.UPDATE

ParameterInTypeRequired
idpathstring (uuid)Yes
Body fieldTypeRequiredNotes
customerIdstring (uuid)
warehouseIdstring (uuid)
customerNamestring
issueDatestring (date)
dueDatestring (date)
notesstring
poRefstring
supplyTypestring
reverseChargeboolean
recurringProfileIdstring (uuid)
occurrenceDatestring (date)
linesarray of objectYesrequired, not empty
lines[].itemIdstring (uuid)
lines[].descriptionstringYesrequired, not blank
lines[].hsnstring
lines[].qtynumber>= 0
lines[].unitstring
lines[].ratenumber>= 0
lines[].gstRatenumber>= 0
lines[].discountnumber>= 0
Example request
curl -X PUT "https://api.scalar360.com/api/v1/invoices/{id}" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"customerId":"3f1c2b9e-7a1d-4c3e-9b2a-1e5f6a7b8c9d","warehouseId":"3f1c2b9e-7a1d-4c3e-9b2a-1e5f6a7b8c9d","customerName":"string","issueDate":"2026-10-12","dueDate":"2026-10-12","notes":"string"}'
DELETE

Delete draft

/api/v1/invoices/{id}

Scope: Scalar360.invoices.DELETE

ParameterInTypeRequired
idpathstring (uuid)Yes
Example request
curl -X DELETE "https://api.scalar360.com/api/v1/invoices/{id}" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"
POST

Cancel

/api/v1/invoices/{id}/cancel

Scope: Scalar360.invoices.CREATE

ParameterInTypeRequired
idpathstring (uuid)Yes
Body fieldTypeRequiredNotes
cancellationDatestring (date)
reasonstringYesrequired, not blank, max length 500
Example request
curl -X POST "https://api.scalar360.com/api/v1/invoices/{id}/cancel" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"reason":"string"}'
GET

Email draft

/api/v1/invoices/{id}/email

Scope: Scalar360.invoices.READ

ParameterInTypeRequired
idpathstring (uuid)Yes
Example request
curl -X GET "https://api.scalar360.com/api/v1/invoices/{id}/email" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"
POST

Email

/api/v1/invoices/{id}/email

Scope: Scalar360.invoices.CREATE

ParameterInTypeRequired
idpathstring (uuid)Yes
Example request
curl -X POST "https://api.scalar360.com/api/v1/invoices/{id}/email" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
POST

Issue

/api/v1/invoices/{id}/issue

Scope: Scalar360.invoices.CREATE

ParameterInTypeRequired
idpathstring (uuid)Yes
Example request
curl -X POST "https://api.scalar360.com/api/v1/invoices/{id}/issue" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"
POST

Payment

/api/v1/invoices/{id}/payments

Scope: Scalar360.invoices.CREATE

ParameterInTypeRequired
idpathstring (uuid)Yes
Body fieldTypeRequiredNotes
amountnumber>= 0
methodstring
referencestring
datestring (date)
Example request
curl -X POST "https://api.scalar360.com/api/v1/invoices/{id}/payments" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"amount":100,"method":"string","reference":"string","date":"2026-10-12"}'
POST

Reverse payment

/api/v1/invoices/{id}/payments/{paymentId}/reverse

Scope: Scalar360.invoices.CREATE

ParameterInTypeRequired
idpathstring (uuid)Yes
paymentIdpathstring (uuid)Yes
Body fieldTypeRequiredNotes
reversalDatestring (date)
reasonstringYesrequired, not blank, max length 500
Example request
curl -X POST "https://api.scalar360.com/api/v1/invoices/{id}/payments/{paymentId}/reverse" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"reason":"string"}'
GET

Pdf

/api/v1/invoices/{id}/pdf

Scope: Scalar360.invoices.READ

ParameterInTypeRequired
idpathstring (uuid)Yes
Example request
curl -X GET "https://api.scalar360.com/api/v1/invoices/{id}/pdf" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"
POST

Ship

/api/v1/invoices/{id}/ship

Scope: Scalar360.invoices.CREATE

ParameterInTypeRequired
idpathstring (uuid)Yes
Body fieldTypeRequiredNotes
warehouseIdstring (uuid)
shipDatestring (date)
carrierstring
trackingNumberstring
notesstring
itemsarray of objectYesrequired, not empty
items[].invoiceLineIdstring (uuid)
items[].quantitynumberYesrequired
Example request
curl -X POST "https://api.scalar360.com/api/v1/invoices/{id}/ship" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"items":[{"invoiceLineId":"3f1c2b9e-7a1d-4c3e-9b2a-1e5f6a7b8c9d","quantity":100}]}'
GET

Fulfilment

/api/v1/invoices/{id}/shipments

Scope: Scalar360.invoices.READ

ParameterInTypeRequired
idpathstring (uuid)Yes
Example request
curl -X GET "https://api.scalar360.com/api/v1/invoices/{id}/shipments" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"
PATCH

Update shipping

/api/v1/invoices/{id}/shipping

Scope: Scalar360.invoices.UPDATE

ParameterInTypeRequired
idpathstring (uuid)Yes
Body fieldTypeRequiredNotes
statusstring
carrierstring
trackingNumberstring
shipDatestring (date)
Example request
curl -X PATCH "https://api.scalar360.com/api/v1/invoices/{id}/shipping" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"status":"string","carrier":"string","trackingNumber":"string","shipDate":"2026-10-12"}'
PATCH

Update terms

/api/v1/invoices/{id}/terms

Scope: Scalar360.invoices.UPDATE

ParameterInTypeRequired
idpathstring (uuid)Yes
Body fieldTypeRequiredNotes
dueDatestring (date)
notesstring
poRefstring
Example request
curl -X PATCH "https://api.scalar360.com/api/v1/invoices/{id}/terms" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"dueDate":"2026-10-12","notes":"string","poRef":"string"}'
POST

Archive invoices

/api/v1/invoices/archive

Scope: Scalar360.invoices.CREATE

Body fieldTypeRequiredNotes
idsarray of string (uuid)Yesrequired, not empty
archivedboolean
Example request
curl -X POST "https://api.scalar360.com/api/v1/invoices/archive" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ids":["3f1c2b9e-7a1d-4c3e-9b2a-1e5f6a7b8c9d"]}'
POST

Preview pdf

/api/v1/invoices/preview-pdf

Scope: Scalar360.invoices.CREATE

Body fieldTypeRequiredNotes
namestring
addressstring
gstinstring
panstring
phonestring
emailstring
bankAccountNostring
bankNamestring
bankIfscstring
bankAddressstring
accentColorstring
logoUrlstring
invoiceFooterstring
invoiceTemplatestring
termsAndConditionsstring
invoiceLayoutConfigstring
Example request
curl -X POST "https://api.scalar360.com/api/v1/invoices/preview-pdf" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","address":"string","gstin":"string","pan":"string","phone":"string","email":"string"}'
POST

Quick

/api/v1/invoices/quick

Scope: Scalar360.invoices.CREATE

Body fieldTypeRequiredNotes
customerNamestring
customerIdstring (uuid)
customerPhonestring
customerStatestring
supplyTypestring
reverseChargeboolean
issueImmediatelyboolean
paidNowboolean
paymentMethodstring
warehouseIdstring (uuid)
issueDatestring (date)
dueDatestring (date)
notesstring
linesarray of objectYesrequired, not empty
lines[].itemIdstring (uuid)
lines[].descriptionstringYesrequired, not blank
lines[].hsnstring
lines[].qtynumber>= 0
lines[].unitstring
lines[].ratenumber>= 0
lines[].gstRatenumber>= 0
lines[].discountnumber>= 0
Example request
curl -X POST "https://api.scalar360.com/api/v1/invoices/quick" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"lines":[{"itemId":"3f1c2b9e-7a1d-4c3e-9b2a-1e5f6a7b8c9d","description":"string","hsn":"string","qty":100,"unit":"string","rate":100}]}'
POST

Sales register pdf

/api/v1/invoices/register/pdf

Scope: Scalar360.invoices.CREATE

Body fieldTypeRequiredNotes
startDatestring (date)Yes
endDatestring (date)Yes
statusstring
posOnlyboolean
qstring
sortBystring
sortDirstring
columnsarray of objectYesrequired, not empty
columns[].keystringYesrequired
columns[].labelstringYesrequired
columns[].fieldKeystring
Example request
curl -X POST "https://api.scalar360.com/api/v1/invoices/register/pdf" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"startDate":"2026-10-12","endDate":"2026-10-12","columns":[{"key":"string","label":"string","fieldKey":"string"}]}'