API Docs
/
No Results Found
Contacts

Attribute

contact_id
string
Unique identifier for the contact. System-generated ID used for API operations.
contact_name
string
Display name for the contact. It is used for searching and displaying contacts.
company_name
string
Legal or registered contact's company name. Used for legal documents and formal communications. Max-length [200].
has_transaction
boolean
Indicates whether the contact has any transaction history in the system.
contact_type
string
Determines how the contact is treated in the system. Allowed values: customer, vendor.
customer_sub_type
string
For Customer Only : Additional classification for customers. Allowed values: individual, business.
credit_limit
double
For Customer Only : The maximum credit amount that can be allowed for the customer. Once the customer's outstanding receivables reach this limit, the system will restrict the customer from creating any further transactions.
is_portal_enabled
boolean
Indicates whether portal access is enabled for the primary contact person. Allowed value: true and false.
language_code
string
Preferred language for the contact. Determines portal language. Allowed values: de,en,es,fr,it,ja,nl,pt,pt_br,sv,zh,en_gb
is_taxable
boolean
🇺🇸 United States
, 🇨🇦 Canada
, 🇦🇺 Australia
, 🇮🇳 India
, 🇲🇽 Mexico
, 🇰🇪 Kenya
, 🇿🇦 South Africa
only
Indicates whether the customer is subject to tax collection. Tax-related fields are only available when this field is set to true. Allowed values: true and false.
tax_id
string
🇮🇳 India
, 🇺🇸 United States
only
Unique identifier for the tax or tax group assigned to the contact. Available only when is_taxable is true.
tds_tax_id
string
🇲🇽 Mexico
only
Unique identifier for the Tax Deducted at Source (TDS) tax configuration assigned to the contact.
tax_name
string
🇮🇳 India
only
Display name of the tax assigned to the contact.
tax_percentage
double
Tax percentage assigned to the contact.
tax_authority_id
string
🇺🇸 United States
only
Unique identifier for the tax authority responsible for the customer's tax jurisdiction. Tax authority depends on the location of the customer. For example, if the customer is located in NY, then the tax authority is NY tax authority.
tax_exemption_id
string
🇺🇸 United States
, 🇨🇦 Canada
, 🇦🇺 Australia
, 🇮🇳 India
only
Unique identifier for the tax exemption configuration assigned to this contact.
tax_authority_name
string
Display name of the tax authority responsible for the customer's tax jurisdiction.
tax_exemption_code
string
🇺🇸 United States
, 🇨🇦 Canada
, 🇦🇺 Australia
, 🇮🇳 India
only
Code identifier for the tax exemption assigned to the contact.
place_of_contact
string
🇮🇳 India
only
State or union territory code where the contact is located for Indian tax purposes. (This node identifies the place of supply and source of supply when invoices/bills are raised for the customer/vendor respectively. This is not applicable for Overseas contacts)
gst_no
string
🇮🇳 India
only
15-digit GST identification number of the contact as issued by the Indian tax authorities.
vat_treatment
string
🇬🇧 United Kingdom
only
VAT treatment of the contact.Allowed Values:
uk (A business that is located in the UK.),
eu_vat_registered (A business that is reg for VAT and trade goods between Northern Ireland and EU. This node is available only for organizations enabled for NI protocal in VAT Settings.) and
overseas (A business that is located outside UK. Pre Brexit, this was split as eu_vat_registered, eu_vat_not_registered and non_eu ).
tax_treatment
string
GCC , 🇲🇽 Mexico
, 🇰🇪 Kenya
, 🇿🇦 South Africa
only
Tax treatment of the contact.
Allowed Values: vat_registered,vat_not_registered,gcc_vat_not_registered,gcc_vat_registered,non_gcc,dz_vat_registered and dz_vat_not_registered
home_country_mexico (A business that is located within MX)
border_region_mexico (A business that is located in the northern and southern border regions in MX)
non_mexico (A business that is located outside MX).
For Kenya Edition: vat_registered ,vat_not_registered ,non_kenya(A business that is located outside Kenya).
For SouthAfrica Edition: vat_registered, vat_not_registered, overseas(A business that is located outside SouthAfrica).
tax_exemption_certificate_number
string
🇰🇪 Kenya
only
Tax Exemption Certificate number is issued by the Kenya Revenue Authority (KRA) to organizations or individuals who qualify for tax exemption
tax_regime
string
🇲🇽 Mexico
only
Tax Regime of the contact.Allowed Values: general_legal_person, legal_entities_non_profit, resident_abroad, production_cooperative_societies, agricultural_livestock, optional_group_of_companies, coordinated, simplified_trust, wages_salaries_income, lease, property_disposal_acquisition, other_income, resident_abroad, divident_income, individual_business_professional, interest_income, income_obtaining_price, no_tax_obligation, tax_incorporation, income_through_technology_platform, simplified_trust.
is_tds_registered
boolean
🇲🇽 Mexico
only
Indicates whether the contact is registered for Tax Deducted at Source (TDS) in Mexico.
gst_treatment
string
🇮🇳 India
only
Choose whether the contact is GST registered/unregistered/consumer/overseas. Allowed values are business_gst , business_none , overseas , consumer .
is_linked_with_zohocrm
boolean
Indicates whether this contact is linked with Zoho CRM.
website
string
Official website URL of the contact.
owner_id
string
For Customer Only : Unique identifier for the user assigned as the owner of the contact. This field specifies which user in the organization is responsible for managing the business relationship with this contact.
primary_contact_id
string
Unique identifier for the primary contact person of the contact.
pricebook_id
string
Pricebook id which is associated with the contact. Max-length [200].
contact_number
string
Contact number associated with the contact for internal tracking and identification purposes. Max-length [200].
ignore_auto_number_generation
boolean
Indicates whether the auto generation contact_number is ignored or not for the contact. Allowed values: true, false.
payment_terms
integer
Number of days allowed for payment after the invoice date.
payment_terms_label
string
Human-readable label of payment terms displayed on invoices and other transactions. Max-length [200].
currency_id
string
Unique identifier for the currency assigned to this contact. The currency_id must correspond to a valid currency configuration in the system.
currency_code
string
Three-letter ISO currency code for the currency assigned to this contact. If not specified, the organization's default currency will be used.
currency_symbol
string
Currency symbol that represents the currency assigned to this contact.
opening_balances
array
Show Sub-Attributes arrow
location_id
string
Unique identifier for the business location associated with this opening balance.
exchange_rate
double
Currency exchange rate used to convert opening balance to organization's base currency.
opening_balance_amount
double
Initial balance amount for the contact at the time of creation.
outstanding_receivable_amount
integer
Total amount owed by the customer for all outstanding invoices and transactions.
outstanding_receivable_amount_bcy
integer
Total amount owed by the customer in the organization's base currency.
unused_credits_receivable_amount
integer
Total amount of unused credits available for the customer.
unused_credits_receivable_amount_bcy
integer
Total amount of unused credits available for the customer in base currency.
status
string
Indicates whether the contact is active or inactive. Allowed values: active, inactive.
payment_reminder_enabled
boolean
Indicates whether automated payment reminders are enabled for this contact.
custom_fields
array
Show Sub-Attributes arrow
index
integer
Index of the custom field. It can hold any value from 1 to 10.
value
string
Value of the custom field.
label
string
Label of the custom field.
billing_address
object
Billing address information for the contact.
Show Sub-Attributes arrow
attention
string
Attention for proper delivery and routing of business correspondence. Max-length [100].
address
string
Street 1 address for the contact. Max-length [500].
street2
string
Street 2 address for the contact. Max-length [255].
state_code
string
State or province code for the address. Max-length [100].
city
string
City name for the address. Max-length [100].
state
string
State for the address. Max-length [100].
zip
string
Postal or ZIP code for the address. Max-length [50].
country
string
Country name for the address. Max-length [100].
fax
string
Fax number for the address. Max-length [50].
phone
string
The contact phone number associated with the address. Max-length [50]
shipping_address
object
Shipping address information for the contact.
Show Sub-Attributes arrow
attention
string
Attention for proper delivery and routing of business correspondence. Max-length [100].
address
string
Street 1 address for the contact. Max-length [500].
street2
string
Street 2 address for the contact. Max-length [255].
state_code
string
State or province code for the address. Max-length [100].
city
string
City name for the address. Max-length [100].
state
string
State for the address. Max-length [100].
zip
string
Postal or ZIP code for the address. Max-length [50].
country
string
Country name for the address. Max-length [100].
fax
string
Fax number for the address. Max-length [50].
phone
string
The contact phone number associated with the address. Max-length [50]
facebook
string
Facebook profile URL for the contact. Max-length [100].
twitter
string
X profile URL for the contact. Max-length [100].
contact_persons
array
Show Sub-Attributes arrow
contact_person_id
string
Unique identifier for the contact person. System-generated ID for API operations.
salutation
string
Salutation for the contact. Max-length [25]
first_name
string
First name of the contact person. Max-length [100].
last_name
string
Last name of the contact person. Max-length [100].
email
string
Email address of the contact person for business communications. Max-length [100].
phone
string
Phone number of the contact person. Max-length [50].
mobile
string
Mobile number of the contact person. Max-length [50].
designation
string
Designation of the contact person within the contact's company. Max-length [100].
department
string
Department of the contact person within the contact's company. Max-length [50].
skype
string
Skype username of the contact person. Max-length [50].
is_primary_contact
boolean
Indicates whether this contact person is the primary contact. Only one per contact. Allowed values: true and false.
communication_preference
object
Preferred modes of communication for the contact person.
Show Sub-Attributes arrow
is_sms_enabled
boolean
SMS integration only
Whether SMS text messages are allowed for the contact person.
is_whatsapp_enabled
boolean
WhatsApp integration only
Whether WhatsApp messaging is allowed for the contact person.
enable_portal
boolean
Indicates whether the contact person should have access to the client portal. Allowed values: true and false.
default_templates
object
Show Sub-Attributes arrow
invoice_template_id
string
Default invoice template id used for this customer while creating invoice.
estimate_template_id
string
Default estimate template id used for this customer while creating estimate.
creditnote_template_id
string
Default credit note template id used for this customer while creating credit note.
purchaseorder_template_id
string
Default purchase order template id used for this vendor while creating purchase order.
salesorder_template_id
string
Default sales order template id used for this customer while creating sales order.
retainerinvoice_template_id
string
Default retainer invoice template id used for this customer while creating retainer invoice.
paymentthankyou_template_id
string
Default payment thank you template id used for this contact while sending payment acknowledgment.
retainerinvoice_paymentthankyou_template_id
string
Default retainer invoice payment thank you template id used for this customer while sending payment acknowledgment for retainer invoices.
invoice_email_template_id
string
Default invoice email template id used for this customer while sending invoices.
estimate_email_template_id
string
Default estimate email template id used for this customer while sending estimates.
creditnote_email_template_id
string
Default credit note email template id used for this customer while sending credit notes.
purchaseorder_email_template_id
string
Default purchase order email template id used for this vendor while sending purchase order.
salesorder_email_template_id
string
Default sales order email template id used for this customer while sending sales order.
retainerinvoice_email_template_id
string
Default retainer invoice email template id used for this contact while sending retainer invoice.
paymentthankyou_email_template_id
string
Default payment thank you email template id used for this contact while sending payment acknowledgment.
retainerinvoice_paymentthankyou_email_template_id
string
Default retainer invoice payment thank you email template id used for this customer while sending payment acknowledgment for retainer invoices.
statement_template_id
string
Default statement template id used for this contact while creating statement.
payment_remittance_email_template_id
string
Default payment remittance email template id used for this contact while sending payment remittances.
bill_template_id
string
Default bill template id used for this vendor while creating bill.
notes
string
Additional comments or notes about the contact.
created_time
string
Timestamp when the contact was initially created in the system.
last_modified_time
string
Timestamp when the contact was last updated or modified in the system.

Example

