Self-Billed Invoices

Self-Billed Invoices AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

A self-billed invoice is a document issued by the buyer on behalf of the supplier, used when the supplier is unable to raise an invoice themselves.

Download Self-Billed Invoices OpenAPI Document
End Points
Create a Self-Billed Invoice
List Self-Billed Invoices
Update a Self-Billed Invoice
Get a Self-Billed Invoice
Delete a Self-Billed Invoice
Push a self-billed invoice e-invoice

Create a Self-Billed Invoice AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Create a new self-billed invoice. Set entity_type to self_billed_invoice to identify it as a self-billed invoice.
OAuth Scope : ZohoBooks.bills.CREATE

Arguments

bill_number
string
(Required)
Unique bill number for the self-billed invoice. Maximum length: 50 characters.
vendor_id
string
(Required)
Unique identifier of the vendor (supplier on whose behalf the invoice is raised). Note: This value is a set of numeric characters.
reference_number
string
Reference number for the self-billed invoice.
date
date
Date of the self-billed invoice. Format: yyyy-mm-dd.
due_date
date
Due date for payment. Format: yyyy-mm-dd.
terms
string
Payment terms notes for the self-billed invoice. Maximum length: 10000 characters.
adjustment
number
Adjustment amount applied to the total.
adjustment_description
string
Description for the adjustment amount. Maximum length: 100 characters.
is_draft
boolean
Set to true to save the self-billed invoice as a draft.
pricebook_id
string
Unique identifier of the price book to apply. Note: This value is a set of numeric characters.
is_item_level_tax_calc
boolean
Set to true to calculate tax at the line-item level.
is_inclusive_tax
boolean
Set to true if the line-item rates are inclusive of tax.
discount
number
Entity-level discount applied to the subtotal.
discount_code
string
🇦🇪 United Arab Emirates
only
Discount reason code for the entity-level discount. Maximum length: 200 characters.
discount_account_id
string
Unique identifier of the account to post the discount amount. Note: This value is a set of numeric characters.
discount_type
string
Level at which the discount is applied. Allowed values: entity_level, item_level.
is_discount_before_tax
boolean
Set to true to apply the discount before tax calculation.
payment_terms
integer
Number of days within which payment is due.
payment_terms_label
string
Label for the payment terms (e.g., Net 30).
payment_mode
string
🇦🇪 United Arab Emirates
only
Mode of payment expected from the buyer. Allowed values: cash, cheque, bank_transfer, sepa_credit_transfer, debit_transfer, card, not_specified, bankers_draft, credit_transfer, direct_debit, sepa_direct_debit, bank_cheque, credit_card, debit_card, online_payment_service.
bank_account_id
string
🇦🇪 United Arab Emirates
only
Unique identifier of the bank account for the expected payment. Note: This value is a set of numeric characters.
account_id
string
Unique identifier of the expense account for the bill. Note: This value is a set of numeric characters.
template_id
string
Unique identifier of the PDF template for the self-billed invoice. Note: This value is a set of numeric characters.
entity_type
string
(Required)
Must be set to self_billed_invoice. Allowed values: bill, self_billed_invoice.
tax_treatment
string
🇦🇪 United Arab Emirates
, GCC only
VAT treatment of the vendor. Allowed values include vat_registered, vat_not_registered, gcc_vat_not_registered, gcc_vat_registered, and non_gcc.
For UAE Edition: also dz_vat_registered, dz_vat_not_registered, out_of_scope, gcc_non_vat, fz_vat_registered, and fz_vat_not_registered.
place_of_supply
string
🇦🇪 United Arab Emirates
only
Place where the goods or services are supplied. Use the supported state, emirate, or country code for the organization edition.
tax_reg_no
string
🇦🇪 United Arab Emirates
only
Tax Registration Number (TRN) of the vendor.
registration_details
object
🇦🇪 United Arab Emirates
only
Registration details of the vendor. Includes buyer identification, tax registration, and legal information used for E-Invoicing.
Show Sub-Attributes arrow
company_registration_no
string
Company registration number (Commercial Registration number). Maximum length: 200 characters.
einvoice_identifier_label
string
Label for the buyer identifier used in E-Invoicing (Buyer ID label). Allowed values: TL, EID, PAS, CD. Maximum length: 200 characters.
einvoice_identifier_value
string
Value of the buyer identifier used in E-Invoicing (Buyer ID value). Maximum length: 200 characters.
additionalfield1
string
Authority or scheme that issued the buyer identifier (Buyer ID authority, for example Department of Economy and Tourism). Maximum length: 200 characters.
electronic_address_value
string
Electronic address (Peppol ID or similar) of the vendor used for E-Invoicing routing. Maximum length: 200 characters.
permit_number
string
Customs or import permit number.
billing_address_id
string
Unique identifier of the billing address for the vendor. Note: This value is a set of numeric characters.
recurring_bill_id
string
Unique identifier of the recurring bill profile linked to this invoice. Note: This value is a set of numeric characters.
tags
array
List of tags to associate with the self-billed invoice.
Show Sub-Attributes arrow
tag_id
string
Unique identifier of the reporting tag. Note: This value is a set of numeric characters.
tag_option_id
string
Unique identifier of the selected tag option. Note: This value is a set of numeric characters.
custom_fields
array
List of custom fields for the self-billed invoice.
Show Sub-Attributes arrow
custom_field_id
string
Unique identifier of the custom field. Note: This value is a set of numeric characters.
value
string
Value of the custom field.
documents
array
List of documents attached to the self-billed invoice.
Show Sub-Attributes arrow
document_id
string
Unique identifier of the attached document. Note: This value is a set of numeric characters.
file_name
string
File name of the attached document.
line_items
array
(Required)
List of line items in the self-billed invoice.
Show Sub-Attributes arrow
item_id
string
Unique identifier of the item. Note: This value is a set of numeric characters.
name
string
Name of the line item. Maximum length: 200 characters.
account_id
string
Unique identifier of the expense account for the line item. Note: This value is a set of numeric characters.
description
string
Description of the line item. Maximum length: 6000 characters.
rate
number
Unit price of the item.
quantity
number
Quantity of the item.
discount
number
Discount percentage or amount applied to the line item.
tax_id
string
Unique identifier of the tax applied to the line item. Note: This value is a set of numeric characters.
reverse_charge_tax_id
string
Unique identifier of the reverse charge tax for the line item. Note: This value is a set of numeric characters.
unit
string
Unit of measurement for the item (e.g., kg, pcs).
item_order
integer
Display order of the line item.
is_billable
boolean
Set to true if the line item is billable to a customer.
customer_id
string
Unique identifier of the customer to bill, if the line item is billable. Note: This value is a set of numeric characters.
project_id
string
Unique identifier of the project associated with the line item. Note: This value is a set of numeric characters.
hsn_or_sac
string
🇦🇪 United Arab Emirates
only
HSN or SAC code for the line item.
unitkey_code
string
🇦🇪 United Arab Emirates
only
UN/CEFACT unit code for the line item. Maximum length: 10 characters.
product_type
string
🇦🇪 United Arab Emirates
only
The product or service type the line item belongs to. Allowed values: goods or service.
tax_treatment_code
string
🇦🇪 United Arab Emirates
only
Tax treatment reason code for the line item.
tags
array
List of tags for the line item.
Show Sub-Attributes arrow
tag_id
string
Unique identifier of the reporting tag. Note: This value is a set of numeric characters.
tag_option_id
string
Unique identifier of the selected tag option. Note: This value is a set of numeric characters.
item_custom_fields
array
List of custom fields for the line item.
Show Sub-Attributes arrow
custom_field_id
string
Unique identifier of the custom field. Note: This value is a set of numeric characters.
value
string
Value of the custom field.

