Developer docs menu

API reference / Bills

Bills API

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

GET

List bills

/api/v1/bills

Scope: Scalar360.bills.READ

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

Create bill

/api/v1/bills

Scope: Scalar360.bills.CREATE

Body fieldTypeRequiredNotes
vendorIdstring (uuid)Yes
purchaseOrderIdstring (uuid)
billNumberstringmax length 50
vendorBillNumberstringmax length 50
billDatestring (date)Yes
dueDatestring (date)
notesstring
itemsarray of objectYesrequired, not empty
items[].itemNamestringYesrequired, not blank, max length 200
items[].descriptionstring
items[].quantitynumberYesrequired, >= 0.01
items[].unitstring
items[].ratenumberYesrequired, >= 0.01
items[].taxRatenumber>= 0
items[].discountPercentnumber>= 0
items[].glAccountIdstring (uuid)
Example request
curl -X POST "https://api.scalar360.com/api/v1/bills" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"vendorId":"3f1c2b9e-7a1d-4c3e-9b2a-1e5f6a7b8c9d","billDate":"2026-10-12","items":[{"itemName":"string","description":"string","quantity":100,"unit":"string","rate":100,"taxRate":100}]}'
GET

Get bill

/api/v1/bills/{id}

Scope: Scalar360.bills.READ

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

Update bill

/api/v1/bills/{id}

Scope: Scalar360.bills.UPDATE

ParameterInTypeRequired
idpathstring (uuid)Yes
Body fieldTypeRequiredNotes
vendorIdstring (uuid)
purchaseOrderIdstring (uuid)
billNumberstringmax length 50
vendorBillNumberstringmax length 50
billDatestring (date)
dueDatestring (date)
notesstring
itemsarray of objectYesrequired, not empty
items[].itemNamestringYesrequired, not blank, max length 200
items[].descriptionstring
items[].quantitynumberYesrequired, >= 0.01
items[].unitstring
items[].ratenumberYesrequired, >= 0.01
items[].taxRatenumber>= 0
items[].discountPercentnumber>= 0
items[].glAccountIdstring (uuid)
Example request
curl -X PUT "https://api.scalar360.com/api/v1/bills/{id}" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"vendorId":"3f1c2b9e-7a1d-4c3e-9b2a-1e5f6a7b8c9d","purchaseOrderId":"3f1c2b9e-7a1d-4c3e-9b2a-1e5f6a7b8c9d","billNumber":"string","vendorBillNumber":"string","billDate":"2026-10-12","dueDate":"2026-10-12"}'
DELETE

Delete bill

/api/v1/bills/{id}

Scope: Scalar360.bills.DELETE

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

Cancel bill

/api/v1/bills/{id}/cancel

Scope: Scalar360.bills.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/bills/{id}/cancel" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"reason":"string"}'
POST

Record payment

/api/v1/bills/{id}/payments

Scope: Scalar360.bills.CREATE

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

Pdf

/api/v1/bills/{id}/pdf

Scope: Scalar360.bills.READ

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

Update status

/api/v1/bills/{id}/status

Scope: Scalar360.bills.UPDATE

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

List

/api/v1/bills/recurring

Scope: Scalar360.bills.READ

Example request
curl -X GET "https://api.scalar360.com/api/v1/bills/recurring" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN"
POST

Create

/api/v1/bills/recurring

Scope: Scalar360.bills.CREATE

Body fieldTypeRequiredNotes
namestringYesrequired
vendorIdstring (uuid)
dueDaysinteger
frequencystring
startDatestring (date)
endDatestring (date)
neverExpiresboolean
nextDatestring (date)
activeboolean
notesstring
itemsarray of object
items[].itemNamestringYesrequired
items[].descriptionstring
items[].quantitynumber
items[].unitstring
items[].ratenumber
items[].taxRatenumber
items[].discountPercentnumber
items[].glAccountIdstring (uuid)
Example request
curl -X POST "https://api.scalar360.com/api/v1/bills/recurring" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"string"}'
GET

Get

/api/v1/bills/recurring/{id}

Scope: Scalar360.bills.READ

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

Update

/api/v1/bills/recurring/{id}

Scope: Scalar360.bills.UPDATE

ParameterInTypeRequired
idpathstring (uuid)Yes
Body fieldTypeRequiredNotes
namestringYesrequired
vendorIdstring (uuid)
dueDaysinteger
frequencystring
startDatestring (date)
endDatestring (date)
neverExpiresboolean
nextDatestring (date)
activeboolean
notesstring
itemsarray of object
items[].itemNamestringYesrequired
items[].descriptionstring
items[].quantitynumber
items[].unitstring
items[].ratenumber
items[].taxRatenumber
items[].discountPercentnumber
items[].glAccountIdstring (uuid)
Example request
curl -X PUT "https://api.scalar360.com/api/v1/bills/recurring/{id}" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","vendorId":"3f1c2b9e-7a1d-4c3e-9b2a-1e5f6a7b8c9d","dueDays":1,"frequency":"string","startDate":"2026-10-12","endDate":"2026-10-12"}'
DELETE

Delete

/api/v1/bills/recurring/{id}

Scope: Scalar360.bills.DELETE

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

Generate

/api/v1/bills/recurring/{id}/generate

Scope: Scalar360.bills.CREATE

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

Toggle

/api/v1/bills/recurring/{id}/toggle

Scope: Scalar360.bills.CREATE

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

From bill

/api/v1/bills/recurring/from-bill/{billId}

Scope: Scalar360.bills.CREATE

ParameterInTypeRequired
billIdpathstring (uuid)Yes
Body fieldTypeRequiredNotes
namestringYesrequired
vendorIdstring (uuid)
dueDaysinteger
frequencystring
startDatestring (date)
endDatestring (date)
neverExpiresboolean
nextDatestring (date)
activeboolean
notesstring
itemsarray of object
items[].itemNamestringYesrequired
items[].descriptionstring
items[].quantitynumber
items[].unitstring
items[].ratenumber
items[].taxRatenumber
items[].discountPercentnumber
items[].glAccountIdstring (uuid)
Example request
curl -X POST "https://api.scalar360.com/api/v1/bills/recurring/from-bill/{billId}" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"string"}'