{ "contact_id": 460000000026049, "contact_name": "Bowman and Co", "company_name": "Bowman and Co", "has_transaction": true, "contact_type": "customer", "customer_sub_type": "business", "credit_limit": 1000, "is_portal_enabled": true, "language_code": "string", "is_taxable": true, "tax_id": 11149000000061058, "tds_tax_id": "982000000557012", "tax_name": "CGST", "tax_percentage": 12, "tax_authority_id": 11149000000061052, "tax_exemption_id": 11149000000061054, "tax_authority_name": "string", "tax_exemption_code": "string", "place_of_contact": "TN", "gst_no": "22AAAAA0000A1Z5", "vat_treatment": "string", "tax_treatment": "string", "tax_exemption_certificate_number": "KRAEXM0043310521", "tax_regime": "general_legal_person", "legal_name": "ESCUELA KEMPER URGATE", "is_tds_registered": true, "gst_treatment": "business_gst", "is_linked_with_zohocrm": false, "website": "www.bowmanfurniture.com", "owner_id": 460000000016051, "primary_contact_id": 460000000026051, "pricebook_id": 460000000000123, "contact_number": "CNT-001234", "ignore_auto_number_generation": false, "payment_terms": 15, "payment_terms_label": "Net 15", "currency_id": 460000000000097, "currency_code": "USD", "currency_symbol": "$", "opening_balances": [ { "location_id": "460000000038080", "exchange_rate": 1, "opening_balance_amount": 1200 } ], "outstanding_receivable_amount": 250, "outstanding_receivable_amount_bcy": 250, "unused_credits_receivable_amount": 1369.66, "unused_credits_receivable_amount_bcy": 1369.66, "status": "active", "payment_reminder_enabled": true, "custom_fields": [ { "index": 1, "value": "GBGD078", "label": "VAT ID" } ], "billing_address": { "attention": "Mr.John", "address": "4900 Hopyard Rd", "street2": "Suite 310", "state_code": "CA", "city": "Pleasanton", "state": "CA", "zip": 94588, "country": "U.S.A", "fax": "+1-925-924-9600", "phone": "+1-925-921-9201" }, "shipping_address": { "attention": "Mr.John", "address": "4900 Hopyard Rd", "street2": "Suite 310", "state_code": "CA", "city": "Pleasanton", "state": "CA", "zip": 94588, "country": "U.S.A", "fax": "+1-925-924-9600", "phone": "+1-925-921-9201" }, "facebook": "zoho", "twitter": "zoho", "contact_persons": [ { "contact_person_id": 460000000026051, "salutation": "Mr", "first_name": "Will", "last_name": "Smith", "email": "willsmith@bowmanfurniture.com", "phone": "+1-925-921-9201", "mobile": "+1-4054439562", "designation": "Sales Executive", "department": "Sales and Marketing", "skype": "Zoho", "is_primary_contact": true, "communication_preference": { "is_sms_enabled": false, "is_whatsapp_enabled": false }, "enable_portal": true } ], "default_templates": { "invoice_template_id": 460000000052069, "estimate_template_id": 460000000000179, "creditnote_template_id": 460000000000211, "purchaseorder_template_id": 460000000000213, "salesorder_template_id": 460000000000214, "retainerinvoice_template_id": 460000000000215, "paymentthankyou_template_id": 460000000000216, "retainerinvoice_paymentthankyou_template_id": 460000000000217, "invoice_email_template_id": 460000000052071, "estimate_email_template_id": 460000000052073, "creditnote_email_template_id": 460000000052075, "purchaseorder_email_template_id": 460000000000218, "salesorder_email_template_id": 460000000000219, "retainerinvoice_email_template_id": 460000000000220, "paymentthankyou_email_template_id": 460000000000221, "retainerinvoice_paymentthankyou_email_template_id": 460000000000222, "statement_template_id": 460000000000101, "payment_remittance_email_template_id": 460000000000102, "bill_template_id": 460000000000103 }, "notes": "Payment option : Through check", "created_time": "2013-08-05T12:06:10+0530", "last_modified_time": "2013-10-07T18:24:51+0530" }

Create a Contact

Create a new contact with comprehensive business information. This operation allows you to create a customer or vendor by providing details such as contact name, company information, addresses, contact persons, payment terms, tax settings, and custom fields. The created contact can be used for generating invoices, bills, estimates, and other business transactions. The system automatically assigns a unique contact ID.
OAuth Scope : ZohoBooks.contacts.CREATE

Arguments

contact_name
string
(Required)
Display name for the contact. It is used for searching and displaying contacts.
company_name
string
Legal or registered contact's company name. Used for legal documents and formal communications. Max-length [200].
website
string
Official website URL of the contact.
language_code
string
Preferred language for the contact. Determines portal language. Allowed values: de,en,es,fr,it,ja,nl,pt,pt_br,sv,zh,en_gb
contact_type
string
Determines how the contact is treated in the system. Allowed values: customer, vendor.
customer_sub_type
string
For Customer Only : Additional classification for customers. Allowed values: individual, business.
credit_limit
double
For Customer Only : The maximum credit amount that can be allowed for the customer. Once the customer's outstanding receivables reach this limit, the system will restrict the customer from creating any further transactions.
pricebook_id
string
Pricebook id which is associated with the contact. Max-length [200].
contact_number
string
Contact number associated with the contact for internal tracking and identification purposes. Max-length [200].
ignore_auto_number_generation
boolean
Indicates whether the auto generation contact_number is ignored or not for the contact. Allowed values: true, false.
tags
array
Filter all your reports based on the tag
Show Sub-Attributes arrow
tag_id
string
ID of the reporting tag
tag_option_id
string
ID of the reporting tag's option
is_portal_enabled
boolean
Indicates whether portal access is enabled for the primary contact person. Allowed value: true and false.
currency_id
string
Unique identifier for the currency assigned to this contact. The currency_id must correspond to a valid currency configuration in the system.
payment_terms
integer
Number of days allowed for payment after the invoice date.
payment_terms_label
string
Human-readable label of payment terms displayed on invoices and other transactions. Max-length [200].
notes
string
Additional comments or notes about the contact.
billing_address
object
Billing address information for the contact.
Show Sub-Attributes arrow
attention
string
Attention for proper delivery and routing of business correspondence. Max-length [100].
address
string
Street 1 address for the contact. Max-length [500].
street2
string
Street 2 address for the contact. Max-length [255].
state_code
string
State or province code for the address. Max-length [100].
city
string
City name for the address. Max-length [100].
state
string
State for the address. Max-length [100].
zip
string
Postal or ZIP code for the address. Max-length [50].
country
string
Country name for the address. Max-length [100].
fax
string
Fax number for the address. Max-length [50].
phone
string
The contact phone number associated with the address. Max-length [50]
shipping_address
object
Shipping address information for the contact.
Show Sub-Attributes arrow
attention
string
Attention for proper delivery and routing of business correspondence. Max-length [100].
address
string
Street 1 address for the contact. Max-length [500].
street2
string
Street 2 address for the contact. Max-length [255].
state_code
string
State or province code for the address. Max-length [100].
city
string
City name for the address. Max-length [100].
state
string
State for the address. Max-length [100].
zip
string
Postal or ZIP code for the address. Max-length [50].
country
string
Country name for the address. Max-length [100].
fax
string
Fax number for the address. Max-length [50].
phone
string
The contact phone number associated with the address. Max-length [50]
contact_persons
array
Show Sub-Attributes arrow
salutation
string
Salutation for the contact. Max-length [25]
first_name
string
First name of the contact person. Max-length [100].
last_name
string
Last name of the contact person. Max-length [100].
email
string
Email address of the contact person for business communications. Max-length [100].
phone
string
Phone number of the contact person. Max-length [50].
mobile
string
Mobile number of the contact person. Max-length [50].
designation
string
Designation of the contact person within the contact's company. Max-length [100].
department
string
Department of the contact person within the contact's company. Max-length [50].
skype
string
Skype username of the contact person. Max-length [50].
is_primary_contact
boolean
Indicates whether this contact person is the primary contact. Only one per contact. Allowed values: true and false.
communication_preference
object
Preferred modes of communication for the contact person.
Show Sub-Attributes arrow
is_sms_enabled
boolean
SMS integration only
Whether SMS text messages are allowed for the contact person.
is_whatsapp_enabled
boolean
WhatsApp integration only
Whether WhatsApp messaging is allowed for the contact person.
enable_portal
boolean
Indicates whether the contact person should have access to the client portal. Allowed values: true and false.
default_templates
object
Show Sub-Attributes arrow
invoice_template_id
string
Default invoice template id used for this customer while creating invoice.
estimate_template_id
string
Default estimate template id used for this customer while creating estimate.
creditnote_template_id
string
Default credit note template id used for this customer while creating credit note.
purchaseorder_template_id
string
Default purchase order template id used for this vendor while creating purchase order.
salesorder_template_id
string
Default sales order template id used for this customer while creating sales order.
retainerinvoice_template_id
string
Default retainer invoice template id used for this customer while creating retainer invoice.
paymentthankyou_template_id
string
Default payment thank you template id used for this contact while sending payment acknowledgment.
retainerinvoice_paymentthankyou_template_id
string
Default retainer invoice payment thank you template id used for this customer while sending payment acknowledgment for retainer invoices.
invoice_email_template_id
string
Default invoice email template id used for this customer while sending invoices.
estimate_email_template_id
string
Default estimate email template id used for this customer while sending estimates.
creditnote_email_template_id
string
Default credit note email template id used for this customer while sending credit notes.
purchaseorder_email_template_id
string
Default purchase order email template id used for this vendor while sending purchase order.
salesorder_email_template_id
string
Default sales order email template id used for this customer while sending sales order.
retainerinvoice_email_template_id
string
Default retainer invoice email template id used for this contact while sending retainer invoice.
paymentthankyou_email_template_id
string
Default payment thank you email template id used for this contact while sending payment acknowledgment.
retainerinvoice_paymentthankyou_email_template_id
string
Default retainer invoice payment thank you email template id used for this customer while sending payment acknowledgment for retainer invoices.
statement_template_id
string
Default statement template id used for this contact while creating statement.
payment_remittance_email_template_id
string
Default payment remittance email template id used for this contact while sending payment remittances.
bill_template_id
string
Default bill template id used for this vendor while creating bill.
custom_fields
array
Custom fields of the contact.
Show Sub-Attributes arrow
index
integer
Index of the custom field. It can hold any value from 1 to 10.
value
string
Value of the custom field.
opening_balances
array
Show Sub-Attributes arrow
location_id
string
Unique identifier for the business location associated with this opening balance.
exchange_rate
double
Currency exchange rate used to convert opening balance to organization's base currency.
opening_balance_amount
double
Initial balance amount for the contact at the time of creation.
vat_reg_no
string
🇬🇧 United Kingdom
, Avalara Integration only
For UK Edition: VAT Registration number of a contact with length should be between 2 and 12 characters.
For Avalara: If you are doing sales in the European Union (EU) then provide VAT Registration Number of your customers here. This is used to calculate VAT for B2B sales, from Avalara.
owner_id
string
For Customer Only : Unique identifier for the user assigned as the owner of the contact. This field specifies which user in the organization is responsible for managing the business relationship with this contact.
tax_reg_no
string
GCC , 🇲🇽 Mexico
, 🇰🇪 Kenya
, 🇿🇦 South Africa
only
For GCC Edition: 15 digit Tax Registration number of a contact with Tax treatment as vat_registered,gcc_vat_registered,dz_vat_registered.
For Mexico Edition: 12 digit Tax Registration number of a contact with Tax treatment as
home_country_mexico, border_region_mexico, non_mexico.
Consumers generic RFC: XAXX010101000, Overseas generic RFC: XEXX010101000.
For Kenya Edition: 11 digit Tax Registration number of a contact with Tax treatment as vat_registered
For SouthAfrica Edition: 10 digit Tax Registration number of a contact with Tax treatment as vat_registered
tax_exemption_certificate_number
string
🇰🇪 Kenya
only
Tax Exemption Certificate number is issued by the Kenya Revenue Authority (KRA) to organizations or individuals who qualify for tax exemption
country_code
string
🇬🇧 United Kingdom
, GCC , Avalara Integration only
For UK Edition: Two letter country code of a contact
For Avalara: Two letter country code for the customer country, if your customer is not in US. Refer [AvaTax Codes for Countries and States][2].
For GCC Editions : Two Letter country code for the GCC Country or the UAE emirate of the contact which will be considered as place of supply.
Supported codes for UAE emirates are :
Abu Dhabi - AB,
Ajman - AJ,
Dubai - DU,
Fujairah - FU,
Ras al-Khaimah - RA,
Sharjah - SH,
Umm al-Quwain - UM.
Supported codes for the GCC countries are :
United Arab Emirates - AE,
Saudi Arabia - SA,
Bahrain - BH,
Kuwait - KW,
Oman - OM,
Qatar - QA.
vat_treatment
string
🇬🇧 United Kingdom
only
VAT treatment of the contact.Allowed Values:
uk (A business that is located in the UK.),
eu_vat_registered (A business that is reg for VAT and trade goods between Northern Ireland and EU. This node is available only for organizations enabled for NI protocal in VAT Settings.) and
overseas (A business that is located outside UK. Pre Brexit, this was split as eu_vat_registered, eu_vat_not_registered and non_eu ).
tax_treatment
string
GCC , 🇲🇽 Mexico
, 🇰🇪 Kenya
, 🇿🇦 South Africa
only
Tax treatment of the contact.
Allowed Values: vat_registered,vat_not_registered,gcc_vat_not_registered,gcc_vat_registered,non_gcc,dz_vat_registered and dz_vat_not_registered
home_country_mexico (A business that is located within MX)
border_region_mexico (A business that is located in the northern and southern border regions in MX)
non_mexico (A business that is located outside MX).
For Kenya Edition: vat_registered ,vat_not_registered ,non_kenya(A business that is located outside Kenya).
For SouthAfrica Edition: vat_registered, vat_not_registered, overseas(A business that is located outside SouthAfrica).
tax_regime
string
🇲🇽 Mexico
only
Tax Regime of the contact.Allowed Values: general_legal_person, legal_entities_non_profit, resident_abroad, production_cooperative_societies, agricultural_livestock, optional_group_of_companies, coordinated, simplified_trust, wages_salaries_income, lease, property_disposal_acquisition, other_income, resident_abroad, divident_income, individual_business_professional, interest_income, income_obtaining_price, no_tax_obligation, tax_incorporation, income_through_technology_platform, simplified_trust.
is_tds_registered
boolean
🇲🇽 Mexico
only
Indicates whether the contact is registered for Tax Deducted at Source (TDS) in Mexico.
place_of_contact
string
🇮🇳 India
only
State or union territory code where the contact is located for Indian tax purposes. (This node identifies the place of supply and source of supply when invoices/bills are raised for the customer/vendor respectively. This is not applicable for Overseas contacts)
gst_no
string
🇮🇳 India
only
15-digit GST identification number of the contact as issued by the Indian tax authorities.
gst_treatment
string
🇮🇳 India
only
Choose whether the contact is GST registered/unregistered/consumer/overseas. Allowed values are business_gst , business_none , overseas , consumer .
tax_authority_name
string
Display name of the tax authority responsible for the customer's tax jurisdiction.
avatax_exempt_no
string
Avalara Integration only
Exemption certificate number of the customer.
avatax_use_code
string
Avalara Integration only
Used to group like customers for exemption purposes. It is a custom value that links customers to a tax rule. Select from Avalara [standard codes][1] or enter a custom code.
tax_exemption_id
string
🇺🇸 United States
, 🇨🇦 Canada
, 🇦🇺 Australia
, 🇮🇳 India
only
Unique identifier for the tax exemption configuration assigned to this contact.
tax_exemption_code
string
🇺🇸 United States
, 🇨🇦 Canada
, 🇦🇺 Australia
, 🇮🇳 India
only
Code identifier for the tax exemption assigned to the contact.
tax_authority_id
string
🇺🇸 United States
only
Unique identifier for the tax authority responsible for the customer's tax jurisdiction. Tax authority depends on the location of the customer. For example, if the customer is located in NY, then the tax authority is NY tax authority.
tax_id
string
🇮🇳 India
, 🇺🇸 United States
only
Unique identifier for the tax or tax group assigned to the contact. Available only when is_taxable is true.
tds_tax_id
string
🇲🇽 Mexico
only
Unique identifier for the Tax Deducted at Source (TDS) tax configuration assigned to the contact.
is_taxable
boolean
🇺🇸 United States
, 🇨🇦 Canada
, 🇦🇺 Australia
, 🇮🇳 India
, 🇲🇽 Mexico
, 🇰🇪 Kenya
, 🇿🇦 South Africa
only
Indicates whether the customer is subject to tax collection. Tax-related fields are only available when this field is set to true. Allowed values: true and false.
facebook
string
Facebook profile URL for the contact. Max-length [100].
twitter
string
X profile URL for the contact. Max-length [100].
track_1099
boolean
🇺🇸 United States
only
Boolean to track a contact for 1099 reporting.
tax_id_type
string
🇺🇸 United States
only
Tax ID type of the contact, it can be SSN, ATIN, ITIN or EIN.
tax_id_value
string
🇺🇸 United States
only
Tax ID of the contact.

