Developer docs menu

API reference / Recurring

Recurring API

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

GET

List

/api/v1/recurring

Scope: Scalar360.recurring.READ

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

Create

/api/v1/recurring

Scope: Scalar360.recurring.CREATE

Body fieldTypeRequiredNotes
customerIdstring (uuid)
customerNamestring
frequencystringYesrequired, not blank
amountnumber
startDatestring (date)
nextDatestring (date)
endDatestring (date)
neverExpiresboolean
dueDaysinteger
activeboolean
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/recurring" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"frequency":"string","lines":[{"itemId":"3f1c2b9e-7a1d-4c3e-9b2a-1e5f6a7b8c9d","description":"string","hsn":"string","qty":100,"unit":"string","rate":100}]}'
GET

Get

/api/v1/recurring/{id}

Scope: Scalar360.recurring.READ

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

Update

/api/v1/recurring/{id}

Scope: Scalar360.recurring.UPDATE

ParameterInTypeRequired
idpathstring (uuid)Yes
Body fieldTypeRequiredNotes
customerIdstring (uuid)
customerNamestring
frequencystringYesrequired, not blank
amountnumber
startDatestring (date)
nextDatestring (date)
endDatestring (date)
neverExpiresboolean
dueDaysinteger
activeboolean
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 PUT "https://api.scalar360.com/api/v1/recurring/{id}" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"customerId":"3f1c2b9e-7a1d-4c3e-9b2a-1e5f6a7b8c9d","customerName":"string","frequency":"string","amount":100,"startDate":"2026-10-12","nextDate":"2026-10-12"}'
DELETE

Delete

/api/v1/recurring/{id}

Scope: Scalar360.recurring.DELETE

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

Generate

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

Scope: Scalar360.recurring.CREATE

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

Toggle

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

Scope: Scalar360.recurring.CREATE

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

From invoice

/api/v1/recurring/from-invoice/{invoiceId}

Scope: Scalar360.recurring.CREATE

ParameterInTypeRequired
invoiceIdpathstring (uuid)Yes
Body fieldTypeRequiredNotes
customerIdstring (uuid)
customerNamestring
frequencystringYesrequired, not blank
amountnumber
startDatestring (date)
nextDatestring (date)
endDatestring (date)
neverExpiresboolean
dueDaysinteger
activeboolean
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/recurring/from-invoice/{invoiceId}" \
  -H "Authorization: Scalar360-oauthtoken $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"frequency":"string","lines":[{"itemId":"3f1c2b9e-7a1d-4c3e-9b2a-1e5f6a7b8c9d","description":"string","hsn":"string","qty":100,"unit":"string","rate":100}]}'