Query Parameters

organization_id
string
(Required)
ID of the organization. Note: This value is a set of numeric characters.

Request Example

Click to copy
parameters_data='{"field1":"value1","field2":"value2"}'; headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/books/v3/bills?organization_id=10234695" type: POST headers: headers_data content-type: application/json parameters: parameters_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, "{\"field1\":\"value1\",\"field2\":\"value2\"}"); Request request = new Request.Builder() .url("https://www.zohoapis.com/books/v3/bills?organization_id=10234695") .post(body) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .addHeader("content-type", "application/json") .build(); Response response = client.newCall(request).execute();
const options = { method: 'POST', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f', 'content-type': 'application/json' }, body: '{"field1":"value1","field2":"value2"}' }; fetch('https://www.zohoapis.com/books/v3/bills?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}" headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", 'content-type': "application/json" } conn.request("POST", "/books/v3/bills?organization_id=10234695", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "POST", "hostname": "www.zohoapis.com", "port": null, "path": "/books/v3/bills?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", "content-type": "application/json" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.write(JSON.stringify({field1: 'value1', field2: 'value2'})); req.end();
curl --request POST \ --url 'https://www.zohoapis.com/books/v3/bills?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'content-type: application/json' \ --data '{"field1":"value1","field2":"value2"}'

Body Parameters

Click to copy
{ "bill_number": "B-001982", "vendor_id": "86067000000227074", "reference_number": "REF-001", "date": "2026-09-23", "due_date": "2026-09-23", "terms": "Net 30", "adjustment": 0, "adjustment_description": "Adjustment", "is_draft": false, "pricebook_id": "", "is_item_level_tax_calc": false, "is_inclusive_tax": false, "discount": 0, "discount_code": "special_agreement", "discount_account_id": "86067000000072001", "discount_type": "entity_level", "is_discount_before_tax": true, "payment_terms": 0, "payment_terms_label": "Due on Receipt", "payment_mode": "cash", "bank_account_id": "86067000000034003", "account_id": "86067000000000373", "template_id": "86067000000093112", "entity_type": "self_billed_invoice", "tax_treatment": "vat_registered", "place_of_supply": "DU", "tax_reg_no": "100200441040003", "registration_details": { "company_registration_no": "1002004410", "einvoice_identifier_label": "EID", "einvoice_identifier_value": "234324", "additionalfield1": "Department of Economy and Tourism", "legal_name": "Zylker Trading LLC", "electronic_address_value": "0088:1234567890123" }, "permit_number": "", "billing_address_id": "86067000000227075", "recurring_bill_id": "", "tags": [ { "tag_id": "86067000000001400", "tag_option_id": "86067000000001401" } ], "custom_fields": [ { "custom_field_id": "86067000000072002", "value": "Warehouse A" } ], "documents": [ { "document_id": "86067000000080001", "file_name": "vendor-invoice.pdf" } ], "line_items": [ { "item_id": "86067000000120060", "name": "Airpod stand", "account_id": "86067000000034003", "description": "Airpod stand", "rate": 400, "quantity": 1, "discount": 0, "tax_id": "86067000000093150", "reverse_charge_tax_id": "", "unit": "", "item_order": 1, "is_billable": false, "customer_id": "", "project_id": "", "hsn_or_sac": "1034", "unitkey_code": "H87", "product_type": "goods", "tax_treatment_code": "", "tags": [ { "tag_id": "86067000000001400", "tag_option_id": "86067000000001401" } ], "item_custom_fields": [ { "custom_field_id": "86067000000072003", "value": "2" } ] } ] }

Response Example

{ "code": 0, "message": "The self-billed invoice has been created.", "bill": { "bill_id": "982000000567301", "bill_number": "B-001982", "vendor_id": "86067000000227074", "vendor_name": "Zylker Trading LLC", "date": "2026-09-23", "due_date": "2026-09-23", "status": "draft", "entity_type": "self_billed_invoice", "total": 420, "balance": 420 } }

List Self-Billed Invoices AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Retrieve a paginated list of self-billed invoices. Use the entity_type=self_billed_invoice query parameter to filter self-billed invoices only.
OAuth Scope : ZohoBooks.bills.READ

Query Parameters

organization_id
string
(Required)
ID of the organization. Note: This value is a set of numeric characters.
entity_type
string
Filter by entity type. Use self_billed_invoice to list only self-billed invoices.
bill_number
string
Filter by bill number.
status
string
Filter by status. Allowed values: draft, open, paid, overdue, void.
date_start
date
Filter invoices with a bill date on or after this date. Format: yyyy-mm-dd.
date_end
date
Filter invoices with a bill date on or before this date. Format: yyyy-mm-dd.
vendor_name
string
Filter by vendor name.
sort_column
string
Column to sort the list by. Allowed values: vendor_name, bill_number, date, due_date, total, balance.
sort_order
string
Sort order. Allowed values: A (ascending), D (descending).
page
integer
Page number for pagination.
per_page
integer
Number of records per page. Default: 25.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/books/v3/bills?organization_id=10234695" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/books/v3/bills?organization_id=10234695") .get() .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/books/v3/bills?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("GET", "/books/v3/bills?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "www.zohoapis.com", "port": null, "path": "/books/v3/bills?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request GET \ --url 'https://www.zohoapis.com/books/v3/bills?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "bills": [ { "bill_id": "982000000567301", "bill_number": "B-001982", "vendor_name": "Zylker Trading LLC", "date": "2026-09-23", "due_date": "2026-09-23", "status": "draft", "entity_type": "self_billed_invoice", "total": 420, "balance": 420 }, {...}, {...} ], "page_context": { "page": 1, "per_page": 25, "has_more_page": false, "report_name": "Bills", "applied_filter": "Status.All", "sort_column": "date", "sort_order": "D" } }

Update a Self-Billed Invoice AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Update the details of an existing self-billed invoice.
OAuth Scope : ZohoBooks.bills.UPDATE

Arguments

bill_number
string
Unique bill number for the self-billed invoice. Maximum length: 50 characters.
vendor_id
string
Unique identifier of the vendor (supplier on whose behalf the invoice is raised). Note: This value is a set of numeric characters.
reference_number
string
Reference number for the self-billed invoice.
date
date
Date of the self-billed invoice. Format: yyyy-mm-dd.
due_date
date
Due date for payment. Format: yyyy-mm-dd.
terms
string
Payment terms notes for the self-billed invoice. Maximum length: 10000 characters.
adjustment
number
Adjustment amount applied to the total.
adjustment_description
string
Description for the adjustment amount. Maximum length: 100 characters.
is_draft
boolean
Set to true to save the self-billed invoice as a draft.
pricebook_id
string
Unique identifier of the price book to apply. Note: This value is a set of numeric characters.
is_item_level_tax_calc
boolean
Set to true to calculate tax at the line-item level.
is_inclusive_tax
boolean
Set to true if the line-item rates are inclusive of tax.
discount
number
Entity-level discount applied to the subtotal.
discount_code
string
🇦🇪 United Arab Emirates
only
Discount reason code for the entity-level discount. Maximum length: 200 characters.
discount_account_id
string
Unique identifier of the account to post the discount amount. Note: This value is a set of numeric characters.
discount_type
string
Level at which the discount is applied. Allowed values: entity_level, item_level.
is_discount_before_tax
boolean
Set to true to apply the discount before tax calculation.
payment_terms
integer
Number of days within which payment is due.
payment_terms_label
string
Label for the payment terms (e.g., Net 30).
payment_mode
string
🇦🇪 United Arab Emirates
only
Mode of payment expected from the buyer. Allowed values: cash, cheque, bank_transfer, sepa_credit_transfer, debit_transfer, card, not_specified, bankers_draft, credit_transfer, direct_debit, sepa_direct_debit, bank_cheque, credit_card, debit_card, online_payment_service.
bank_account_id
string
🇦🇪 United Arab Emirates
only
Unique identifier of the bank account for the expected payment. Note: This value is a set of numeric characters.
account_id
string
Unique identifier of the expense account for the bill. Note: This value is a set of numeric characters.
template_id
string
Unique identifier of the PDF template for the self-billed invoice. Note: This value is a set of numeric characters.
entity_type
string
Must be set to self_billed_invoice. Allowed values: bill, self_billed_invoice.
tax_treatment
string
🇦🇪 United Arab Emirates
, GCC only
VAT treatment of the vendor. Allowed values include vat_registered, vat_not_registered, gcc_vat_not_registered, gcc_vat_registered, and non_gcc.
For UAE Edition: also dz_vat_registered, dz_vat_not_registered, out_of_scope, gcc_non_vat, fz_vat_registered, and fz_vat_not_registered.
place_of_supply
string
🇦🇪 United Arab Emirates
only
Place where the goods or services are supplied. Use the supported state, emirate, or country code for the organization edition.
tax_reg_no
string
🇦🇪 United Arab Emirates
only
Tax Registration Number (TRN) of the vendor.
registration_details
object
🇦🇪 United Arab Emirates
only
Registration details of the vendor. Includes buyer identification, tax registration, and legal information used for E-Invoicing.
Show Sub-Attributes arrow
company_registration_no
string
Company registration number (Commercial Registration number). Maximum length: 200 characters.
einvoice_identifier_label
string
Label for the buyer identifier used in E-Invoicing (Buyer ID label). Allowed values: TL, EID, PAS, CD. Maximum length: 200 characters.
einvoice_identifier_value
string
Value of the buyer identifier used in E-Invoicing (Buyer ID value). Maximum length: 200 characters.
additionalfield1
string
Authority or scheme that issued the buyer identifier (Buyer ID authority, for example Department of Economy and Tourism). Maximum length: 200 characters.
electronic_address_value
string
Electronic address (Peppol ID or similar) of the vendor used for E-Invoicing routing. Maximum length: 200 characters.
permit_number
string
Customs or import permit number.
billing_address_id
string
Unique identifier of the billing address for the vendor. Note: This value is a set of numeric characters.
recurring_bill_id
string
Unique identifier of the recurring bill profile linked to this invoice. Note: This value is a set of numeric characters.
tags
array
List of tags to associate with the self-billed invoice.
Show Sub-Attributes arrow
tag_id
string
Unique identifier of the reporting tag. Note: This value is a set of numeric characters.
tag_option_id
string
Unique identifier of the selected tag option. Note: This value is a set of numeric characters.
custom_fields
array
List of custom fields for the self-billed invoice.
Show Sub-Attributes arrow
custom_field_id
string
Unique identifier of the custom field. Note: This value is a set of numeric characters.
value
string
Value of the custom field.
documents
array
List of documents attached to the self-billed invoice.
Show Sub-Attributes arrow
document_id
string
Unique identifier of the attached document. Note: This value is a set of numeric characters.
file_name
string
File name of the attached document.
line_items
array
List of line items in the self-billed invoice.
Show Sub-Attributes arrow
item_id
string
Unique identifier of the item. Note: This value is a set of numeric characters.
name
string
Name of the line item. Maximum length: 200 characters.
account_id
string
Unique identifier of the expense account for the line item. Note: This value is a set of numeric characters.
description
string
Description of the line item. Maximum length: 6000 characters.
rate
number
Unit price of the item.
quantity
number
Quantity of the item.
discount
number
Discount percentage or amount applied to the line item.
tax_id
string
Unique identifier of the tax applied to the line item. Note: This value is a set of numeric characters.
reverse_charge_tax_id
string
Unique identifier of the reverse charge tax for the line item. Note: This value is a set of numeric characters.
unit
string
Unit of measurement for the item (e.g., kg, pcs).
item_order
integer
Display order of the line item.
is_billable
boolean
Set to true if the line item is billable to a customer.
customer_id
string
Unique identifier of the customer to bill, if the line item is billable. Note: This value is a set of numeric characters.
project_id
string
Unique identifier of the project associated with the line item. Note: This value is a set of numeric characters.
hsn_or_sac
string
🇦🇪 United Arab Emirates
only
HSN or SAC code for the line item.
unitkey_code
string
🇦🇪 United Arab Emirates
only
UN/CEFACT unit code for the line item. Maximum length: 10 characters.
product_type
string
🇦🇪 United Arab Emirates
only
The product or service type the line item belongs to. Allowed values: goods or service.
tax_treatment_code
string
🇦🇪 United Arab Emirates
only
Tax treatment reason code for the line item.
tags
array
List of tags for the line item.
Show Sub-Attributes arrow
tag_id
string
Unique identifier of the reporting tag. Note: This value is a set of numeric characters.
tag_option_id
string
Unique identifier of the selected tag option. Note: This value is a set of numeric characters.
item_custom_fields
array
List of custom fields for the line item.
Show Sub-Attributes arrow
custom_field_id
string
Unique identifier of the custom field. Note: This value is a set of numeric characters.
value
string
Value of the custom field.

Path Parameters

bill_id
string
(Required)
Unique identifier of the self-billed invoice. Note: This value is a set of numeric characters.

Query Parameters

organization_id
string
(Required)
ID of the organization. Note: This value is a set of numeric characters.

Request Example

Click to copy
parameters_data='{"field1":"value1","field2":"value2"}'; headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/books/v3/bills/982000000567301?organization_id=10234695" type: PUT headers: headers_data content-type: application/json parameters: parameters_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, "{\"field1\":\"value1\",\"field2\":\"value2\"}"); Request request = new Request.Builder() .url("https://www.zohoapis.com/books/v3/bills/982000000567301?organization_id=10234695") .put(body) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .addHeader("content-type", "application/json") .build(); Response response = client.newCall(request).execute();
const options = { method: 'PUT', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f', 'content-type': 'application/json' }, body: '{"field1":"value1","field2":"value2"}' }; fetch('https://www.zohoapis.com/books/v3/bills/982000000567301?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}" headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", 'content-type': "application/json" } conn.request("PUT", "/books/v3/bills/982000000567301?organization_id=10234695", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "PUT", "hostname": "www.zohoapis.com", "port": null, "path": "/books/v3/bills/982000000567301?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", "content-type": "application/json" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.write(JSON.stringify({field1: 'value1', field2: 'value2'})); req.end();
curl --request PUT \ --url 'https://www.zohoapis.com/books/v3/bills/982000000567301?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'content-type: application/json' \ --data '{"field1":"value1","field2":"value2"}'

Body Parameters

Click to copy
{ "bill_number": "B-001982", "vendor_id": "86067000000227074", "reference_number": "REF-001", "date": "2026-09-23", "due_date": "2026-09-23", "terms": "Net 30", "adjustment": 0, "adjustment_description": "Adjustment", "is_draft": false, "pricebook_id": "", "is_item_level_tax_calc": false, "is_inclusive_tax": false, "discount": 0, "discount_code": "special_agreement", "discount_account_id": "86067000000072001", "discount_type": "entity_level", "is_discount_before_tax": true, "payment_terms": 0, "payment_terms_label": "Due on Receipt", "payment_mode": "cash", "bank_account_id": "86067000000034003", "account_id": "86067000000000373", "template_id": "86067000000093112", "entity_type": "self_billed_invoice", "tax_treatment": "vat_registered", "place_of_supply": "DU", "tax_reg_no": "100200441040003", "registration_details": { "company_registration_no": "1002004410", "einvoice_identifier_label": "EID", "einvoice_identifier_value": "234324", "additionalfield1": "Department of Economy and Tourism", "legal_name": "Zylker Trading LLC", "electronic_address_value": "0088:1234567890123" }, "permit_number": "", "billing_address_id": "86067000000227075", "recurring_bill_id": "", "tags": [ { "tag_id": "86067000000001400", "tag_option_id": "86067000000001401" } ], "custom_fields": [ { "custom_field_id": "86067000000072002", "value": "Warehouse A" } ], "documents": [ { "document_id": "86067000000080001", "file_name": "vendor-invoice.pdf" } ], "line_items": [ { "item_id": "86067000000120060", "name": "Airpod stand", "account_id": "86067000000034003", "description": "Airpod stand", "rate": 400, "quantity": 1, "discount": 0, "tax_id": "86067000000093150", "reverse_charge_tax_id": "", "unit": "", "item_order": 1, "is_billable": false, "customer_id": "", "project_id": "", "hsn_or_sac": "1034", "unitkey_code": "H87", "product_type": "goods", "tax_treatment_code": "", "tags": [ { "tag_id": "86067000000001400", "tag_option_id": "86067000000001401" } ], "item_custom_fields": [ { "custom_field_id": "86067000000072003", "value": "2" } ] } ] }

Response Example

{ "code": 0, "message": "The self-billed invoice has been updated.", "bill": { "bill_id": "982000000567301", "bill_number": "B-001982", "vendor_id": "86067000000227074", "vendor_name": "Zylker Trading LLC", "date": "2026-09-23", "due_date": "2026-09-23", "status": "draft", "entity_type": "self_billed_invoice", "total": 420, "balance": 420 } }

Get a Self-Billed Invoice AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Fetch the details of a self-billed invoice.
OAuth Scope : ZohoBooks.bills.READ

Path Parameters

bill_id
string
(Required)
Unique identifier of the self-billed invoice. Note: This value is a set of numeric characters.

Query Parameters

organization_id
string
(Required)
ID of the organization. Note: This value is a set of numeric characters.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/books/v3/bills/982000000567301?organization_id=10234695" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/books/v3/bills/982000000567301?organization_id=10234695") .get() .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/books/v3/bills/982000000567301?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("GET", "/books/v3/bills/982000000567301?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "www.zohoapis.com", "port": null, "path": "/books/v3/bills/982000000567301?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request GET \ --url 'https://www.zohoapis.com/books/v3/bills/982000000567301?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "bill": { "bill_id": "982000000567301", "bill_number": "B-001982", "vendor_id": "86067000000227074", "vendor_name": "Zylker Trading LLC", "date": "2026-09-23", "due_date": "2026-09-23", "status": "open", "entity_type": "self_billed_invoice", "total": 420, "balance": 420, "einvoice_status": "pushed", "is_peppol_supported": true, "source": "e-invoice" } }

Delete a Self-Billed Invoice AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Delete an existing self-billed invoice.
OAuth Scope : ZohoBooks.bills.DELETE

Path Parameters

bill_id
string
(Required)
Unique identifier of the self-billed invoice. Note: This value is a set of numeric characters.

Query Parameters

organization_id
string
(Required)
ID of the organization. Note: This value is a set of numeric characters.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/books/v3/bills/982000000567301?organization_id=10234695" type: DELETE headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/books/v3/bills/982000000567301?organization_id=10234695") .delete(null) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'DELETE', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/books/v3/bills/982000000567301?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("DELETE", "/books/v3/bills/982000000567301?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "DELETE", "hostname": "www.zohoapis.com", "port": null, "path": "/books/v3/bills/982000000567301?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request DELETE \ --url 'https://www.zohoapis.com/books/v3/bills/982000000567301?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "The self-billed invoice has been deleted." }

Push a self-billed invoice e-invoice AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Push the e-invoice of a self-billed invoice.
Rate limit: 150 requests per minute. Exceeding this limit triggers a 30-minute lock-out.
OAuth Scope : ZohoBooks.bills.CREATE

Path Parameters

bill_id
string
(Required)
Unique identifier of the self-billed invoice. Note: This value is a set of numeric characters.

Query Parameters

organization_id
string
(Required)
ID of the organization. Note: This value is a set of numeric characters.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/books/v3/selfbilledinvoices/982000000567301/einvoice/push?organization_id=10234695" type: POST headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://www.zohoapis.com/books/v3/selfbilledinvoices/982000000567301/einvoice/push?organization_id=10234695") .post(null) .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .build(); Response response = client.newCall(request).execute();
const options = { method: 'POST', headers: { Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' } }; fetch('https://www.zohoapis.com/books/v3/selfbilledinvoices/982000000567301/einvoice/push?organization_id=10234695', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("www.zohoapis.com") headers = { 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } conn.request("POST", "/books/v3/selfbilledinvoices/982000000567301/einvoice/push?organization_id=10234695", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "POST", "hostname": "www.zohoapis.com", "port": null, "path": "/books/v3/selfbilledinvoices/982000000567301/einvoice/push?organization_id=10234695", "headers": { "Authorization": "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end();
curl --request POST \ --url 'https://www.zohoapis.com/books/v3/selfbilledinvoices/982000000567301/einvoice/push?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "The e-invoice has been pushed." }