Query Parameters

organization_id
string
(Required)
ID of the organization

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/contacts?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/contacts?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/contacts?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/contacts?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/contacts?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/contacts?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
{ "contact_name": "Bowman and Co", "company_name": "Bowman and Co", "website": "www.bowmanfurniture.com", "language_code": "string", "contact_type": "customer", "customer_sub_type": "business", "credit_limit": 1000, "pricebook_id": 460000000000123, "contact_number": "CNT-001234", "ignore_auto_number_generation": false, "tags": [ { "tag_id": 462000000009070, "tag_option_id": 462000000002670 } ], "is_portal_enabled": true, "currency_id": 460000000000097, "payment_terms": 15, "payment_terms_label": "Net 15", "notes": "Payment option : Through check", "billing_address": { "attention": "Mr.John", "address": "4900 Hopyard Rd", "street2": "Suite 310", "state_code": "CA", "city": "Pleasanton", "state": "CA", "zip": 94588, "country": "U.S.A", "fax": "+1-925-924-9600", "phone": "+1-925-921-9201" }, "shipping_address": { "attention": "Mr.John", "address": "4900 Hopyard Rd", "street2": "Suite 310", "state_code": "CA", "city": "Pleasanton", "state": "CA", "zip": 94588, "country": "U.S.A", "fax": "+1-925-924-9600", "phone": "+1-925-921-9201" }, "contact_persons": [ { "salutation": "Mr", "first_name": "Will", "last_name": "Smith", "email": "willsmith@bowmanfurniture.com", "phone": "+1-925-921-9201", "mobile": "+1-4054439562", "designation": "Sales Executive", "department": "Sales and Marketing", "skype": "Zoho", "is_primary_contact": true, "communication_preference": { "is_sms_enabled": false, "is_whatsapp_enabled": false }, "enable_portal": true } ], "default_templates": { "invoice_template_id": 460000000052069, "estimate_template_id": 460000000000179, "creditnote_template_id": 460000000000211, "purchaseorder_template_id": 460000000000213, "salesorder_template_id": 460000000000214, "retainerinvoice_template_id": 460000000000215, "paymentthankyou_template_id": 460000000000216, "retainerinvoice_paymentthankyou_template_id": 460000000000217, "invoice_email_template_id": 460000000052071, "estimate_email_template_id": 460000000052073, "creditnote_email_template_id": 460000000052075, "purchaseorder_email_template_id": 460000000000218, "salesorder_email_template_id": 460000000000219, "retainerinvoice_email_template_id": 460000000000220, "paymentthankyou_email_template_id": 460000000000221, "retainerinvoice_paymentthankyou_email_template_id": 460000000000222, "statement_template_id": 460000000000101, "payment_remittance_email_template_id": 460000000000102, "bill_template_id": 460000000000103 }, "custom_fields": [ { "index": 1, "value": "GBGD078" } ], "opening_balances": [ { "location_id": "460000000038080", "exchange_rate": 1, "opening_balance_amount": 1200 } ], "vat_reg_no": "string", "owner_id": 460000000016051, "tax_reg_no": 12345678912345, "tax_exemption_certificate_number": "KRAEXM0043310521", "country_code": "string", "vat_treatment": "string", "tax_treatment": "string", "tax_regime": "general_legal_person", "legal_name": "ESCUELA KEMPER URGATE", "is_tds_registered": true, "place_of_contact": "TN", "gst_no": "22AAAAA0000A1Z5", "gst_treatment": "business_gst", "tax_authority_name": "string", "avatax_exempt_no": "string", "avatax_use_code": "string", "tax_exemption_id": 11149000000061054, "tax_exemption_code": "string", "tax_authority_id": 11149000000061052, "tax_id": 11149000000061058, "tds_tax_id": "982000000557012", "is_taxable": true, "facebook": "zoho", "twitter": "zoho", "track_1099": true, "tax_id_type": "string", "tax_id_value": "string" }

Response Example

{ "code": 0, "message": "The contact has been created", "contact": { "contact_id": 460000000026049, "contact_name": "Bowman and Co", "company_name": "Bowman and Co", "has_transaction": true, "contact_type": "customer", "customer_sub_type": "business", "credit_limit": 1000, "is_portal_enabled": true, "language_code": "string", "is_taxable": true, "tax_id": 11149000000061058, "tds_tax_id": "982000000557012", "tax_name": "CGST", "tax_percentage": 12, "tax_authority_id": 11149000000061052, "tax_exemption_id": 11149000000061054, "tax_authority_name": "string", "tax_exemption_code": "string", "place_of_contact": "TN", "gst_no": "22AAAAA0000A1Z5", "vat_treatment": "string", "tax_treatment": "string", "tax_exemption_certificate_number": "KRAEXM0043310521", "tax_regime": "general_legal_person", "legal_name": "ESCUELA KEMPER URGATE", "is_tds_registered": true, "gst_treatment": "business_gst", "is_linked_with_zohocrm": false, "website": "www.bowmanfurniture.com", "owner_id": 460000000016051, "primary_contact_id": 460000000026051, "pricebook_id": 460000000000123, "contact_number": "CNT-001234", "ignore_auto_number_generation": false, "payment_terms": 15, "payment_terms_label": "Net 15", "currency_id": 460000000000097, "currency_code": "USD", "currency_symbol": "$", "opening_balances": [ { "location_id": "460000000038080", "exchange_rate": 1, "opening_balance_amount": 1200 } ], "outstanding_receivable_amount": 250, "outstanding_receivable_amount_bcy": 250, "unused_credits_receivable_amount": 1369.66, "unused_credits_receivable_amount_bcy": 1369.66, "status": "active", "payment_reminder_enabled": true, "custom_fields": [ { "index": 1, "value": "GBGD078", "label": "VAT ID" } ], "billing_address": { "attention": "Mr.John", "address": "4900 Hopyard Rd", "street2": "Suite 310", "state_code": "CA", "city": "Pleasanton", "state": "CA", "zip": 94588, "country": "U.S.A", "fax": "+1-925-924-9600", "phone": "+1-925-921-9201" }, "shipping_address": { "attention": "Mr.John", "address": "4900 Hopyard Rd", "street2": "Suite 310", "state_code": "CA", "city": "Pleasanton", "state": "CA", "zip": 94588, "country": "U.S.A", "fax": "+1-925-924-9600", "phone": "+1-925-921-9201" }, "facebook": "zoho", "twitter": "zoho", "contact_persons": [ { "contact_person_id": 460000000026051, "salutation": "Mr", "first_name": "Will", "last_name": "Smith", "email": "willsmith@bowmanfurniture.com", "phone": "+1-925-921-9201", "mobile": "+1-4054439562", "designation": "Sales Executive", "department": "Sales and Marketing", "skype": "Zoho", "is_primary_contact": true, "communication_preference": { "is_sms_enabled": false, "is_whatsapp_enabled": false }, "enable_portal": true } ], "default_templates": { "invoice_template_id": 460000000052069, "estimate_template_id": 460000000000179, "creditnote_template_id": 460000000000211, "purchaseorder_template_id": 460000000000213, "salesorder_template_id": 460000000000214, "retainerinvoice_template_id": 460000000000215, "paymentthankyou_template_id": 460000000000216, "retainerinvoice_paymentthankyou_template_id": 460000000000217, "invoice_email_template_id": 460000000052071, "estimate_email_template_id": 460000000052073, "creditnote_email_template_id": 460000000052075, "purchaseorder_email_template_id": 460000000000218, "salesorder_email_template_id": 460000000000219, "retainerinvoice_email_template_id": 460000000000220, "paymentthankyou_email_template_id": 460000000000221, "retainerinvoice_paymentthankyou_email_template_id": 460000000000222, "statement_template_id": 460000000000101, "payment_remittance_email_template_id": 460000000000102, "bill_template_id": 460000000000103 }, "notes": "Payment option : Through check", "created_time": "2013-08-05T12:06:10+0530", "last_modified_time": "2013-10-07T18:24:51+0530" } }

Update a contact using a custom field's unique value

A custom field will have unique values if it's configured to not accept duplicate values. Now, you can use that custom field's value to update a contact by providing its API name in the X-Unique-Identifier-Key header and its value in the X-Unique-Identifier-Value header. Based on this value, the corresponding contact will be retrieved and updated. Additionally, there is an optional X-Upsert header. If the X-Upsert header is true and the custom field's unique value is not found in any of the existing contacts, a new contact will be created if the necessary payload details are available
OAuth Scope : ZohoBooks.contacts.UPDATE

Arguments

contact_name
string
(Required)
Display name for the contact. It is used for searching and displaying contacts.
company_name
string
Legal or registered contact's company name. Used for legal documents and formal communications. Max-length [200].
payment_terms
integer
Number of days allowed for payment after the invoice date.
payment_terms_label
string
Human-readable label of payment terms displayed on invoices and other transactions. Max-length [200].
contact_type
string
Determines how the contact is treated in the system. Allowed values: customer, vendor.
customer_sub_type
string
For Customer Only : Additional classification for customers. Allowed values: individual, business.
currency_id
string
Unique identifier for the currency assigned to this contact. The currency_id must correspond to a valid currency configuration in the system.
opening_balances
array
Show Sub-Attributes arrow
location_id
string
Unique identifier for the business location associated with this opening balance.
exchange_rate
double
Currency exchange rate used to convert opening balance to organization's base currency.
opening_balance_amount
double
Initial balance amount for the contact at the time of creation.
credit_limit
double
For Customer Only : The maximum credit amount that can be allowed for the customer. Once the customer's outstanding receivables reach this limit, the system will restrict the customer from creating any further transactions.
pricebook_id
string
Pricebook id which is associated with the contact. Max-length [200].
contact_number
string
Contact number associated with the contact for internal tracking and identification purposes. Max-length [200].
ignore_auto_number_generation
boolean
Indicates whether the auto generation contact_number is ignored or not for the contact. Allowed values: true, false.
tags
array
Filter all your reports based on the tag
Show Sub-Attributes arrow
tag_id
string
ID of the reporting tag
tag_option_id
string
ID of the reporting tag's option
website
string
Official website URL of the contact.
owner_id
string
For Customer Only : Unique identifier for the user assigned as the owner of the contact. This field specifies which user in the organization is responsible for managing the business relationship with this contact.
custom_fields
array
Show Sub-Attributes arrow
index
integer
Index of the custom field. It can hold any value from 1 to 10.
value
string
Value of the custom field.
label
string
Label of the custom field.
billing_address
object
Billing address information for the contact.
Show Sub-Attributes arrow
attention
string
Attention for proper delivery and routing of business correspondence. Max-length [100].
address
string
Street 1 address for the contact. Max-length [500].
street2
string
Street 2 address for the contact. Max-length [255].
state_code
string
State or province code for the address. Max-length [100].
city
string
City name for the address. Max-length [100].
state
string
State for the address. Max-length [100].
zip
string
Postal or ZIP code for the address. Max-length [50].
country
string
Country name for the address. Max-length [100].
fax
string
Fax number for the address. Max-length [50].
phone
string
The contact phone number associated with the address. Max-length [50]
shipping_address
object
Shipping address information for the contact.
Show Sub-Attributes arrow
attention
string
Attention for proper delivery and routing of business correspondence. Max-length [100].
address
string
Street 1 address for the contact. Max-length [500].
street2
string
Street 2 address for the contact. Max-length [255].
state_code
string
State or province code for the address. Max-length [100].
city
string
City name for the address. Max-length [100].
state
string
State for the address. Max-length [100].
zip
string
Postal or ZIP code for the address. Max-length [50].
country
string
Country name for the address. Max-length [100].
fax
string
Fax number for the address. Max-length [50].
phone
string
The contact phone number associated with the address. Max-length [50]
contact_persons
array
Show Sub-Attributes arrow
contact_person_id
string
ID of the contact person. For an existing contact person, pass the contact_person_id.
salutation
string
Salutation for the contact. Max-length [25]
first_name
string
First name of the contact person. Max-length [100].
last_name
string
Last name of the contact person. Max-length [100].
email
string
Email address of the contact person for business communications. Max-length [100].
phone
string
Phone number of the contact person. Max-length [50].
mobile
string
Mobile number of the contact person. Max-length [50].
designation
string
Designation of the contact person within the contact's company. Max-length [100].
department
string
Department of the contact person within the contact's company. Max-length [50].
skype
string
Skype username of the contact person. Max-length [50].
is_primary_contact
boolean
Indicates whether this contact person is the primary contact. Only one per contact. Allowed values: true and false.
enable_portal
boolean
Indicates whether the contact person should have access to the client portal. Allowed values: true and false.
communication_preference
object
Preferred modes of communication for the contact person.
Show Sub-Attributes arrow
is_sms_enabled
boolean
SMS integration only
Whether SMS text messages are allowed for the contact person.
is_whatsapp_enabled
boolean
WhatsApp integration only
Whether WhatsApp messaging is allowed for the contact person.
default_templates
object
Show Sub-Attributes arrow
invoice_template_id
string
Default invoice template id used for this customer while creating invoice.
estimate_template_id
string
Default estimate template id used for this customer while creating estimate.
creditnote_template_id
string
Default credit note template id used for this customer while creating credit note.
purchaseorder_template_id
string
Default purchase order template id used for this vendor while creating purchase order.
salesorder_template_id
string
Default sales order template id used for this customer while creating sales order.
retainerinvoice_template_id
string
Default retainer invoice template id used for this customer while creating retainer invoice.
paymentthankyou_template_id
string
Default payment thank you template id used for this contact while sending payment acknowledgment.
retainerinvoice_paymentthankyou_template_id
string
Default retainer invoice payment thank you template id used for this customer while sending payment acknowledgment for retainer invoices.
invoice_email_template_id
string
Default invoice email template id used for this customer while sending invoices.
estimate_email_template_id
string
Default estimate email template id used for this customer while sending estimates.
creditnote_email_template_id
string
Default credit note email template id used for this customer while sending credit notes.
purchaseorder_email_template_id
string
Default purchase order email template id used for this vendor while sending purchase order.
salesorder_email_template_id
string
Default sales order email template id used for this customer while sending sales order.
retainerinvoice_email_template_id
string
Default retainer invoice email template id used for this contact while sending retainer invoice.
paymentthankyou_email_template_id
string
Default payment thank you email template id used for this contact while sending payment acknowledgment.
retainerinvoice_paymentthankyou_email_template_id
string
Default retainer invoice payment thank you email template id used for this customer while sending payment acknowledgment for retainer invoices.
statement_template_id
string
Default statement template id used for this contact while creating statement.
payment_remittance_email_template_id
string
Default payment remittance email template id used for this contact while sending payment remittances.
bill_template_id
string
Default bill template id used for this vendor while creating bill.
notes
string
Additional comments or notes about the contact.
vat_reg_no
string
🇬🇧 United Kingdom
, Avalara Integration only
For UK Edition: VAT Registration number of a contact with length should be between 2 and 12 characters.
For Avalara: If you are doing sales in the European Union (EU) then provide VAT Registration Number of your customers here. This is used to calculate VAT for B2B sales, from Avalara.
tax_reg_no
string
GCC , 🇲🇽 Mexico
, 🇰🇪 Kenya
, 🇿🇦 South Africa
only
For GCC Edition: 15 digit Tax Registration number of a contact with Tax treatment as vat_registered,gcc_vat_registered,dz_vat_registered.
For Mexico Edition: 12 digit Tax Registration number of a contact with Tax treatment as
home_country_mexico, border_region_mexico, non_mexico.
Consumers generic RFC: XAXX010101000, Overseas generic RFC: XEXX010101000.
For Kenya Edition: 11 digit Tax Registration number of a contact with Tax treatment as vat_registered
For SouthAfrica Edition: 10 digit Tax Registration number of a contact with Tax treatment as vat_registered
country_code
string
🇬🇧 United Kingdom
, GCC , Avalara Integration only
For UK Edition: Two letter country code of a contact
For Avalara: Two letter country code for the customer country, if your customer is not in US. Refer [AvaTax Codes for Countries and States][2].
For GCC Editions : Two Letter country code for the GCC Country or the UAE emirate of the contact which will be considered as place of supply.
Supported codes for UAE emirates are :
Abu Dhabi - AB,
Ajman - AJ,
Dubai - DU,
Fujairah - FU,
Ras al-Khaimah - RA,
Sharjah - SH,
Umm al-Quwain - UM.
Supported codes for the GCC countries are :
United Arab Emirates - AE,
Saudi Arabia - SA,
Bahrain - BH,
Kuwait - KW,
Oman - OM,
Qatar - QA.
tax_treatment
string
GCC , 🇲🇽 Mexico
, 🇰🇪 Kenya
, 🇿🇦 South Africa
only
Tax treatment of the contact.
Allowed Values: vat_registered,vat_not_registered,gcc_vat_not_registered,gcc_vat_registered,non_gcc,dz_vat_registered and dz_vat_not_registered
home_country_mexico (A business that is located within MX)
border_region_mexico (A business that is located in the northern and southern border regions in MX)
non_mexico (A business that is located outside MX).
For Kenya Edition: vat_registered ,vat_not_registered ,non_kenya(A business that is located outside Kenya).
For SouthAfrica Edition: vat_registered, vat_not_registered, overseas(A business that is located outside SouthAfrica).
tax_exemption_certificate_number
string
🇰🇪 Kenya
only
Tax Exemption Certificate number is issued by the Kenya Revenue Authority (KRA) to organizations or individuals who qualify for tax exemption
tax_regime
string
🇲🇽 Mexico
only
Tax Regime of the contact.Allowed Values: general_legal_person, legal_entities_non_profit, resident_abroad, production_cooperative_societies, agricultural_livestock, optional_group_of_companies, coordinated, simplified_trust, wages_salaries_income, lease, property_disposal_acquisition, other_income, resident_abroad, divident_income, individual_business_professional, interest_income, income_obtaining_price, no_tax_obligation, tax_incorporation, income_through_technology_platform, simplified_trust.
is_tds_registered
boolean
🇲🇽 Mexico
only
Indicates whether the contact is registered for Tax Deducted at Source (TDS) in Mexico.
vat_treatment
string
🇬🇧 United Kingdom
only
VAT treatment of the contact.Allowed Values:
uk (A business that is located in the UK.),
eu_vat_registered (A business that is reg for VAT and trade goods between Northern Ireland and EU. This node is available only for organizations enabled for NI protocal in VAT Settings.) and
overseas (A business that is located outside UK. Pre Brexit, this was split as eu_vat_registered, eu_vat_not_registered and non_eu ).
place_of_contact
string
🇮🇳 India
only
State or union territory code where the contact is located for Indian tax purposes. (This node identifies the place of supply and source of supply when invoices/bills are raised for the customer/vendor respectively. This is not applicable for Overseas contacts)
gst_no
string
🇮🇳 India
only
15-digit GST identification number of the contact as issued by the Indian tax authorities.
gst_treatment
string
🇮🇳 India
only
Choose whether the contact is GST registered/unregistered/consumer/overseas. Allowed values are business_gst , business_none , overseas , consumer .
tax_authority_name
string
Display name of the tax authority responsible for the customer's tax jurisdiction.
avatax_exempt_no
string
Avalara Integration only
Exemption certificate number of the customer.
avatax_use_code
string
Avalara Integration only
Used to group like customers for exemption purposes. It is a custom value that links customers to a tax rule. Select from Avalara [standard codes][1] or enter a custom code.
tax_exemption_id
string
🇺🇸 United States
, 🇨🇦 Canada
, 🇦🇺 Australia
, 🇮🇳 India
only
Unique identifier for the tax exemption configuration assigned to this contact.
tax_exemption_code
string
🇺🇸 United States
, 🇨🇦 Canada
, 🇦🇺 Australia
, 🇮🇳 India
only
Code identifier for the tax exemption assigned to the contact.
tax_authority_id
string
🇺🇸 United States
only
Unique identifier for the tax authority responsible for the customer's tax jurisdiction. Tax authority depends on the location of the customer. For example, if the customer is located in NY, then the tax authority is NY tax authority.
tax_id
string
🇮🇳 India
, 🇺🇸 United States
only
Unique identifier for the tax or tax group assigned to the contact. Available only when is_taxable is true.
is_taxable
boolean
🇺🇸 United States
, 🇨🇦 Canada
, 🇦🇺 Australia
, 🇮🇳 India
, 🇲🇽 Mexico
, 🇰🇪 Kenya
, 🇿🇦 South Africa
only
Indicates whether the customer is subject to tax collection. Tax-related fields are only available when this field is set to true. Allowed values: true and false.
facebook
string
Facebook profile URL for the contact. Max-length [100].
twitter
string
X profile URL for the contact. Max-length [100].
track_1099
boolean
🇺🇸 United States
only
Boolean to track a contact for 1099 reporting.
tax_id_type
string
🇺🇸 United States
only
Tax ID type of the contact, it can be SSN, ATIN, ITIN or EIN.
tax_id_value
string
🇺🇸 United States
only
Tax ID of the contact.

Query Parameters

organization_id
string
(Required)
ID of the organization

Headers

X-Unique-Identifier-Key
string
(Required)
Unique CustomField Api Name
X-Unique-Identifier-Value
string
(Required)
Unique CustomField Value
X-Upsert
boolean
If there is no record is found unique custom field value , will create new invoice

Request Example

Click to copy
parameters_data='{"field1":"value1","field2":"value2"}'; headers_data = Map(); headers_data.put("X-Unique-Identifier-Key", "cf_unique_cf"); headers_data.put("X-Unique-Identifier-Value", "unique Value"); headers_data.put("X-Upsert", "true"); headers_data.put("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f"); response = invokeUrl [ url: "https://www.zohoapis.com/books/v3/contacts?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/contacts?organization_id=10234695") .put(body) .addHeader("X-Unique-Identifier-Key", "cf_unique_cf") .addHeader("X-Unique-Identifier-Value", "unique Value") .addHeader("X-Upsert", "true") .addHeader("Authorization", "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f") .addHeader("content-type", "application/json") .build(); Response response = client.newCall(request).execute();
const options = { method: 'PUT', headers: { 'X-Unique-Identifier-Key': 'cf_unique_cf', 'X-Unique-Identifier-Value': 'unique Value', 'X-Upsert': 'true', Authorization: 'Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f', 'content-type': 'application/json' }, body: '{"field1":"value1","field2":"value2"}' }; fetch('https://www.zohoapis.com/books/v3/contacts?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 = { 'X-Unique-Identifier-Key': "cf_unique_cf", 'X-Unique-Identifier-Value': "unique Value", 'X-Upsert': "true", 'Authorization': "Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f", 'content-type': "application/json" } conn.request("PUT", "/books/v3/contacts?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/contacts?organization_id=10234695", "headers": { "X-Unique-Identifier-Key": "cf_unique_cf", "X-Unique-Identifier-Value": "unique Value", "X-Upsert": "true", "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/contacts?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f' \ --header 'X-Unique-Identifier-Key: cf_unique_cf' \ --header 'X-Unique-Identifier-Value: unique Value' \ --header 'X-Upsert: true' \ --header 'content-type: application/json' \ --data '{"field1":"value1","field2":"value2"}'

Body Parameters

Click to copy
{ "contact_name": "Bowman and Co", "company_name": "Bowman and Co", "payment_terms": 15, "payment_terms_label": "Net 15", "contact_type": "customer", "customer_sub_type": "business", "currency_id": 460000000000097, "opening_balances": [ { "location_id": "460000000038080", "exchange_rate": 1, "opening_balance_amount": 1200 } ], "credit_limit": 1000, "pricebook_id": 460000000000123, "contact_number": "CNT-001234", "ignore_auto_number_generation": false, "tags": [ { "tag_id": 462000000009070, "tag_option_id": 462000000002670 } ], "website": "www.bowmanfurniture.com", "owner_id": 460000000016051, "custom_fields": [ { "index": 1, "value": "GBGD078", "label": "VAT ID" } ], "billing_address": { "attention": "Mr.John", "address": "4900 Hopyard Rd", "street2": "Suite 310", "state_code": "CA", "city": "Pleasanton", "state": "CA", "zip": 94588, "country": "U.S.A", "fax": "+1-925-924-9600", "phone": "+1-925-921-9201" }, "shipping_address": { "attention": "Mr.John", "address": "4900 Hopyard Rd", "street2": "Suite 310", "state_code": "CA", "city": "Pleasanton", "state": "CA", "zip": 94588, "country": "U.S.A", "fax": "+1-925-924-9600", "phone": "+1-925-921-9201" }, "contact_persons": [ { "contact_person_id": 460000000026051, "salutation": "Mr", "first_name": "Will", "last_name": "Smith", "email": "willsmith@bowmanfurniture.com", "phone": "+1-925-921-9201", "mobile": "+1-4054439562", "designation": "Sales Executive", "department": "Sales and Marketing", "skype": "Zoho", "is_primary_contact": true, "enable_portal": true, "communication_preference": { "is_sms_enabled": false, "is_whatsapp_enabled": false } } ], "default_templates": { "invoice_template_id": 460000000052069, "estimate_template_id": 460000000000179, "creditnote_template_id": 460000000000211, "purchaseorder_template_id": 460000000000213, "salesorder_template_id": 460000000000214, "retainerinvoice_template_id": 460000000000215, "paymentthankyou_template_id": 460000000000216, "retainerinvoice_paymentthankyou_template_id": 460000000000217, "invoice_email_template_id": 460000000052071, "estimate_email_template_id": 460000000052073, "creditnote_email_template_id": 460000000052075, "purchaseorder_email_template_id": 460000000000218, "salesorder_email_template_id": 460000000000219, "retainerinvoice_email_template_id": 460000000000220, "paymentthankyou_email_template_id": 460000000000221, "retainerinvoice_paymentthankyou_email_template_id": 460000000000222, "statement_template_id": 460000000000101, "payment_remittance_email_template_id": 460000000000102, "bill_template_id": 460000000000103 }, "notes": "Payment option : Through check", "vat_reg_no": "string", "tax_reg_no": 12345678912345, "country_code": "string", "tax_treatment": "string", "tax_exemption_certificate_number": "KRAEXM0043310521", "tax_regime": "general_legal_person", "legal_name": "ESCUELA KEMPER URGATE", "is_tds_registered": true, "vat_treatment": "string", "place_of_contact": "TN", "gst_no": "22AAAAA0000A1Z5", "gst_treatment": "business_gst", "tax_authority_name": "string", "avatax_exempt_no": "string", "avatax_use_code": "string", "tax_exemption_id": 11149000000061054, "tax_exemption_code": "string", "tax_authority_id": 11149000000061052, "tax_id": 11149000000061058, "is_taxable": true, "facebook": "zoho", "twitter": "zoho", "track_1099": true, "tax_id_type": "string", "tax_id_value": "string" }

Response Example

{ "code": 0, "message": "Contact has been updated successfully", "contact": { "contact_id": 460000000026049, "contact_name": "Bowman and Co", "company_name": "Bowman and Co", "has_transaction": true, "contact_type": "customer", "customer_sub_type": "business", "credit_limit": 1000, "pricebook_id": 460000000000123, "contact_number": "CNT-001234", "ignore_auto_number_generation": false, "is_taxable": true, "tax_id": 11149000000061058, "tax_name": "CGST", "tax_percentage": 12, "tax_authority_id": 11149000000061052, "tax_exemption_id": 11149000000061054, "tax_authority_name": "string", "tax_exemption_code": "string", "place_of_contact": "TN", "gst_no": "22AAAAA0000A1Z5", "tax_treatment": "string", "tax_regime": "general_legal_person", "legal_name": "ESCUELA KEMPER URGATE", "is_tds_registered": true, "vat_treatment": "string", "gst_treatment": "business_gst", "is_linked_with_zohocrm": false, "website": "www.bowmanfurniture.com", "owner_id": 460000000016051, "primary_contact_id": 460000000026051, "payment_terms": 15, "payment_terms_label": "Net 15", "currency_id": 460000000000097, "currency_code": "USD", "currency_symbol": "$", "opening_balances": [ { "location_id": "460000000038080", "exchange_rate": 1, "opening_balance_amount": 1200 } ], "outstanding_receivable_amount": 250, "outstanding_receivable_amount_bcy": 250, "unused_credits_receivable_amount": 1369.66, "unused_credits_receivable_amount_bcy": 1369.66, "status": "active", "payment_reminder_enabled": true, "custom_fields": [ { "index": 1, "value": "GBGD078", "label": "VAT ID" } ], "billing_address": { "attention": "Mr.John", "address": "4900 Hopyard Rd", "street2": "Suite 310", "state_code": "CA", "city": "Pleasanton", "state": "CA", "zip": 94588, "country": "U.S.A", "fax": "+1-925-924-9600", "phone": "+1-925-921-9201" }, "shipping_address": { "attention": "Mr.John", "address": "4900 Hopyard Rd", "street2": "Suite 310", "state_code": "CA", "city": "Pleasanton", "state": "CA", "zip": 94588, "country": "U.S.A", "fax": "+1-925-924-9600", "phone": "+1-925-921-9201" }, "facebook": "zoho", "twitter": "zoho", "contact_persons": [ { "contact_person_id": 460000000026051, "salutation": "Mr", "first_name": "Will", "last_name": "Smith", "email": "willsmith@bowmanfurniture.com", "phone": "+1-925-921-9201", "mobile": "+1-4054439562", "designation": "Sales Executive", "department": "Sales and Marketing", "skype": "Zoho", "is_primary_contact": true, "enable_portal": true, "communication_preference": { "is_sms_enabled": false, "is_whatsapp_enabled": false } } ], "default_templates": { "invoice_template_id": 460000000052069, "estimate_template_id": 460000000000179, "creditnote_template_id": 460000000000211, "purchaseorder_template_id": 460000000000213, "salesorder_template_id": 460000000000214, "retainerinvoice_template_id": 460000000000215, "paymentthankyou_template_id": 460000000000216, "retainerinvoice_paymentthankyou_template_id": 460000000000217, "invoice_email_template_id": 460000000052071, "estimate_email_template_id": 460000000052073, "creditnote_email_template_id": 460000000052075, "purchaseorder_email_template_id": 460000000000218, "salesorder_email_template_id": 460000000000219, "retainerinvoice_email_template_id": 460000000000220, "paymentthankyou_email_template_id": 460000000000221, "retainerinvoice_paymentthankyou_email_template_id": 460000000000222, "statement_template_id": 460000000000101, "payment_remittance_email_template_id": 460000000000102, "bill_template_id": 460000000000103 }, "notes": "Payment option : Through check", "created_time": "2013-08-05T12:06:10+0530", "last_modified_time": "2013-10-07T18:24:51+0530" } }

List Contacts

Retrieve a comprehensive list of all contacts with advanced filters. This operation supports multiple search criteria including contact name, company name, address, email, phone, and general text search. You can filter contacts by status (active, inactive, duplicate, CRM) and sort by various fields. The response includes essential contact information, financial data including outstanding amounts and credit limits, and pagination details for efficient data retrieval.
OAuth Scope : ZohoBooks.contacts.READ

Query Parameters

organization_id
string
(Required)
ID of the organization
contact_type
string
Search contacts by contact type. Allowed Values: customer, vendor.
contact_name
string
Search contacts by contact name. Max-length [100] Variants: contact_name_startswith and contact_name_contains. Max-length [100]
company_name
string
Search contacts by company name. Max-length [100] Variants: company_name_startswith and company_name_contains
first_name
string
Search contacts by first name of the primary contact person. Max-length [100] Variants: first_name_startswith and first_name_contains
last_name
string
Search contacts by last name of the primary contact person. Max-length [100] Variants: last_name_startswith and last_name_contains
address
string
Search contacts by any of the address fields. Max-length [100] Variants: address_startswith and address_contains
email
string
Search contacts by email of the primary contact person. Max-length [100] Variants: email_startswith and email_contains
phone
string
Search contacts by phone number of the primary contact person. Max-length [100] Variants: phone_startswith and phone_contains
filter_by
string
Filter contacts by status. Allowed Values: Status.All, Status.Active, Status.Inactive, Status.Duplicate, Status.PortalEnabled, Status.PortalDisabled, Invoice.OverDue, Invoice.Unpaid, Status.CreditLimitExceed and Status.Crm
search_text
string
Search contacts by contact name or notes. Max-length [100]
sort_column
string
Sort contacts. Allowed Values: contact_name, first_name, last_name, email, outstanding_receivable_amount, created_time and last_modified_time
zcrm_contact_id
string
CRM Contact ID for the contact.
zcrm_account_id
string
CRM Account ID for the contact.
zcrm_vendor_id
string
CRM Vendor ID for the contact.
page
integer
Page number to be fetched. Default value is 1.
per_page
integer
Number of records to be fetched per page. Default value is 200.

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/contacts?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/contacts?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/contacts?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/contacts?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/contacts?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/contacts?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "contacts": [ { "contact_id": 460000000026049, "contact_name": "Bowman and Co", "company_name": "Bowman and Co", "contact_type": "customer", "status": "active", "payment_terms": 15, "payment_terms_label": "Net 15", "currency_id": 460000000000097, "currency_code": "USD", "outstanding_receivable_amount": 250, "unused_credits_receivable_amount": 1369.66, "first_name": "Will", "last_name": "Smith", "email": "willsmith@bowmanfurniture.com", "phone": "+1-925-921-9201", "mobile": "+1-4054439562", "created_time": "2013-08-05T12:06:10+0530", "last_modified_time": "2013-10-07T18:24:51+0530" }, {...}, {...} ], "page_context": { "page": 1, "per_page": 200, "has_more_page": false, "applied_filter": "Status.All", "sort_column": "contact_name", "sort_order": "D" } }

Update a Contact

Update an existing contact with comprehensive business information. This operation allows you to modify all contact details including basic information, addresses, contact persons, payment terms, tax settings, and custom fields. For contact person, you can add new contact persons, update existing ones, or remove them by excluding them from the contact_persons list.
OAuth Scope : ZohoBooks.contacts.UPDATE

Arguments

contact_name
string
(Required)
Display name for the contact. It is used for searching and displaying contacts.
company_name
string
Legal or registered contact's company name. Used for legal documents and formal communications. Max-length [200].
payment_terms
integer
Number of days allowed for payment after the invoice date.
payment_terms_label
string
Human-readable label of payment terms displayed on invoices and other transactions. Max-length [200].
contact_type
string
Determines how the contact is treated in the system. Allowed values: customer, vendor.
customer_sub_type
string
For Customer Only : Additional classification for customers. Allowed values: individual, business.
currency_id
string
Unique identifier for the currency assigned to this contact. The currency_id must correspond to a valid currency configuration in the system.
opening_balances
array
Show Sub-Attributes arrow
location_id
string
Unique identifier for the business location associated with this opening balance.
exchange_rate
double
Currency exchange rate used to convert opening balance to organization's base currency.
opening_balance_amount
double
Initial balance amount for the contact at the time of creation.
credit_limit
double
For Customer Only : The maximum credit amount that can be allowed for the customer. Once the customer's outstanding receivables reach this limit, the system will restrict the customer from creating any further transactions.
pricebook_id
string
Pricebook id which is associated with the contact. Max-length [200].
contact_number
string
Contact number associated with the contact for internal tracking and identification purposes. Max-length [200].
ignore_auto_number_generation
boolean
Indicates whether the auto generation contact_number is ignored or not for the contact. Allowed values: true, false.
tags
array
Filter all your reports based on the tag
Show Sub-Attributes arrow
tag_id
string
ID of the reporting tag
tag_option_id
string
ID of the reporting tag's option
website
string
Official website URL of the contact.
owner_id
string
For Customer Only : Unique identifier for the user assigned as the owner of the contact. This field specifies which user in the organization is responsible for managing the business relationship with this contact.
custom_fields
array
Show Sub-Attributes arrow
index
integer
Index of the custom field. It can hold any value from 1 to 10.
value
string
Value of the custom field.
label
string
Label of the custom field.
billing_address
object
Billing address information for the contact.
Show Sub-Attributes arrow
attention
string
Attention for proper delivery and routing of business correspondence. Max-length [100].
address
string
Street 1 address for the contact. Max-length [500].
street2
string
Street 2 address for the contact. Max-length [255].
state_code
string
State or province code for the address. Max-length [100].
city
string
City name for the address. Max-length [100].
state
string
State for the address. Max-length [100].
zip
string
Postal or ZIP code for the address. Max-length [50].
country
string
Country name for the address. Max-length [100].
fax
string
Fax number for the address. Max-length [50].
phone
string
The contact phone number associated with the address. Max-length [50]
shipping_address
object
Shipping address information for the contact.
Show Sub-Attributes arrow
attention
string
Attention for proper delivery and routing of business correspondence. Max-length [100].
address
string
Street 1 address for the contact. Max-length [500].
street2
string
Street 2 address for the contact. Max-length [255].
state_code
string
State or province code for the address. Max-length [100].
city
string
City name for the address. Max-length [100].
state
string
State for the address. Max-length [100].
zip
string
Postal or ZIP code for the address. Max-length [50].
country
string
Country name for the address. Max-length [100].
fax
string
Fax number for the address. Max-length [50].
phone
string
The contact phone number associated with the address. Max-length [50]
contact_persons
array
Show Sub-Attributes arrow
contact_person_id
string
ID of the contact person. For an existing contact person, pass the contact_person_id.
salutation
string
Salutation for the contact. Max-length [25]
first_name
string
First name of the contact person. Max-length [100].
last_name
string
Last name of the contact person. Max-length [100].
email
string
Email address of the contact person for business communications. Max-length [100].
phone
string
Phone number of the contact person. Max-length [50].
mobile
string
Mobile number of the contact person. Max-length [50].
designation
string
Designation of the contact person within the contact's company. Max-length [100].
department
string
Department of the contact person within the contact's company. Max-length [50].
skype
string
Skype username of the contact person. Max-length [50].
is_primary_contact
boolean
Indicates whether this contact person is the primary contact. Only one per contact. Allowed values: true and false.
enable_portal
boolean
Indicates whether the contact person should have access to the client portal. Allowed values: true and false.
communication_preference
object
Preferred modes of communication for the contact person.
Show Sub-Attributes arrow
is_sms_enabled
boolean
SMS integration only
Whether SMS text messages are allowed for the contact person.
is_whatsapp_enabled
boolean
WhatsApp integration only
Whether WhatsApp messaging is allowed for the contact person.
default_templates
object
Show Sub-Attributes arrow
invoice_template_id
string
Default invoice template id used for this customer while creating invoice.
estimate_template_id
string
Default estimate template id used for this customer while creating estimate.
creditnote_template_id
string
Default credit note template id used for this customer while creating credit note.
purchaseorder_template_id
string
Default purchase order template id used for this vendor while creating purchase order.
salesorder_template_id
string
Default sales order template id used for this customer while creating sales order.
retainerinvoice_template_id
string
Default retainer invoice template id used for this customer while creating retainer invoice.
paymentthankyou_template_id
string
Default payment thank you template id used for this contact while sending payment acknowledgment.
retainerinvoice_paymentthankyou_template_id
string
Default retainer invoice payment thank you template id used for this customer while sending payment acknowledgment for retainer invoices.
invoice_email_template_id
string
Default invoice email template id used for this customer while sending invoices.
estimate_email_template_id
string
Default estimate email template id used for this customer while sending estimates.
creditnote_email_template_id
string
Default credit note email template id used for this customer while sending credit notes.
purchaseorder_email_template_id
string
Default purchase order email template id used for this vendor while sending purchase order.
salesorder_email_template_id
string
Default sales order email template id used for this customer while sending sales order.
retainerinvoice_email_template_id
string
Default retainer invoice email template id used for this contact while sending retainer invoice.
paymentthankyou_email_template_id
string
Default payment thank you email template id used for this contact while sending payment acknowledgment.
retainerinvoice_paymentthankyou_email_template_id
string
Default retainer invoice payment thank you email template id used for this customer while sending payment acknowledgment for retainer invoices.
statement_template_id
string
Default statement template id used for this contact while creating statement.
payment_remittance_email_template_id
string
Default payment remittance email template id used for this contact while sending payment remittances.
bill_template_id
string
Default bill template id used for this vendor while creating bill.
notes
string
Additional comments or notes about the contact.
vat_reg_no
string
🇬🇧 United Kingdom
, Avalara Integration only
For UK Edition: VAT Registration number of a contact with length should be between 2 and 12 characters.
For Avalara: If you are doing sales in the European Union (EU) then provide VAT Registration Number of your customers here. This is used to calculate VAT for B2B sales, from Avalara.
tax_reg_no
string
GCC , 🇲🇽 Mexico
, 🇰🇪 Kenya
, 🇿🇦 South Africa
only
For GCC Edition: 15 digit Tax Registration number of a contact with Tax treatment as vat_registered,gcc_vat_registered,dz_vat_registered.
For Mexico Edition: 12 digit Tax Registration number of a contact with Tax treatment as
home_country_mexico, border_region_mexico, non_mexico.
Consumers generic RFC: XAXX010101000, Overseas generic RFC: XEXX010101000.
For Kenya Edition: 11 digit Tax Registration number of a contact with Tax treatment as vat_registered
For SouthAfrica Edition: 10 digit Tax Registration number of a contact with Tax treatment as vat_registered
country_code
string
🇬🇧 United Kingdom
, GCC , Avalara Integration only
For UK Edition: Two letter country code of a contact
For Avalara: Two letter country code for the customer country, if your customer is not in US. Refer [AvaTax Codes for Countries and States][2].
For GCC Editions : Two Letter country code for the GCC Country or the UAE emirate of the contact which will be considered as place of supply.
Supported codes for UAE emirates are :
Abu Dhabi - AB,
Ajman - AJ,
Dubai - DU,
Fujairah - FU,
Ras al-Khaimah - RA,
Sharjah - SH,
Umm al-Quwain - UM.
Supported codes for the GCC countries are :
United Arab Emirates - AE,
Saudi Arabia - SA,
Bahrain - BH,
Kuwait - KW,
Oman - OM,
Qatar - QA.
tax_treatment
string
GCC , 🇲🇽 Mexico
, 🇰🇪 Kenya
, 🇿🇦 South Africa
only
Tax treatment of the contact.
Allowed Values: vat_registered,vat_not_registered,gcc_vat_not_registered,gcc_vat_registered,non_gcc,dz_vat_registered and dz_vat_not_registered
home_country_mexico (A business that is located within MX)
border_region_mexico (A business that is located in the northern and southern border regions in MX)
non_mexico (A business that is located outside MX).
For Kenya Edition: vat_registered ,vat_not_registered ,non_kenya(A business that is located outside Kenya).
For SouthAfrica Edition: vat_registered, vat_not_registered, overseas(A business that is located outside SouthAfrica).
tax_exemption_certificate_number
string
🇰🇪 Kenya
only
Tax Exemption Certificate number is issued by the Kenya Revenue Authority (KRA) to organizations or individuals who qualify for tax exemption
tax_regime
string
🇲🇽 Mexico
only
Tax Regime of the contact.Allowed Values: general_legal_person, legal_entities_non_profit, resident_abroad, production_cooperative_societies, agricultural_livestock, optional_group_of_companies, coordinated, simplified_trust, wages_salaries_income, lease, property_disposal_acquisition, other_income, resident_abroad, divident_income, individual_business_professional, interest_income, income_obtaining_price, no_tax_obligation, tax_incorporation, income_through_technology_platform, simplified_trust.
is_tds_registered
boolean
🇲🇽 Mexico
only
Indicates whether the contact is registered for Tax Deducted at Source (TDS) in Mexico.
vat_treatment
string
🇬🇧 United Kingdom
only
VAT treatment of the contact.Allowed Values:
uk (A business that is located in the UK.),
eu_vat_registered (A business that is reg for VAT and trade goods between Northern Ireland and EU. This node is available only for organizations enabled for NI protocal in VAT Settings.) and
overseas (A business that is located outside UK. Pre Brexit, this was split as eu_vat_registered, eu_vat_not_registered and non_eu ).
place_of_contact
string
🇮🇳 India
only
State or union territory code where the contact is located for Indian tax purposes. (This node identifies the place of supply and source of supply when invoices/bills are raised for the customer/vendor respectively. This is not applicable for Overseas contacts)
gst_no
string
🇮🇳 India
only
15-digit GST identification number of the contact as issued by the Indian tax authorities.
gst_treatment
string
🇮🇳 India
only
Choose whether the contact is GST registered/unregistered/consumer/overseas. Allowed values are business_gst , business_none , overseas , consumer .
tax_authority_name
string
Display name of the tax authority responsible for the customer's tax jurisdiction.
avatax_exempt_no
string
Avalara Integration only
Exemption certificate number of the customer.
avatax_use_code
string
Avalara Integration only
Used to group like customers for exemption purposes. It is a custom value that links customers to a tax rule. Select from Avalara [standard codes][1] or enter a custom code.
tax_exemption_id
string
🇺🇸 United States
, 🇨🇦 Canada
, 🇦🇺 Australia
, 🇮🇳 India
only
Unique identifier for the tax exemption configuration assigned to this contact.
tax_exemption_code
string
🇺🇸 United States
, 🇨🇦 Canada
, 🇦🇺 Australia
, 🇮🇳 India
only
Code identifier for the tax exemption assigned to the contact.
tax_authority_id
string
🇺🇸 United States
only
Unique identifier for the tax authority responsible for the customer's tax jurisdiction. Tax authority depends on the location of the customer. For example, if the customer is located in NY, then the tax authority is NY tax authority.
tax_id
string
🇮🇳 India
, 🇺🇸 United States
only
Unique identifier for the tax or tax group assigned to the contact. Available only when is_taxable is true.
is_taxable
boolean
🇺🇸 United States
, 🇨🇦 Canada
, 🇦🇺 Australia
, 🇮🇳 India
, 🇲🇽 Mexico
, 🇰🇪 Kenya
, 🇿🇦 South Africa
only
Indicates whether the customer is subject to tax collection. Tax-related fields are only available when this field is set to true. Allowed values: true and false.
facebook
string
Facebook profile URL for the contact. Max-length [100].
twitter
string
X profile URL for the contact. Max-length [100].
track_1099
boolean
🇺🇸 United States
only
Boolean to track a contact for 1099 reporting.
tax_id_type
string
🇺🇸 United States
only
Tax ID type of the contact, it can be SSN, ATIN, ITIN or EIN.
tax_id_value
string
🇺🇸 United States
only
Tax ID of the contact.

Path Parameters

contact_id
string
(Required)

Query Parameters

organization_id
string
(Required)
ID of the organization

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/contacts/460000000026049?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/contacts/460000000026049?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/contacts/460000000026049?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/contacts/460000000026049?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/contacts/460000000026049?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/contacts/460000000026049?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
{ "contact_name": "Bowman and Co", "company_name": "Bowman and Co", "payment_terms": 15, "payment_terms_label": "Net 15", "contact_type": "customer", "customer_sub_type": "business", "currency_id": 460000000000097, "opening_balances": [ { "location_id": "460000000038080", "exchange_rate": 1, "opening_balance_amount": 1200 } ], "credit_limit": 1000, "pricebook_id": 460000000000123, "contact_number": "CNT-001234", "ignore_auto_number_generation": false, "tags": [ { "tag_id": 462000000009070, "tag_option_id": 462000000002670 } ], "website": "www.bowmanfurniture.com", "owner_id": 460000000016051, "custom_fields": [ { "index": 1, "value": "GBGD078", "label": "VAT ID" } ], "billing_address": { "attention": "Mr.John", "address": "4900 Hopyard Rd", "street2": "Suite 310", "state_code": "CA", "city": "Pleasanton", "state": "CA", "zip": 94588, "country": "U.S.A", "fax": "+1-925-924-9600", "phone": "+1-925-921-9201" }, "shipping_address": { "attention": "Mr.John", "address": "4900 Hopyard Rd", "street2": "Suite 310", "state_code": "CA", "city": "Pleasanton", "state": "CA", "zip": 94588, "country": "U.S.A", "fax": "+1-925-924-9600", "phone": "+1-925-921-9201" }, "contact_persons": [ { "contact_person_id": 460000000026051, "salutation": "Mr", "first_name": "Will", "last_name": "Smith", "email": "willsmith@bowmanfurniture.com", "phone": "+1-925-921-9201", "mobile": "+1-4054439562", "designation": "Sales Executive", "department": "Sales and Marketing", "skype": "Zoho", "is_primary_contact": true, "enable_portal": true, "communication_preference": { "is_sms_enabled": false, "is_whatsapp_enabled": false } } ], "default_templates": { "invoice_template_id": 460000000052069, "estimate_template_id": 460000000000179, "creditnote_template_id": 460000000000211, "purchaseorder_template_id": 460000000000213, "salesorder_template_id": 460000000000214, "retainerinvoice_template_id": 460000000000215, "paymentthankyou_template_id": 460000000000216, "retainerinvoice_paymentthankyou_template_id": 460000000000217, "invoice_email_template_id": 460000000052071, "estimate_email_template_id": 460000000052073, "creditnote_email_template_id": 460000000052075, "purchaseorder_email_template_id": 460000000000218, "salesorder_email_template_id": 460000000000219, "retainerinvoice_email_template_id": 460000000000220, "paymentthankyou_email_template_id": 460000000000221, "retainerinvoice_paymentthankyou_email_template_id": 460000000000222, "statement_template_id": 460000000000101, "payment_remittance_email_template_id": 460000000000102, "bill_template_id": 460000000000103 }, "notes": "Payment option : Through check", "vat_reg_no": "string", "tax_reg_no": 12345678912345, "country_code": "string", "tax_treatment": "string", "tax_exemption_certificate_number": "KRAEXM0043310521", "tax_regime": "general_legal_person", "legal_name": "ESCUELA KEMPER URGATE", "is_tds_registered": true, "vat_treatment": "string", "place_of_contact": "TN", "gst_no": "22AAAAA0000A1Z5", "gst_treatment": "business_gst", "tax_authority_name": "string", "avatax_exempt_no": "string", "avatax_use_code": "string", "tax_exemption_id": 11149000000061054, "tax_exemption_code": "string", "tax_authority_id": 11149000000061052, "tax_id": 11149000000061058, "is_taxable": true, "facebook": "zoho", "twitter": "zoho", "track_1099": true, "tax_id_type": "string", "tax_id_value": "string" }

Response Example

{ "code": 0, "message": "Contact has been updated successfully", "contact": { "contact_id": 460000000026049, "contact_name": "Bowman and Co", "company_name": "Bowman and Co", "has_transaction": true, "contact_type": "customer", "customer_sub_type": "business", "credit_limit": 1000, "pricebook_id": 460000000000123, "contact_number": "CNT-001234", "ignore_auto_number_generation": false, "is_taxable": true, "tax_id": 11149000000061058, "tax_name": "CGST", "tax_percentage": 12, "tax_authority_id": 11149000000061052, "tax_exemption_id": 11149000000061054, "tax_authority_name": "string", "tax_exemption_code": "string", "place_of_contact": "TN", "gst_no": "22AAAAA0000A1Z5", "tax_treatment": "string", "tax_regime": "general_legal_person", "legal_name": "ESCUELA KEMPER URGATE", "is_tds_registered": true, "vat_treatment": "string", "gst_treatment": "business_gst", "is_linked_with_zohocrm": false, "website": "www.bowmanfurniture.com", "owner_id": 460000000016051, "primary_contact_id": 460000000026051, "payment_terms": 15, "payment_terms_label": "Net 15", "currency_id": 460000000000097, "currency_code": "USD", "currency_symbol": "$", "opening_balances": [ { "location_id": "460000000038080", "exchange_rate": 1, "opening_balance_amount": 1200 } ], "outstanding_receivable_amount": 250, "outstanding_receivable_amount_bcy": 250, "unused_credits_receivable_amount": 1369.66, "unused_credits_receivable_amount_bcy": 1369.66, "status": "active", "payment_reminder_enabled": true, "custom_fields": [ { "index": 1, "value": "GBGD078", "label": "VAT ID" } ], "billing_address": { "attention": "Mr.John", "address": "4900 Hopyard Rd", "street2": "Suite 310", "state_code": "CA", "city": "Pleasanton", "state": "CA", "zip": 94588, "country": "U.S.A", "fax": "+1-925-924-9600", "phone": "+1-925-921-9201" }, "shipping_address": { "attention": "Mr.John", "address": "4900 Hopyard Rd", "street2": "Suite 310", "state_code": "CA", "city": "Pleasanton", "state": "CA", "zip": 94588, "country": "U.S.A", "fax": "+1-925-924-9600", "phone": "+1-925-921-9201" }, "facebook": "zoho", "twitter": "zoho", "contact_persons": [ { "contact_person_id": 460000000026051, "salutation": "Mr", "first_name": "Will", "last_name": "Smith", "email": "willsmith@bowmanfurniture.com", "phone": "+1-925-921-9201", "mobile": "+1-4054439562", "designation": "Sales Executive", "department": "Sales and Marketing", "skype": "Zoho", "is_primary_contact": true, "enable_portal": true, "communication_preference": { "is_sms_enabled": false, "is_whatsapp_enabled": false } } ], "default_templates": { "invoice_template_id": 460000000052069, "estimate_template_id": 460000000000179, "creditnote_template_id": 460000000000211, "purchaseorder_template_id": 460000000000213, "salesorder_template_id": 460000000000214, "retainerinvoice_template_id": 460000000000215, "paymentthankyou_template_id": 460000000000216, "retainerinvoice_paymentthankyou_template_id": 460000000000217, "invoice_email_template_id": 460000000052071, "estimate_email_template_id": 460000000052073, "creditnote_email_template_id": 460000000052075, "purchaseorder_email_template_id": 460000000000218, "salesorder_email_template_id": 460000000000219, "retainerinvoice_email_template_id": 460000000000220, "paymentthankyou_email_template_id": 460000000000221, "retainerinvoice_paymentthankyou_email_template_id": 460000000000222, "statement_template_id": 460000000000101, "payment_remittance_email_template_id": 460000000000102, "bill_template_id": 460000000000103 }, "notes": "Payment option : Through check", "created_time": "2013-08-05T12:06:10+0530", "last_modified_time": "2013-10-07T18:24:51+0530" } }

Get Contact

Retrieve comprehensive details of a specific contact. This operation provides complete contact details such as basic information, addresses, contact persons, payment terms, tax settings, custom fields, and financial data including outstanding amounts, credit limits, and transaction history.
OAuth Scope : ZohoBooks.contacts.READ

Path Parameters

contact_id
string
(Required)

Query Parameters

organization_id
string
(Required)
ID of the organization

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/contacts/460000000026049?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/contacts/460000000026049?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/contacts/460000000026049?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/contacts/460000000026049?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/contacts/460000000026049?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/contacts/460000000026049?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "contact": { "contact_id": 460000000026049, "contact_name": "Bowman and Co", "company_name": "Bowman and Co", "has_transaction": true, "contact_type": "customer", "customer_sub_type": "business", "credit_limit": 1000, "pricebook_id": 460000000000123, "contact_number": "CNT-001234", "ignore_auto_number_generation": false, "is_taxable": true, "tax_id": 11149000000061058, "tax_name": "CGST", "tax_percentage": 12, "tax_authority_id": 11149000000061052, "tax_exemption_id": 11149000000061054, "tax_authority_name": "string", "tax_exemption_code": "string", "place_of_contact": "TN", "gst_no": "22AAAAA0000A1Z5", "tax_treatment": "string", "tax_regime": "general_legal_person", "legal_name": "ESCUELA KEMPER URGATE", "is_tds_registered": true, "vat_treatment": "string", "gst_treatment": "business_gst", "is_linked_with_zohocrm": false, "website": "www.bowmanfurniture.com", "owner_id": 460000000016051, "primary_contact_id": 460000000026051, "payment_terms": 15, "payment_terms_label": "Net 15", "currency_id": 460000000000097, "currency_code": "USD", "currency_symbol": "$", "opening_balances": [ { "location_id": "460000000038080", "exchange_rate": 1, "opening_balance_amount": 1200 } ], "outstanding_receivable_amount": 250, "outstanding_receivable_amount_bcy": 250, "unused_credits_receivable_amount": 1369.66, "unused_credits_receivable_amount_bcy": 1369.66, "status": "active", "facebook": "zoho", "twitter": "zoho", "payment_reminder_enabled": true, "custom_fields": [ { "index": 1, "value": "GBGD078", "label": "VAT ID" } ], "billing_address": { "attention": "Mr.John", "address": "4900 Hopyard Rd", "street2": "Suite 310", "state_code": "CA", "city": "Pleasanton", "state": "CA", "zip": 94588, "country": "U.S.A", "fax": "+1-925-924-9600", "phone": "+1-925-921-9201" }, "shipping_address": { "attention": "Mr.John", "address": "4900 Hopyard Rd", "street2": "Suite 310", "state_code": "CA", "city": "Pleasanton", "state": "CA", "zip": 94588, "country": "U.S.A", "fax": "+1-925-924-9600", "phone": "+1-925-921-9201" }, "contact_persons": [ { "contact_person_id": 460000000026051, "salutation": "Mr", "first_name": "Will", "last_name": "Smith", "email": "willsmith@bowmanfurniture.com", "phone": "+1-925-921-9201", "mobile": "+1-4054439562", "designation": "Sales Executive", "department": "Sales and Marketing", "skype": "Zoho", "is_primary_contact": true, "communication_preference": { "is_sms_enabled": false, "is_whatsapp_enabled": false }, "enable_portal": true } ], "default_templates": { "invoice_template_id": 460000000052069, "estimate_template_id": 460000000000179, "creditnote_template_id": 460000000000211, "purchaseorder_template_id": 460000000000213, "salesorder_template_id": 460000000000214, "retainerinvoice_template_id": 460000000000215, "paymentthankyou_template_id": 460000000000216, "retainerinvoice_paymentthankyou_template_id": 460000000000217, "invoice_email_template_id": 460000000052071, "estimate_email_template_id": 460000000052073, "creditnote_email_template_id": 460000000052075, "purchaseorder_email_template_id": 460000000000218, "salesorder_email_template_id": 460000000000219, "retainerinvoice_email_template_id": 460000000000220, "paymentthankyou_email_template_id": 460000000000221, "retainerinvoice_paymentthankyou_email_template_id": 460000000000222, "statement_template_id": 460000000000101, "payment_remittance_email_template_id": 460000000000102, "bill_template_id": 460000000000103 }, "notes": "Payment option : Through check", "created_time": "2013-08-05T12:06:10+0530", "last_modified_time": "2013-10-07T18:24:51+0530" } }

Delete a Contact

Delete an existing contact.
OAuth Scope : ZohoBooks.contacts.DELETE

Path Parameters

contact_id
string
(Required)

Query Parameters

organization_id
string
(Required)
ID of the organization

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/contacts/460000000026049?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/contacts/460000000026049?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/contacts/460000000026049?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/contacts/460000000026049?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/contacts/460000000026049?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/contacts/460000000026049?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "The contact has been deleted." }

Mark as Active

Mark a contact as active.
OAuth Scope : ZohoBooks.contacts.CREATE

Path Parameters

contact_id
string
(Required)

Query Parameters

organization_id
string
(Required)
ID of the organization

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/contacts/460000000026049/active?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/contacts/460000000026049/active?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/contacts/460000000026049/active?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/contacts/460000000026049/active?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/contacts/460000000026049/active?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/contacts/460000000026049/active?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "The contact has been marked as active." }

Mark as Inactive

Mark a contact as inactive.
OAuth Scope : ZohoBooks.contacts.CREATE

Path Parameters

contact_id
string
(Required)

Query Parameters

organization_id
string
(Required)
ID of the organization

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/contacts/460000000026049/inactive?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/contacts/460000000026049/inactive?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/contacts/460000000026049/inactive?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/contacts/460000000026049/inactive?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/contacts/460000000026049/inactive?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/contacts/460000000026049/inactive?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "The contact has been marked as inactive." }

Enable Portal Access

Enable portal access for a contact.
OAuth Scope : ZohoBooks.contacts.CREATE

Arguments

contact_persons
array
(Required)
Show Sub-Attributes arrow
contact_person_id
string
Unique identifier for the contact person. System-generated ID for API operations.

Path Parameters

contact_id
string
(Required)

Query Parameters

organization_id
string
(Required)
ID of the organization

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/contacts/460000000026049/portal/enable?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/contacts/460000000026049/portal/enable?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/contacts/460000000026049/portal/enable?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/contacts/460000000026049/portal/enable?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/contacts/460000000026049/portal/enable?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/contacts/460000000026049/portal/enable?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
{ "contact_persons": [ { "contact_person_id": 460000000026051 } ] }

Response Example

{ "code": 0, "message": "Client Portal preferences have been updated" }

Enable Payment Reminders

Enable automated payment reminders for a contact.
OAuth Scope : ZohoBooks.contacts.CREATE

Path Parameters

contact_id
string
(Required)

Query Parameters

organization_id
string
(Required)
ID of the organization

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/contacts/460000000026049/paymentreminder/enable?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/contacts/460000000026049/paymentreminder/enable?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/contacts/460000000026049/paymentreminder/enable?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/contacts/460000000026049/paymentreminder/enable?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/contacts/460000000026049/paymentreminder/enable?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/contacts/460000000026049/paymentreminder/enable?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "All reminders associated with this contact have been enabled." }

Disable Payment Reminders

Disable automated payment reminders for a contact.
OAuth Scope : ZohoBooks.contacts.CREATE

Path Parameters

contact_id
string
(Required)

Query Parameters

organization_id
string
(Required)
ID of the organization

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/contacts/460000000026049/paymentreminder/disable?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/contacts/460000000026049/paymentreminder/disable?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/contacts/460000000026049/paymentreminder/disable?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/contacts/460000000026049/paymentreminder/disable?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/contacts/460000000026049/paymentreminder/disable?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/contacts/460000000026049/paymentreminder/disable?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "All reminders associated with this contact have been stopped." }

Email Statement

Email statement to the contact. If JSONString is not inputted, mail will be sent with the default mail content.
OAuth Scope : ZohoBooks.contacts.CREATE

Arguments

send_from_org_email_id
boolean
Boolean to trigger the email from the organization's email address
to_mail_ids
array
(Required)
Array of email address of the recipients.
cc_mail_ids
array
Array of email address of the recipients to be cced.
subject
string
(Required)
Subject of an email has to be sent. Max-length [1000]
body
string
(Required)
Body of an email has to be sent. Max-length [5000]

Path Parameters

contact_id
string
(Required)

Query Parameters

organization_id
string
(Required)
ID of the organization
start_date
string
If start_date and end_date are not given, current month's statement will be sent to contact. Date format [yyyy-mm-dd]
end_date
string
End date for the statement. Date format [yyyy-mm-dd]
multipart_or_formdata
string
Files to be attached along with the statement.

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/contacts/460000000026049/statements/email?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/contacts/460000000026049/statements/email?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/contacts/460000000026049/statements/email?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/contacts/460000000026049/statements/email?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/contacts/460000000026049/statements/email?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/contacts/460000000026049/statements/email?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
{ "send_from_org_email_id": true, "to_mail_ids": [ "willsmith@bowmanfurniture.com" ], "cc_mail_ids": [ "peterparker@bowmanfurniture.com" ], "subject": "Statement of transactions with Zillium Inc", "body": "Dear Customer, <br/>We have attached with this email a list of all your transactions with us for the period 01 Sep 2013 to 30 Sep 2013. You can write to us or call us if you need any assistance or clarifications. <br/>Thanks for your business.<br/>Regards<br/>Zillium Inc" }

Response Example

Get Statement Mail Content

Get the statement mail content.
OAuth Scope : ZohoBooks.contacts.READ

Path Parameters

contact_id
string
(Required)

Query Parameters

organization_id
string
(Required)
ID of the organization
start_date
string
If start_date and end_date are not given, current month's statement will be sent to contact. Date format [yyyy-mm-dd]
end_date
string
End date for the statement. Date format [yyyy-mm-dd]

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/contacts/460000000026049/statements/email?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/contacts/460000000026049/statements/email?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/contacts/460000000026049/statements/email?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/contacts/460000000026049/statements/email?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/contacts/460000000026049/statements/email?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/contacts/460000000026049/statements/email?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "data": { "body": "Dear Customer, <br/>We have attached with this email a list of all your transactions with us for the period 01 Sep 2013 to 30 Sep 2013. You can write to us or call us if you need any assistance or clarifications. <br/>Thanks for your business.<br/>Regards<br/>Zillium Inc", "subject": "Statement of transactions with Zillium Inc", "to_contacts": [ { "first_name": "Will", "selected": true, "phone": "+1-925-921-9201", "email": "willsmith@bowmanfurniture.com", "contact_person_id": 460000000026051, "last_name": "Smith", "salutation": "Mr", "mobile": "+1-4054439562" } ], "file_name": "statement_BowmanandCo.pdf", "from_emails": [ { "user_name": "John Smith", "selected": true, "email": "willsmith@bowmanfurniture.com" } ], "contact_id": 460000000026049 } }

Email Contact

Send email to contact.
OAuth Scope : ZohoBooks.contacts.CREATE

Arguments

to_mail_ids
array
(Required)
Array of email address of the recipients.
subject
string
(Required)
Subject of an email has to be sent. Max-length [1000]
body
string
(Required)
Body of an email has to be sent. Max-length [5000]
attachments
binary
Files to be attached to the email. It has to be sent in multipart/formdata

Path Parameters

contact_id
string
(Required)

Query Parameters

organization_id
string
(Required)
ID of the organization
send_customer_statement
boolean
Send customer statement pdf with email.

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/contacts/460000000026049/email?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/contacts/460000000026049/email?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/contacts/460000000026049/email?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/contacts/460000000026049/email?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/contacts/460000000026049/email?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/contacts/460000000026049/email?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
{ "to_mail_ids": [ "willsmith@bowmanfurniture.com" ], "subject": "Welcome to Zillium Inc .", "body": "Dear Customer, <br/>We have attached with this email a list of all your transactions with us for the period 01 Sep 2013 to 30 Sep 2013. You can write to us or call us if you need any assistance or clarifications. <br/>Thanks for your business.<br/>Regards<br/>Zillium Inc", "attachments": "string" }

Response Example

List Comments

List recent activities of a contact.
OAuth Scope : ZohoBooks.contacts.READ

Path Parameters

contact_id
string
(Required)

Query Parameters

organization_id
string
(Required)
ID of the organization
page
integer
Page number to be fetched. Default value is 1.
per_page
integer
Number of records to be fetched per page. Default value is 200.

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/contacts/460000000026049/comments?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/contacts/460000000026049/comments?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/contacts/460000000026049/comments?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/contacts/460000000026049/comments?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/contacts/460000000026049/comments?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/contacts/460000000026049/comments?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "contact_comments": [ { "comment_id": 460000000053131, "contact_id": 460000000026049, "contact_name": "Bowman and Co", "description": "", "commented_by_id": 460000000024003, "commented_by": "John David", "date": "2013-11-19", "date_description": "4 days ago", "time": "6:03 PM", "transaction_id": 460000000053123, "transaction_type": "customer_payment", "is_entity_deleted": false, "operation_type": "added" }, {...}, {...} ], "page_context": { "page": 1, "per_page": 200, "has_more_page": false, "applied_filter": "Status.All", "sort_column": "contact_name", "sort_order": "D" } }

Add Additional Address

Add an additional address for a contact using the arguments below.
OAuth Scope : ZohoBooks.contacts.CREATE

Arguments

attention
string
Attention for proper delivery and routing of business correspondence. Max-length [100].
address
string
Street 1 address for the contact. Max-length [500].
street2
string
Street 2 address for the contact. Max-length [255].
city
string
City name for the address. Max-length [100].
state
string
State for the address. Max-length [100].
zip
string
Postal or ZIP code for the address. Max-length [50].
country
string
Country name for the address. Max-length [100].
fax
string
Fax number for the address. Max-length [50].
phone
string
The contact phone number associated with the address. Max-length [50]

Path Parameters

contact_id
string
(Required)

Query Parameters

organization_id
string
(Required)
ID of the organization

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/contacts/460000000026049/address?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/contacts/460000000026049/address?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/contacts/460000000026049/address?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/contacts/460000000026049/address?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/contacts/460000000026049/address?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/contacts/460000000026049/address?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
{ "attention": "Mr.John", "address": "4900 Hopyard Rd", "street2": "Suite 310", "city": "Pleasanton", "state": "CA", "zip": 94588, "country": "U.S.A", "fax": "+1-925-924-9600", "phone": "+1-925-921-9201" }

Response Example

{ "code": 0, "message": "The address has been created.", "address_info": { "address_id": 1053791000000186000, "attention": "Mr.John", "address": "4900 Hopyard Rd", "street2": "Suite 310", "city": "Pleasanton", "state": "CA", "zip": 94588, "country": "U.S.A", "fax": "+1-925-924-9600", "phone": "+1-925-921-9201" } }

Get Contact Addresses

Get addresses of a contact including its Shipping Address, Billing Address and other additional addresses.
OAuth Scope : ZohoBooks.contacts.READ

Path Parameters

contact_id
string
(Required)

Query Parameters

organization_id
string
(Required)
ID of the organization

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/contacts/460000000026049/address?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/contacts/460000000026049/address?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/contacts/460000000026049/address?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/contacts/460000000026049/address?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/contacts/460000000026049/address?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/contacts/460000000026049/address?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "addresses": [ { "address_id": 1053791000000186000, "attention": "Mr.John", "address": "4900 Hopyard Rd", "street2": "Suite 310", "city": "Pleasanton", "state": "CA", "zip": 94588, "country": "U.S.A", "fax": "+1-925-924-9600", "phone": "+1-925-921-9201" }, {...}, {...} ] }

Edit Additional Address

Edit the additional address of a contact using the arguments below.
OAuth Scope : ZohoBooks.contacts.UPDATE

Arguments

attention
string
Attention for proper delivery and routing of business correspondence. Max-length [100].
address
string
Street 1 address for the contact. Max-length [500].
street2
string
Street 2 address for the contact. Max-length [255].
city
string
City name for the address. Max-length [100].
state
string
State for the address. Max-length [100].
zip
string
Postal or ZIP code for the address. Max-length [50].
country
string
Country name for the address. Max-length [100].
fax
string
Fax number for the address. Max-length [50].
phone
string
The contact phone number associated with the address. Max-length [50]
address_id
string
(Required)
Address id of the address

Path Parameters

contact_id
string
(Required)
address_id
string
(Required)

Query Parameters

organization_id
string
(Required)
ID of the organization

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/contacts/460000000026049/address/1053791000000186000?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/contacts/460000000026049/address/1053791000000186000?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/contacts/460000000026049/address/1053791000000186000?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/contacts/460000000026049/address/1053791000000186000?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/contacts/460000000026049/address/1053791000000186000?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/contacts/460000000026049/address/1053791000000186000?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
{ "attention": "Mr.John", "address": "4900 Hopyard Rd", "street2": "Suite 310", "city": "Pleasanton", "state": "CA", "zip": 94588, "country": "U.S.A", "fax": "+1-925-924-9600", "phone": "+1-925-921-9201", "address_id": 1053791000000186000 }

Response Example

{ "code": 0, "message": "The address has been updated.", "address_info": { "address_id": 1053791000000186000, "attention": "Mr.John", "address": "4900 Hopyard Rd", "street2": "Suite 310", "city": "Pleasanton", "state": "CA", "zip": 94588, "country": "U.S.A", "fax": "+1-925-924-9600", "phone": "+1-925-921-9201" } }

Delete Additional Address

Delete the additional address of a contact.
OAuth Scope : ZohoBooks.contacts.DELETE

Path Parameters

contact_id
string
(Required)
address_id
string
(Required)

Query Parameters

organization_id
string
(Required)
ID of the organization

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/contacts/460000000026049/address/1053791000000186000?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/contacts/460000000026049/address/1053791000000186000?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/contacts/460000000026049/address/1053791000000186000?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/contacts/460000000026049/address/1053791000000186000?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/contacts/460000000026049/address/1053791000000186000?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/contacts/460000000026049/address/1053791000000186000?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "The address has been deleted." }

List Refunds

List the refund history of a contact.
OAuth Scope : ZohoBooks.contacts.READ

Path Parameters

contact_id
string
(Required)

Query Parameters

organization_id
string
(Required)
ID of the organization
page
integer
Page number to be fetched. Default value is 1.
per_page
integer
Number of records to be fetched per page. Default value is 200.

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/contacts/460000000026049/refunds?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/contacts/460000000026049/refunds?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/contacts/460000000026049/refunds?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/contacts/460000000026049/refunds?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/contacts/460000000026049/refunds?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/contacts/460000000026049/refunds?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "success", "creditnote_refunds": [ { "creditnote_refund_id": 982000000567158, "creditnote_id": 982000000567134, "date": "2013-11-19", "refund_mode": "cash", "reference_number": 782364, "creditnote_number": "CN-00001", "customer_name": "Bowman & Co", "description": "gf", "amount_bcy": 57.15, "amount_fcy": 57.15 }, {...}, {...} ], "page_context": { "page": 1, "per_page": 200, "has_more_page": false, "report_name": "Credit Notes Refund", "sort_column": "date", "sort_order": "D" } }

Track 1099

Track a contact for 1099 reporting: (Note: This API is only available when the organization's country is U.S.A).
OAuth Scope : ZohoBooks.contacts.CREATE

Path Parameters

contact_id
string
(Required)

Query Parameters

organization_id
string
(Required)
ID of the organization

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/contacts/460000000026049/track1099?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/contacts/460000000026049/track1099?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/contacts/460000000026049/track1099?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/contacts/460000000026049/track1099?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/contacts/460000000026049/track1099?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/contacts/460000000026049/track1099?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "1099 tracking is enabled." }

Untrack 1099

Use this API to stop tracking payments to a vendor for 1099 reporting. (Note: This API is only available when the organization's country is U.S.A).
OAuth Scope : ZohoBooks.contacts.CREATE

Path Parameters

contact_id
string
(Required)

Query Parameters

organization_id
string
(Required)
ID of the organization

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/contacts/460000000026049/untrack1099?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/contacts/460000000026049/untrack1099?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/contacts/460000000026049/untrack1099?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/contacts/460000000026049/untrack1099?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/contacts/460000000026049/untrack1099?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/contacts/460000000026049/untrack1099?organization_id=10234695' \ --header 'Authorization: Zoho-oauthtoken 1000.41d9xxxxxxxxxxxxxxxxxxxxxxxxc2d1.8fccxxxxxxxxxxxxxxxxxxxxxxxx125f'

Response Example

{ "code": 0, "message": "1099 tracking is disabled." }