Businesses

Businesses AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

APIs for managing business accounts within the Arattai Business Platform. A business is created under a company and represents an entity that can own business numbers, send messages, and manage templates. Businesses go through a verification lifecycle before they can be used for production messaging.

Host: https://business.arattai.in/api/v1

Required header: Arattai-CompanyId is required for all APIs.

The full set of attributes returned for a business is documented under the Business schema in the API reference below.

Verification Status Workflow
unverified → in_progress → verified
in_progress → rejected → unverified (resubmit)

Notes

  • Once status is verified, fields marked "Locked" become non-editable (403 invalid_operation). display_name, promotions, allow_user_message (set via user_message in requests), privacy_link, terms_link, and user_data remain editable regardless of verification status.
  • entity_type/entity_sub_type are only cross-validated against each other when both are supplied in the same PATCH request.
  • Logo download is GET /businesslogo/{base64Encoded} via logo_url. There is no GET /businesses/{id}/logo route.

Error Response Format
{"code": "error_code", "message": "A human-readable description."}

Attribute

id
string
Unique identifier of the business, generated when the business is created. Note: This value is a set of numeric characters. Use this value in the path of all subsequent calls that act on this business, for example /businesses/{id}.
reference_id
string
Base36-encoded opaque identifier for the business. Always present in responses. Intended for use by external integrations and customer-facing systems in place of the internal numeric id.
display_name
string
Display name of the business, shown to customers in conversations and on outgoing message templates. This is the only field required to create a business, and remains editable at any time regardless of verification status.
contact_email
string
Primary contact email address for the business. Must be set before the business can be submitted for verification. Always present in responses, returned as an empty string when not yet set.
registration_id
string
Registration number taken from an accepted legitimacy document, such as a GST certificate or Certificate of Incorporation (CIN). Must be set before the business can be submitted for verification. Omitted from the response entirely when not set.
representative_name
string
Full name of the business's authorized representative, exactly as it appears on their government-issued ID. Must be set before the business can be submitted for verification. Always present in responses, returned as an empty string when not yet set.
unique_name
string
System-derived, read-only identifier generated from legal_name by removing special characters. Cannot be set directly, and is recalculated automatically whenever legal_name changes.
status
string
Current verification status of the business. A business moves through this lifecycle, in order: unverified → in_progress → verified, with in_progress → rejected → unverified (resubmission) as an alternate path. Once a business reaches verified, most fields become locked and can no longer be edited.
Allowed values:
  • unverified - Default status for a newly created business. Fully editable, and can be submitted for admin review once all required fields and documents are in place.
  • in_progress - Submitted for admin review and awaiting a decision. The submission can be withdrawn, which reverts the business to unverified.
  • verified - Approved by an admin and ready for production messaging. Most fields are locked, only display_name, promotions, allow_user_message, privacy_link, terms_link, and user_data remain editable.
  • rejected - Declined by an admin. rejection_reason explains why, and the business can be corrected and resubmitted, which moves it back to unverified.
rejection_reason
string
Human-readable explanation of why the business was rejected during admin review. Present only after a rejection has occurred, and preserved in the response even after the business is corrected and resubmitted.
entity_type
string
Legal structure of the business entity. Determines which entity_sub_type values are valid for this business. Always present in responses, and defaults to company when not specified at creation (including for legacy records).
Allowed values:
  • sole_proprietorship - Individually owned, unincorporated business. Valid sub-types: registered, unregistered.
  • partnership - Business owned jointly by two or more partners. Valid sub-types: registered, unregistered.
  • company - Incorporated company. Valid sub-types: pvt, public_listed, llp.
  • government_entity - Government-owned or government-affiliated organization. No sub-type applies, entity_sub_type must be omitted.
entity_sub_type
string
Sub-classification within the selected entity_type. Always present except when entity_type is government_entity, where it must be omitted entirely. The two fields are cross-validated against each other only when both are supplied in the same request.
Allowed values:
  • registered - Registered sole proprietorship or partnership.
  • unregistered - Unregistered sole proprietorship or partnership.
  • pvt - Private limited company.
  • public_listed - Publicly listed company.
  • llp - Limited liability partnership.
address
object
Structured postal address of the business. Always present in responses, returned as an object with empty-valued fields when no address has been set.
Show Sub-Attributes arrow
street_1
string
Street address line 1.
street_2
string
Street address line 2.
city
string
City name.
state
string
State or province name.
country
string
Country name.
pin_code
string
Postal or zip code.
latitude
number
Latitude coordinate of the address, -90 to 90.
longitude
number
Longitude coordinate of the address, -180 to 180.
businessnumbers
array
Business numbers (phone numbers) linked to this business. Always present in responses, returned as an empty array when no numbers are linked yet. Use the Business Numbers API to create and link additional numbers.
Show Sub-Attributes arrow
id
string
Business number ID.
reference_id
string
Base36-encoded opaque identifier for the business number.
phonenumber
string
The phone number, without country code.
phone_country_code
string
Country code, always including the leading "+".
display_name
string
Display name of the business number.
full_phonenumber
string
Phone number with the country code prefixed, in E.164-style format.
throughput
integer
Messages-per-second throughput currently allotted to this business number.
tier
string
Messaging tier assigned to this business number, which determines daily conversation limits.
mtd_spend
number
Month-to-date conversation spend for this business number.
last_activity_time
string
Timestamp of the most recent activity on this business number, as epoch milliseconds (string).
messagetemplates
array
Lite message template objects linked to this business. Included only when the request specifies include_fields=messagetemplates, and the key is omitted from the response entirely otherwise.
Show Sub-Attributes arrow
id
string
Message template ID.
name
string
Name of the message template.
description
string
Description of the message template.
type
string
Category of the message template.
promotions
string
Indicates whether this business is permitted to send promotional message templates. Always present in responses, and editable at any time regardless of verification status.
Allowed values:
  • enabled - The business can send promotional templates.
  • disabled - The business cannot send promotional templates.
allow_user_message
string
Controls whether customers can freely message this business outside of an active template-triggered conversation. Set via the user_message field on create/update requests, always present in responses, and editable at any time regardless of verification status.
Allowed values:
  • always_allow - Customers can always initiate a conversation with the business.
  • disallow - Customers cannot initiate conversations, only business-initiated messaging is permitted.
user_data
array
Defines which customer data points are collected before a conversation can proceed, and whether each is mandatory. Omitted from the response entirely when not configured. Editable at any time regardless of verification status.
Show Sub-Attributes arrow
type
string
Customer data point being collected.
enabled
boolean
Whether collection of this data point is active.
mandatory
boolean
Whether the customer must provide this data point before the conversation can proceed.
bsp
object
Present only when this business is onboarded under a Business Solution Provider (BSP). Identifies the BSP company that manages this business.
Show Sub-Attributes arrow
id
string
Company ID of the managing BSP.
name
string
Display name of the managing BSP.
logo_url
string
Relative path used to download the uploaded business logo, in the form /api/v1/businesslogo/{base64Encoded}. Omitted from the response when no logo has been uploaded. There is no GET /businesses/{id}/logo route, always use this URL to fetch the logo.
last_activity_time
string
Timestamp of the most recent activity across the business and all of its linked business numbers, as epoch milliseconds (string). Always present in responses.
created_time
string
Timestamp when the business was created, as epoch milliseconds (string).
modified_time
string
Timestamp when the business was last modified, as epoch milliseconds (string).

Example

{ "id": "501000000002005", "reference_id": "1K3M5X2", "display_name": "Zylker Retail", "legal_name": "Zylker Retail Pvt. Ltd.", "contact_email": "contact@zylker.com", "registration_id": "27AAAAA0000A1Z5", "representative_name": "Scott Fisher", "unique_name": "ZylkerRetailPvtLtd", "status": "verified", "rejection_reason": "Registration document is illegible.", "entity_type": "company", "entity_sub_type": "pvt", "address": { "street_1": "4900 Hopyard Rd, Suite 310", "street_2": "", "city": "Pleasanton", "state": "CA", "country": "U.S.A", "pin_code": "94588", "latitude": 37.6624, "longitude": -121.8747 }, "businessnumbers": [ { "id": "1757000000003001", "reference_id": "1ZQXB2G", "phonenumber": "9443789765", "phone_country_code": "+91", "display_name": "Zylker Retail", "full_phonenumber": "+919443789765", "throughput": 100, "tier": "T1", "mtd_spend": 0, "last_activity_time": "1769489125588" } ], "messagetemplates": [ { "id": "501000000008001", "name": "welcome_template", "description": "Welcome message sent to new customers", "type": "transaction" } ], "promotions": "enabled", "allow_user_message": "always_allow", "privacy_link": "https://zylker.com/privacy", "terms_link": "https://zylker.com/terms", "user_data": [ { "type": "name", "enabled": true, "mandatory": false } ], "bsp": { "id": "501000000001001", "name": "Zylker BSP" }, "logo_url": "/api/v1/businesslogo/NTAxMDAwMDAwMDAyMDA1", "last_activity_time": "1769489125588", "created_time": "1768992318647", "modified_time": "1769155408184" }

Create a Business AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Create a new business under the company identified by the Arattai-CompanyId header. Only display_name is required; all other fields are optional and can be set or updated later.

⚠
Note
  • Use application/json for a standard creation without a logo.
  • To create a business and upload a logo in a single request, use multipart/form-data with all fields sent as individual form parameters alongside the image file.
  • Logo file size limit: maximum 5 MB. Supported formats: JPEG, JPG, PNG, AVIF, WEBP.

Rate Limits
  • Threshold Limit (Number of API calls allowed within a minute) - 10 requests per minute
  • Lock Period (Wait time before consecutive API requests) - 10 minutes

OAuth Scope : ArattaiBusiness.businesses.CREATE

Arguments

display_name
string
(Required)
Business display name. Maximum 100 characters.
language_code
string
Language code (e.g. "en", "fr"). Minimum 2 characters. Defaults to "en".
time_zone
string
Timezone string (e.g. "Asia/Kolkata"). Defaults to the company's timezone.
entity_type
string
Legal entity structure. Defaults to company if omitted.
Allowed values:
  • sole_proprietorship - Individually owned, unincorporated business.
  • partnership - Business owned jointly by two or more partners.
  • company - Incorporated company (private, public listed, or LLP).
  • government_entity - Government-owned or government-affiliated organization.
entity_sub_type
string
Sub-type within entity_type. Must belong to the selected entity_type and must be omitted when entity_type is government_entity.
Allowed values:
  • registered - Registered sole proprietorship or partnership.
  • unregistered - Unregistered sole proprietorship or partnership.
  • pvt - Private limited company.
  • public_listed - Publicly listed company.
  • llp - Limited liability partnership.
contact_email
string
Business contact email address. Maximum 100 characters.
registration_id
string
Registration number from an accepted legitimacy document (e.g. GST/CIN). Maximum 100 characters.
representative_name
string
Representative name as on their government ID. Maximum 200 characters.
website
string
Business website URL. Maximum 500 characters.
description
string
Business description. Maximum 255 characters.
phone_country_code
string
Country code including leading "+" (e.g. "+91"). Maximum 5, minimum 2 characters.
phonenumber
string
Business contact phone number. Digits only. Maximum 14 digits, minimum 7.
phone_region_code
string
ISO 3166-1 alpha-2 region code (e.g. "IN", "US"). Uppercase only.
address
object
Structured address object.
Show Sub-Attributes arrow
street_1
string
(Required)
Street address line 1. Maximum 200 characters.
street_2
string
Street address line 2. Maximum 200 characters.
city
string
(Required)
City name. Maximum 100 characters.
state
string
(Required)
State or province name. Maximum 100 characters.
country
string
(Required)
Country name. Maximum 100 characters.
pin_code
string
(Required)
Postal or zip code. Maximum 10, minimum 3 characters.
latitude
number
Latitude coordinate of the address. Decimal, -90 to 90, maximum 6 decimal places.
longitude
number
Longitude coordinate of the address. Decimal, -180 to 180, maximum 6 decimal places.

Headers

Arattai-CompanyId
string
(Required)
The unique identifier of the company under which the business will be created.

Request Example

Click to copy
parameters_data='{"field1":"value1","field2":"value2"}'; headers_data = Map(); headers_data.put("Arattai-CompanyId", "SOME_STRING_VALUE"); headers_data.put("Authorization", "Bearer REPLACE_BEARER_TOKEN"); response = invokeUrl [ url: "https://business.arattai.in/api/v1/businesses" 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://business.arattai.in/api/v1/businesses") .post(body) .addHeader("Arattai-CompanyId", "SOME_STRING_VALUE") .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .addHeader("content-type", "application/json") .build(); Response response = client.newCall(request).execute();
const options = { method: 'POST', headers: { 'Arattai-CompanyId': 'SOME_STRING_VALUE', Authorization: 'Bearer REPLACE_BEARER_TOKEN', 'content-type': 'application/json' }, body: '{"field1":"value1","field2":"value2"}' }; fetch('https://business.arattai.in/api/v1/businesses', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("business.arattai.in") payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}" headers = { 'Arattai-CompanyId': "SOME_STRING_VALUE", 'Authorization': "Bearer REPLACE_BEARER_TOKEN", 'content-type': "application/json" } conn.request("POST", "/api/v1/businesses", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "POST", "hostname": "business.arattai.in", "port": null, "path": "/api/v1/businesses", "headers": { "Arattai-CompanyId": "SOME_STRING_VALUE", "Authorization": "Bearer REPLACE_BEARER_TOKEN", "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();
var client = new RestClient("https://business.arattai.in/api/v1/businesses"); var request = new RestRequest(Method.POST); request.AddHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); request.AddHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); request.AddHeader("content-type", "application/json"); request.AddParameter("application/json", "{\"field1\":\"value1\",\"field2\":\"value2\"}", ParameterType.RequestBody); IRestResponse response = client.Execute(request);
var client = new HttpClient(); var request = new HttpRequestMessage { Method = HttpMethod.Post, RequestUri = new Uri("https://business.arattai.in/api/v1/businesses"), Headers = { { "Arattai-CompanyId", "SOME_STRING_VALUE" }, { "Authorization", "Bearer REPLACE_BEARER_TOKEN" }, }, Content = new StringContent("{\"field1\":\"value1\",\"field2\":\"value2\"}") { Headers = { ContentType = new MediaTypeHeaderValue("application/json") } } }; using (var response = await client.SendAsync(request)) { response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body); }
package main import ( "fmt" "strings" "net/http" "io/ioutil" ) func main() { url := "https://business.arattai.in/api/v1/businesses" payload := strings.NewReader("{\"field1\":\"value1\",\"field2\":\"value2\"}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Arattai-CompanyId", "SOME_STRING_VALUE") req.Header.Add("Authorization", "Bearer REPLACE_BEARER_TOKEN") req.Header.Add("content-type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) }
const data = JSON.stringify({ "field1": "value1", "field2": "value2" }); const xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === this.DONE) { console.log(this.responseText); } }); xhr.open("POST", "https://business.arattai.in/api/v1/businesses"); xhr.setRequestHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); xhr.setRequestHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); xhr.setRequestHeader("content-type", "application/json"); xhr.send(data);
curl --request POST \ --url https://business.arattai.in/api/v1/businesses \ --header 'Arattai-CompanyId: SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \ --header 'content-type: application/json' \ --data '{"field1":"value1","field2":"value2"}'

Body Parameters

Click to copy
{ "display_name": "Business", "legal_name": "Business Pvt. Ltd.", "contact_email": "contact@business.com", "registration_id": "27AAAAA0000A1Z5", "representative_name": "Scott Fisher", "language_code": "en", "time_zone": "Asia/Kolkata", "website": "https://arattai.com", "entity_type": "company", "entity_sub_type": "pvt", "phone_country_code": "+91", "phonenumber": "8883169888", "phone_region_code": "IN" }

Response Example

{ "url": "/api/v1/businesses" }
{ "code": "invalid_input", "message": "Either the input stream or parameter is invalid or absent" }
{ "code": "invalid_oauthtoken", "message": "You are not authenticated to do this operation" }
{ "code": "invalid_method", "message": "Invalid method" }
{ "code": "too_many_requests", "message": "You have reached the maximum number of requests" }

List all Businesses AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Get all businesses for the company with optional filters. Results are sorted in descending order by modified_time (most recently modified first).

Query Parameters:

  • statuses: Comma-separated verification status values to filter. Values: unverified, in_progress, verified, rejected.
  • index: Pagination offset. 0-based index of the first result to return. Default: 0.
  • limit: Maximum number of results to return. Default: 50.
  • include_fields: Comma-separated list of additional fields. Value: messagetemplates includes lite template objects (id, name, description, type) for each business. Key is omitted when not requested.

Rate Limits
  • Threshold Limit (Number of API calls allowed within a minute) - 45 requests per minute
  • Lock Period (Wait time before consecutive API requests) - 10 minutes

OAuth Scope : ArattaiBusiness.businesses.READ

Query Parameters

statuses
string
Comma-separated verification status values to filter. Values - unverified, in_progress, verified, rejected.
index
integer
Pagination offset. 0-based index of the first result to return. Default is 0.
limit
integer
Maximum number of results to return. Default is 50.
include_fields
string
Comma-separated additional fields to include. Only `messagetemplates` is supported - includes lite template objects (id, name, description, type) for each business. Key omitted when not requested.

Headers

Arattai-CompanyId
string
(Required)
The unique identifier of the company for this request.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Arattai-CompanyId", "SOME_STRING_VALUE"); headers_data.put("Authorization", "Bearer REPLACE_BEARER_TOKEN"); response = invokeUrl [ url: "https://business.arattai.in/api/v1/businesses" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://business.arattai.in/api/v1/businesses") .get() .addHeader("Arattai-CompanyId", "SOME_STRING_VALUE") .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { 'Arattai-CompanyId': 'SOME_STRING_VALUE', Authorization: 'Bearer REPLACE_BEARER_TOKEN' } }; fetch('https://business.arattai.in/api/v1/businesses', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("business.arattai.in") headers = { 'Arattai-CompanyId': "SOME_STRING_VALUE", 'Authorization': "Bearer REPLACE_BEARER_TOKEN" } conn.request("GET", "/api/v1/businesses", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "business.arattai.in", "port": null, "path": "/api/v1/businesses", "headers": { "Arattai-CompanyId": "SOME_STRING_VALUE", "Authorization": "Bearer REPLACE_BEARER_TOKEN" } }; 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();
var client = new RestClient("https://business.arattai.in/api/v1/businesses"); var request = new RestRequest(Method.GET); request.AddHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); request.AddHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); IRestResponse response = client.Execute(request);
var client = new HttpClient(); var request = new HttpRequestMessage { Method = HttpMethod.Get, RequestUri = new Uri("https://business.arattai.in/api/v1/businesses"), Headers = { { "Arattai-CompanyId", "SOME_STRING_VALUE" }, { "Authorization", "Bearer REPLACE_BEARER_TOKEN" }, }, }; using (var response = await client.SendAsync(request)) { response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body); }
package main import ( "fmt" "net/http" "io/ioutil" ) func main() { url := "https://business.arattai.in/api/v1/businesses" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Arattai-CompanyId", "SOME_STRING_VALUE") req.Header.Add("Authorization", "Bearer REPLACE_BEARER_TOKEN") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) }
const data = null; const xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === this.DONE) { console.log(this.responseText); } }); xhr.open("GET", "https://business.arattai.in/api/v1/businesses"); xhr.setRequestHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); xhr.setRequestHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); xhr.send(data);
curl --request GET \ --url https://business.arattai.in/api/v1/businesses \ --header 'Arattai-CompanyId: SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response Example

{ "url": "/api/v1/businesses", "type": "business", "data": [ { "id": "501000000002005", "reference_id": "1K3M5X2", "display_name": "Zylker Retail", "status": "verified", "entity_type": "company", "entity_sub_type": "pvt", "businessnumbers": [ { "id": "1757000000003001", "reference_id": "1ZQXB2G", "phonenumber": "9443789765", "phone_country_code": "+91", "display_name": "Zylker Retail", "full_phonenumber": "+919443789765", "throughput": 100, "tier": "T1", "mtd_spend": 0, "last_activity_time": "1769489125588" } ], "created_time": "1768992318647", "modified_time": "1769155408184" } ] }
{ "code": "invalid_input", "message": "Either the input stream or parameter is invalid or absent" }
{ "code": "invalid_oauthtoken", "message": "You are not authenticated to do this operation" }
{ "code": "invalid_method", "message": "Invalid method" }
{ "code": "too_many_requests", "message": "You have reached the maximum number of requests" }

Update a Business AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Update an existing business. All fields are optional; only send fields you want to update.

Field Editability by Verification Status
Field Editable after verified?
legal_nameNo
websiteNo
phone_country_codeNo
phonenumberNo
phone_region_codeNo
addressNo
entity_typeNo
entity_sub_typeNo
descriptionNo
language_codeNo
time_zoneNo
contact_emailNo
registration_idNo
representative_nameNo
display_nameYes
promotionsYes
user_message (sets allow_user_message)Yes
privacy_linkYes
terms_linkYes
user_dataYes

Attempting to update a "No" field once the business is verified returns 403 invalid_operation.

Address latitude/longitude update semantics:

  • If address is omitted in PATCH, existing address values are preserved.
  • If address is provided without latitude/longitude, existing coordinate values are preserved.
  • To clear coordinate values, pass null explicitly.

Rate Limits
  • Threshold Limit (Number of API calls allowed within a minute) - 30 requests per minute
  • Lock Period (Wait time before consecutive API requests) - 10 minutes

OAuth Scope : ArattaiBusiness.businesses.UPDATE

Arguments

display_name
string
Business display name. Maximum 100 characters. Editable regardless of verification status.
contact_email
string
Business contact email address. Maximum 100 characters. Locked once verified.
registration_id
string
Registration number from an accepted legitimacy document (e.g. GST/CIN). Maximum 100 characters. Locked once verified.
representative_name
string
Representative name as on their government ID. Maximum 200 characters. Locked once verified.
language_code
string
Language code (ISO 639-1, e.g. "en", "fr"). Maximum 10 characters. Locked once verified.
time_zone
string
Timezone string (e.g. "Asia/Kolkata"). Maximum 250 characters. Locked once verified.
entity_type
string
Legal entity structure. Locked once verified.
Allowed values:
  • sole_proprietorship - Individually owned, unincorporated business.
  • partnership - Business owned jointly by two or more partners.
  • company - Incorporated company (private, public listed, or LLP).
  • government_entity - Government-owned or government-affiliated organization.
entity_sub_type
string
Sub-type within entity_type. Must belong to entity_type when both are supplied in the same request. Locked once verified.
Allowed values:
  • registered - Registered sole proprietorship or partnership.
  • unregistered - Unregistered sole proprietorship or partnership.
  • pvt - Private limited company.
  • public_listed - Publicly listed company.
  • llp - Limited liability partnership.
website
string
Business website URL. Maximum 500 characters. Locked once verified.
description
string
Business description. Maximum 255 characters. Locked once verified.
phone_country_code
string
Country code including leading "+" (e.g. "+91"). Maximum 5, minimum 2 characters. Locked once verified.
phonenumber
string
Business contact phone number. Digits only. Maximum 14 digits, minimum 7. Locked once verified.
phone_region_code
string
ISO 3166-1 alpha-2 region code. Uppercase only. Locked once verified.
promotions
string
Promotional messaging setting. Editable regardless of verification status.
Allowed values:
  • enabled - Promotional messages can be sent to this business's contacts.
  • disabled - Promotional messages are blocked for this business.
user_message
string
Inbound message policy. Editable regardless of verification status.
Allowed values:
  • always_allow - Users can always send inbound messages to this business.
  • disallow - Inbound messages from users are not allowed.
address
object
Structured address object. Locked once verified.
user_data
array
Data collection requirements. Array of objects, maximum 2 items.

Path Parameters

id
string
(Required)
Business ID. The unique identifier of the business to update.

Headers

Arattai-CompanyId
string
(Required)
The unique identifier of the company for this request.

Request Example

Click to copy
parameters_data='{"field1":"value1","field2":"value2"}'; headers_data = Map(); headers_data.put("Arattai-CompanyId", "SOME_STRING_VALUE"); headers_data.put("Authorization", "Bearer REPLACE_BEARER_TOKEN"); response = invokeUrl [ url: "https://business.arattai.in/api/v1/businesses/BUSINESS_ID" type: PATCH 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://business.arattai.in/api/v1/businesses/BUSINESS_ID") .patch(body) .addHeader("Arattai-CompanyId", "SOME_STRING_VALUE") .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .addHeader("content-type", "application/json") .build(); Response response = client.newCall(request).execute();
const options = { method: 'PATCH', headers: { 'Arattai-CompanyId': 'SOME_STRING_VALUE', Authorization: 'Bearer REPLACE_BEARER_TOKEN', 'content-type': 'application/json' }, body: '{"field1":"value1","field2":"value2"}' }; fetch('https://business.arattai.in/api/v1/businesses/BUSINESS_ID', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("business.arattai.in") payload = "{\"field1\":\"value1\",\"field2\":\"value2\"}" headers = { 'Arattai-CompanyId': "SOME_STRING_VALUE", 'Authorization': "Bearer REPLACE_BEARER_TOKEN", 'content-type': "application/json" } conn.request("PATCH", "/api/v1/businesses/BUSINESS_ID", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "PATCH", "hostname": "business.arattai.in", "port": null, "path": "/api/v1/businesses/BUSINESS_ID", "headers": { "Arattai-CompanyId": "SOME_STRING_VALUE", "Authorization": "Bearer REPLACE_BEARER_TOKEN", "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();
var client = new RestClient("https://business.arattai.in/api/v1/businesses/BUSINESS_ID"); var request = new RestRequest(Method.PATCH); request.AddHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); request.AddHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); request.AddHeader("content-type", "application/json"); request.AddParameter("application/json", "{\"field1\":\"value1\",\"field2\":\"value2\"}", ParameterType.RequestBody); IRestResponse response = client.Execute(request);
var client = new HttpClient(); var request = new HttpRequestMessage { Method = HttpMethod.Patch, RequestUri = new Uri("https://business.arattai.in/api/v1/businesses/BUSINESS_ID"), Headers = { { "Arattai-CompanyId", "SOME_STRING_VALUE" }, { "Authorization", "Bearer REPLACE_BEARER_TOKEN" }, }, Content = new StringContent("{\"field1\":\"value1\",\"field2\":\"value2\"}") { Headers = { ContentType = new MediaTypeHeaderValue("application/json") } } }; using (var response = await client.SendAsync(request)) { response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body); }
package main import ( "fmt" "strings" "net/http" "io/ioutil" ) func main() { url := "https://business.arattai.in/api/v1/businesses/BUSINESS_ID" payload := strings.NewReader("{\"field1\":\"value1\",\"field2\":\"value2\"}") req, _ := http.NewRequest("PATCH", url, payload) req.Header.Add("Arattai-CompanyId", "SOME_STRING_VALUE") req.Header.Add("Authorization", "Bearer REPLACE_BEARER_TOKEN") req.Header.Add("content-type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) }
const data = JSON.stringify({ "field1": "value1", "field2": "value2" }); const xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === this.DONE) { console.log(this.responseText); } }); xhr.open("PATCH", "https://business.arattai.in/api/v1/businesses/BUSINESS_ID"); xhr.setRequestHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); xhr.setRequestHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); xhr.setRequestHeader("content-type", "application/json"); xhr.send(data);
curl --request PATCH \ --url https://business.arattai.in/api/v1/businesses/BUSINESS_ID \ --header 'Arattai-CompanyId: SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \ --header 'content-type: application/json' \ --data '{"field1":"value1","field2":"value2"}'

Body Parameters

Click to copy
{ "display_name": "Business-1", "promotions": "enabled", "user_message": "always_allow" }

Response Example

{ "url": "/api/v1/businesses/501000000002005", "type": "business", "data": { "id": "501000000002005", "display_name": "Zylker Retail Co", "status": "verified" } }
{ "code": "invalid_input", "message": "Either the input stream or parameter is invalid or absent" }
{ "code": "invalid_oauthtoken", "message": "You are not authenticated to do this operation" }
{ "code": "invalid_operation", "message": "This field cannot be updated once the business is verified" }
{ "code": "not_found", "message": "The requested resource was not found" }
{ "code": "invalid_method", "message": "Invalid method" }
{ "code": "too_many_requests", "message": "You have reached the maximum number of requests" }

Get a Business AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Retrieve the full details of a specific business by its ID. Optionally include lite message template objects associated with the business.

Rate Limits

  • Threshold Limit (Number of API calls allowed within a minute) - 30 requests per minute
  • Lock Period (Wait time before consecutive API requests) - 10 minutes

OAuth Scope : ArattaiBusiness.businesses.READ

Path Parameters

id
string
(Required)
Business ID. The unique identifier of the business to retrieve.

Query Parameters

include_fields
string
Comma-separated list of additional fields to include.
Allowed values: messagetemplates: Include lite template objects (id, name, description, type) associated with this business. Key is omitted from response when not requested.

Headers

Arattai-CompanyId
string
(Required)
The unique identifier of the company for this request.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Arattai-CompanyId", "SOME_STRING_VALUE"); headers_data.put("Authorization", "Bearer REPLACE_BEARER_TOKEN"); response = invokeUrl [ url: "https://business.arattai.in/api/v1/businesses/BUSINESS_ID" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://business.arattai.in/api/v1/businesses/BUSINESS_ID") .get() .addHeader("Arattai-CompanyId", "SOME_STRING_VALUE") .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { 'Arattai-CompanyId': 'SOME_STRING_VALUE', Authorization: 'Bearer REPLACE_BEARER_TOKEN' } }; fetch('https://business.arattai.in/api/v1/businesses/BUSINESS_ID', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("business.arattai.in") headers = { 'Arattai-CompanyId': "SOME_STRING_VALUE", 'Authorization': "Bearer REPLACE_BEARER_TOKEN" } conn.request("GET", "/api/v1/businesses/BUSINESS_ID", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "business.arattai.in", "port": null, "path": "/api/v1/businesses/BUSINESS_ID", "headers": { "Arattai-CompanyId": "SOME_STRING_VALUE", "Authorization": "Bearer REPLACE_BEARER_TOKEN" } }; 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();
var client = new RestClient("https://business.arattai.in/api/v1/businesses/BUSINESS_ID"); var request = new RestRequest(Method.GET); request.AddHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); request.AddHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); IRestResponse response = client.Execute(request);
var client = new HttpClient(); var request = new HttpRequestMessage { Method = HttpMethod.Get, RequestUri = new Uri("https://business.arattai.in/api/v1/businesses/BUSINESS_ID"), Headers = { { "Arattai-CompanyId", "SOME_STRING_VALUE" }, { "Authorization", "Bearer REPLACE_BEARER_TOKEN" }, }, }; using (var response = await client.SendAsync(request)) { response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body); }
package main import ( "fmt" "net/http" "io/ioutil" ) func main() { url := "https://business.arattai.in/api/v1/businesses/BUSINESS_ID" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Arattai-CompanyId", "SOME_STRING_VALUE") req.Header.Add("Authorization", "Bearer REPLACE_BEARER_TOKEN") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) }
const data = null; const xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === this.DONE) { console.log(this.responseText); } }); xhr.open("GET", "https://business.arattai.in/api/v1/businesses/BUSINESS_ID"); xhr.setRequestHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); xhr.setRequestHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); xhr.send(data);
curl --request GET \ --url https://business.arattai.in/api/v1/businesses/BUSINESS_ID \ --header 'Arattai-CompanyId: SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response Example

{ "url": "/api/v1/businesses/501000000002005", "type": "business", "data": { "id": "501000000002005", "display_name": "Zylker Retail", "status": "verified", "businessnumbers": [], "messagetemplates": [ { "id": "501000000008001", "name": "welcome_template", "description": "Welcome message sent to new customers", "type": "transaction" } ] } }
{ "code": "invalid_input", "message": "Either the input stream or parameter is invalid or absent" }
{ "code": "invalid_oauthtoken", "message": "You are not authenticated to do this operation" }
{ "code": "not_found", "message": "The requested resource was not found" }
{ "code": "invalid_method", "message": "Invalid method" }
{ "code": "too_many_requests", "message": "You have reached the maximum number of requests" }

Delete a Business AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Delete a business. A business cannot be deleted if it has linked business numbers. Delete all business numbers first before deleting the business.

Possible Error Codes

Error Code Description
invalid_operationBusiness has linked business numbers and cannot be deleted. Delete all associated business numbers first.

Rate Limits

  • Threshold Limit (Number of API calls allowed within a minute) - 10 requests per minute
  • Lock Period (Wait time before consecutive API requests) - 10 minutes

OAuth Scope : ArattaiBusiness.businesses.DELETE

Path Parameters

id
string
(Required)
Business ID. The unique identifier of the business to delete.

Headers

Arattai-CompanyId
string
(Required)
The unique identifier of the company for this request.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Arattai-CompanyId", "SOME_STRING_VALUE"); headers_data.put("Authorization", "Bearer REPLACE_BEARER_TOKEN"); response = invokeUrl [ url: "https://business.arattai.in/api/v1/businesses/BUSINESS_ID" type: DELETE headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://business.arattai.in/api/v1/businesses/BUSINESS_ID") .delete(null) .addHeader("Arattai-CompanyId", "SOME_STRING_VALUE") .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .build(); Response response = client.newCall(request).execute();
const options = { method: 'DELETE', headers: { 'Arattai-CompanyId': 'SOME_STRING_VALUE', Authorization: 'Bearer REPLACE_BEARER_TOKEN' } }; fetch('https://business.arattai.in/api/v1/businesses/BUSINESS_ID', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("business.arattai.in") headers = { 'Arattai-CompanyId': "SOME_STRING_VALUE", 'Authorization': "Bearer REPLACE_BEARER_TOKEN" } conn.request("DELETE", "/api/v1/businesses/BUSINESS_ID", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "DELETE", "hostname": "business.arattai.in", "port": null, "path": "/api/v1/businesses/BUSINESS_ID", "headers": { "Arattai-CompanyId": "SOME_STRING_VALUE", "Authorization": "Bearer REPLACE_BEARER_TOKEN" } }; 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();
var client = new RestClient("https://business.arattai.in/api/v1/businesses/BUSINESS_ID"); var request = new RestRequest(Method.DELETE); request.AddHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); request.AddHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); IRestResponse response = client.Execute(request);
var client = new HttpClient(); var request = new HttpRequestMessage { Method = HttpMethod.Delete, RequestUri = new Uri("https://business.arattai.in/api/v1/businesses/BUSINESS_ID"), Headers = { { "Arattai-CompanyId", "SOME_STRING_VALUE" }, { "Authorization", "Bearer REPLACE_BEARER_TOKEN" }, }, }; using (var response = await client.SendAsync(request)) { response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body); }
package main import ( "fmt" "net/http" "io/ioutil" ) func main() { url := "https://business.arattai.in/api/v1/businesses/BUSINESS_ID" req, _ := http.NewRequest("DELETE", url, nil) req.Header.Add("Arattai-CompanyId", "SOME_STRING_VALUE") req.Header.Add("Authorization", "Bearer REPLACE_BEARER_TOKEN") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) }
const data = null; const xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === this.DONE) { console.log(this.responseText); } }); xhr.open("DELETE", "https://business.arattai.in/api/v1/businesses/BUSINESS_ID"); xhr.setRequestHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); xhr.setRequestHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); xhr.send(data);
curl --request DELETE \ --url https://business.arattai.in/api/v1/businesses/BUSINESS_ID \ --header 'Arattai-CompanyId: SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response Example

{ "code": "invalid_input", "message": "Business has linked business numbers and cannot be deleted" }
{ "code": "invalid_oauthtoken", "message": "You are not authenticated to do this operation" }
{ "code": "invalid_method", "message": "Invalid method" }
{ "code": "too_many_requests", "message": "You have reached the maximum number of requests" }

Upload a logo image for a business. The uploaded logo is stored and a logo URL is returned, which can be used to download the logo via the GET /businesslogo/{base64Encoded} endpoint.

Rate Limits

  • Threshold Limit (Number of API calls allowed within a minute) - 10 requests per minute
  • Lock Period (Wait time before consecutive API requests) - 10 minutes

OAuth Scope : ArattaiBusiness.businesses.CREATE

Arguments

file
binary
(Required)
Image file to upload. Maximum 5 MB. Supported formats - jpeg, jpg, png, avif, webp.

Path Parameters

id
string
(Required)
Business ID.

Headers

Arattai-CompanyId
string
(Required)
The unique identifier of the company for this request.

Request Example

Click to copy
parameters_data = Map(); parameters_data.put("field1", "value1") parameters_data.put("field2", "value2") headers_data = Map(); headers_data.put("Arattai-CompanyId", "SOME_STRING_VALUE"); headers_data.put("Authorization", "Bearer REPLACE_BEARER_TOKEN"); response = invokeUrl [ url: "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/logo" type: POST headers: headers_data parameters: parameters_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("multipart/form-data; boundary=---011000010111000001101001"); RequestBody body = RequestBody.create(mediaType, "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field1\"\r\n\r\nvalue1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field2\"\r\n\r\nvalue2\r\n-----011000010111000001101001--\r\n"); Request request = new Request.Builder() .url("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/logo") .post(body) .addHeader("Arattai-CompanyId", "SOME_STRING_VALUE") .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .addHeader("content-type", "multipart/form-data; boundary=---011000010111000001101001") .build(); Response response = client.newCall(request).execute();
const form = new FormData(); form.append("field1", "value1"); form.append("field2", "value2"); const options = { method: 'POST', headers: { 'Arattai-CompanyId': 'SOME_STRING_VALUE', Authorization: 'Bearer REPLACE_BEARER_TOKEN', 'content-type': 'multipart/form-data; boundary=---011000010111000001101001' } }; options.body = form; fetch('https://business.arattai.in/api/v1/businesses/BUSINESS_ID/logo', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("business.arattai.in") payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field1\"\r\n\r\nvalue1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field2\"\r\n\r\nvalue2\r\n-----011000010111000001101001--\r\n" headers = { 'Arattai-CompanyId': "SOME_STRING_VALUE", 'Authorization': "Bearer REPLACE_BEARER_TOKEN", 'content-type': "multipart/form-data; boundary=---011000010111000001101001" } conn.request("POST", "/api/v1/businesses/BUSINESS_ID/logo", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "POST", "hostname": "business.arattai.in", "port": null, "path": "/api/v1/businesses/BUSINESS_ID/logo", "headers": { "Arattai-CompanyId": "SOME_STRING_VALUE", "Authorization": "Bearer REPLACE_BEARER_TOKEN", "content-type": "multipart/form-data; boundary=---011000010111000001101001" } }; 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("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field1\"\r\n\r\nvalue1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field2\"\r\n\r\nvalue2\r\n-----011000010111000001101001--\r\n"); req.end();
var client = new RestClient("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/logo"); var request = new RestRequest(Method.POST); request.AddHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); request.AddHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); request.AddHeader("content-type", "multipart/form-data; boundary=---011000010111000001101001"); request.AddParameter("multipart/form-data; boundary=---011000010111000001101001", "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field1\"\r\n\r\nvalue1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field2\"\r\n\r\nvalue2\r\n-----011000010111000001101001--\r\n", ParameterType.RequestBody); IRestResponse response = client.Execute(request);
var client = new HttpClient(); var request = new HttpRequestMessage { Method = HttpMethod.Post, RequestUri = new Uri("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/logo"), Headers = { { "Arattai-CompanyId", "SOME_STRING_VALUE" }, { "Authorization", "Bearer REPLACE_BEARER_TOKEN" }, }, Content = new MultipartFormDataContent { new StringContent("value1") { Headers = { ContentDisposition = new ContentDispositionHeaderValue("form-data") { Name = "field1", } } }, new StringContent("value2") { Headers = { ContentDisposition = new ContentDispositionHeaderValue("form-data") { Name = "field2", } } }, }, }; using (var response = await client.SendAsync(request)) { response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body); }
package main import ( "fmt" "strings" "net/http" "io/ioutil" ) func main() { url := "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/logo" payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field1\"\r\n\r\nvalue1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field2\"\r\n\r\nvalue2\r\n-----011000010111000001101001--\r\n") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Arattai-CompanyId", "SOME_STRING_VALUE") req.Header.Add("Authorization", "Bearer REPLACE_BEARER_TOKEN") req.Header.Add("content-type", "multipart/form-data; boundary=---011000010111000001101001") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) }
const data = new FormData(); data.append("field1", "value1"); data.append("field2", "value2"); const xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === this.DONE) { console.log(this.responseText); } }); xhr.open("POST", "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/logo"); xhr.setRequestHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); xhr.setRequestHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); xhr.send(data);
curl --request POST \ --url https://business.arattai.in/api/v1/businesses/BUSINESS_ID/logo \ --header 'Arattai-CompanyId: SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \ --header 'content-type: multipart/form-data' \ --form field1=value1 \ --form field2=value2

Body Parameters

Click to copy

Response Example

Remove the logo associated with a business.

Rate Limits

  • Threshold Limit (Number of API calls allowed within a minute) - 10 requests per minute
  • Lock Period (Wait time before consecutive API requests) - 10 minutes

OAuth Scope : ArattaiBusiness.businesses.DELETE

Path Parameters

id
string
(Required)
Business ID.

Headers

Arattai-CompanyId
string
(Required)
The unique identifier of the company for this request.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Arattai-CompanyId", "SOME_STRING_VALUE"); headers_data.put("Authorization", "Bearer REPLACE_BEARER_TOKEN"); response = invokeUrl [ url: "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/logo" type: DELETE headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/logo") .delete(null) .addHeader("Arattai-CompanyId", "SOME_STRING_VALUE") .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .build(); Response response = client.newCall(request).execute();
const options = { method: 'DELETE', headers: { 'Arattai-CompanyId': 'SOME_STRING_VALUE', Authorization: 'Bearer REPLACE_BEARER_TOKEN' } }; fetch('https://business.arattai.in/api/v1/businesses/BUSINESS_ID/logo', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("business.arattai.in") headers = { 'Arattai-CompanyId': "SOME_STRING_VALUE", 'Authorization': "Bearer REPLACE_BEARER_TOKEN" } conn.request("DELETE", "/api/v1/businesses/BUSINESS_ID/logo", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "DELETE", "hostname": "business.arattai.in", "port": null, "path": "/api/v1/businesses/BUSINESS_ID/logo", "headers": { "Arattai-CompanyId": "SOME_STRING_VALUE", "Authorization": "Bearer REPLACE_BEARER_TOKEN" } }; 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();
var client = new RestClient("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/logo"); var request = new RestRequest(Method.DELETE); request.AddHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); request.AddHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); IRestResponse response = client.Execute(request);
var client = new HttpClient(); var request = new HttpRequestMessage { Method = HttpMethod.Delete, RequestUri = new Uri("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/logo"), Headers = { { "Arattai-CompanyId", "SOME_STRING_VALUE" }, { "Authorization", "Bearer REPLACE_BEARER_TOKEN" }, }, }; using (var response = await client.SendAsync(request)) { response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body); }
package main import ( "fmt" "net/http" "io/ioutil" ) func main() { url := "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/logo" req, _ := http.NewRequest("DELETE", url, nil) req.Header.Add("Arattai-CompanyId", "SOME_STRING_VALUE") req.Header.Add("Authorization", "Bearer REPLACE_BEARER_TOKEN") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) }
const data = null; const xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === this.DONE) { console.log(this.responseText); } }); xhr.open("DELETE", "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/logo"); xhr.setRequestHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); xhr.setRequestHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); xhr.send(data);
curl --request DELETE \ --url https://business.arattai.in/api/v1/businesses/BUSINESS_ID/logo \ --header 'Arattai-CompanyId: SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response Example

Download the business logo as a binary image stream. The {base64Encoded} token is the path segment returned in the logo_url field of the POST /businesses/{id}/logo response.

⚠
NoteArattai-CompanyId is not required for direct logo access. There is no GET /businesses/{id}/logo convenience endpoint. Always use the logo_url returned by the upload endpoint.

Rate Limits
  • Threshold Limit (Number of API calls allowed within a minute) - 30 requests per minute
  • Lock Period (Wait time before consecutive API requests) - 5 minutes

OAuth Scope : ArattaiBusiness.businesses.READ

Path Parameters

base64Encoded
string
(Required)
The base64-encoded token from the logo_url field returned by the upload logo endpoint.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Authorization", "Bearer REPLACE_BEARER_TOKEN"); response = invokeUrl [ url: "https://business.arattai.in/api/v1/businesslogo/YWJjMTIzZGVmNDU2" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://business.arattai.in/api/v1/businesslogo/YWJjMTIzZGVmNDU2") .get() .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .build(); Response response = client.newCall(request).execute();
const options = {method: 'GET', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'}}; fetch('https://business.arattai.in/api/v1/businesslogo/YWJjMTIzZGVmNDU2', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("business.arattai.in") headers = { 'Authorization': "Bearer REPLACE_BEARER_TOKEN" } conn.request("GET", "/api/v1/businesslogo/YWJjMTIzZGVmNDU2", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "business.arattai.in", "port": null, "path": "/api/v1/businesslogo/YWJjMTIzZGVmNDU2", "headers": { "Authorization": "Bearer REPLACE_BEARER_TOKEN" } }; 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();
var client = new RestClient("https://business.arattai.in/api/v1/businesslogo/YWJjMTIzZGVmNDU2"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); IRestResponse response = client.Execute(request);
var client = new HttpClient(); var request = new HttpRequestMessage { Method = HttpMethod.Get, RequestUri = new Uri("https://business.arattai.in/api/v1/businesslogo/YWJjMTIzZGVmNDU2"), Headers = { { "Authorization", "Bearer REPLACE_BEARER_TOKEN" }, }, }; using (var response = await client.SendAsync(request)) { response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body); }
package main import ( "fmt" "net/http" "io/ioutil" ) func main() { url := "https://business.arattai.in/api/v1/businesslogo/YWJjMTIzZGVmNDU2" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Authorization", "Bearer REPLACE_BEARER_TOKEN") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) }
const data = null; const xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === this.DONE) { console.log(this.responseText); } }); xhr.open("GET", "https://business.arattai.in/api/v1/businesslogo/YWJjMTIzZGVmNDU2"); xhr.setRequestHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); xhr.send(data);
curl --request GET \ --url https://business.arattai.in/api/v1/businesslogo/YWJjMTIzZGVmNDU2 \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response Example

Upload Business Verification Document AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Upload a verification document for a business. One document per (businessId, type) combination is stored. If a document already exists for the specified type, re-uploading replaces it (upsert behavior).

Legitimacy documents: gst, msme, fssai, udyam, pan, shops_establishment, incorporation_certificate, utility_bill.

Connection-proof documents: representative_id_front, representative_id_back, authorization_letter.

Rate Limits

  • Threshold Limit (Number of API calls allowed within a minute) - 20 requests per minute
  • Lock Period (Wait time before consecutive API requests) - 10 minutes

OAuth Scope : ArattaiBusiness.businesses.CREATE

Arguments

file
binary
(Required)
Document or image file to upload. Maximum 10 MB. Supported formats - jpeg, jpg, png, gif, avif, webp, pdf, docx.

Path Parameters

id
string
(Required)
Business ID.
type
string
(Required)
Verification document type.
Allowed values: gst, msme, fssai, udyam, pan, shops_establishment, incorporation_certificate, utility_bill, representative_id_front, representative_id_back, authorization_letter.

Headers

Arattai-CompanyId
string
(Required)
The unique identifier of the company for this request.

Request Example

Click to copy
parameters_data = Map(); parameters_data.put("field1", "value1") parameters_data.put("field2", "value2") headers_data = Map(); headers_data.put("Arattai-CompanyId", "SOME_STRING_VALUE"); headers_data.put("Authorization", "Bearer REPLACE_BEARER_TOKEN"); response = invokeUrl [ url: "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst" type: POST headers: headers_data parameters: parameters_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("multipart/form-data; boundary=---011000010111000001101001"); RequestBody body = RequestBody.create(mediaType, "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field1\"\r\n\r\nvalue1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field2\"\r\n\r\nvalue2\r\n-----011000010111000001101001--\r\n"); Request request = new Request.Builder() .url("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst") .post(body) .addHeader("Arattai-CompanyId", "SOME_STRING_VALUE") .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .addHeader("content-type", "multipart/form-data; boundary=---011000010111000001101001") .build(); Response response = client.newCall(request).execute();
const form = new FormData(); form.append("field1", "value1"); form.append("field2", "value2"); const options = { method: 'POST', headers: { 'Arattai-CompanyId': 'SOME_STRING_VALUE', Authorization: 'Bearer REPLACE_BEARER_TOKEN', 'content-type': 'multipart/form-data; boundary=---011000010111000001101001' } }; options.body = form; fetch('https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("business.arattai.in") payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field1\"\r\n\r\nvalue1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field2\"\r\n\r\nvalue2\r\n-----011000010111000001101001--\r\n" headers = { 'Arattai-CompanyId': "SOME_STRING_VALUE", 'Authorization': "Bearer REPLACE_BEARER_TOKEN", 'content-type': "multipart/form-data; boundary=---011000010111000001101001" } conn.request("POST", "/api/v1/businesses/BUSINESS_ID/verificationfiles/gst", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "POST", "hostname": "business.arattai.in", "port": null, "path": "/api/v1/businesses/BUSINESS_ID/verificationfiles/gst", "headers": { "Arattai-CompanyId": "SOME_STRING_VALUE", "Authorization": "Bearer REPLACE_BEARER_TOKEN", "content-type": "multipart/form-data; boundary=---011000010111000001101001" } }; 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("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field1\"\r\n\r\nvalue1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field2\"\r\n\r\nvalue2\r\n-----011000010111000001101001--\r\n"); req.end();
var client = new RestClient("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst"); var request = new RestRequest(Method.POST); request.AddHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); request.AddHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); request.AddHeader("content-type", "multipart/form-data; boundary=---011000010111000001101001"); request.AddParameter("multipart/form-data; boundary=---011000010111000001101001", "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field1\"\r\n\r\nvalue1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field2\"\r\n\r\nvalue2\r\n-----011000010111000001101001--\r\n", ParameterType.RequestBody); IRestResponse response = client.Execute(request);
var client = new HttpClient(); var request = new HttpRequestMessage { Method = HttpMethod.Post, RequestUri = new Uri("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst"), Headers = { { "Arattai-CompanyId", "SOME_STRING_VALUE" }, { "Authorization", "Bearer REPLACE_BEARER_TOKEN" }, }, Content = new MultipartFormDataContent { new StringContent("value1") { Headers = { ContentDisposition = new ContentDispositionHeaderValue("form-data") { Name = "field1", } } }, new StringContent("value2") { Headers = { ContentDisposition = new ContentDispositionHeaderValue("form-data") { Name = "field2", } } }, }, }; using (var response = await client.SendAsync(request)) { response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body); }
package main import ( "fmt" "strings" "net/http" "io/ioutil" ) func main() { url := "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst" payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field1\"\r\n\r\nvalue1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field2\"\r\n\r\nvalue2\r\n-----011000010111000001101001--\r\n") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Arattai-CompanyId", "SOME_STRING_VALUE") req.Header.Add("Authorization", "Bearer REPLACE_BEARER_TOKEN") req.Header.Add("content-type", "multipart/form-data; boundary=---011000010111000001101001") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) }
const data = new FormData(); data.append("field1", "value1"); data.append("field2", "value2"); const xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === this.DONE) { console.log(this.responseText); } }); xhr.open("POST", "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst"); xhr.setRequestHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); xhr.setRequestHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); xhr.send(data);
curl --request POST \ --url https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst \ --header 'Arattai-CompanyId: SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \ --header 'content-type: multipart/form-data' \ --form field1=value1 \ --form field2=value2

Body Parameters

Click to copy
{ "file": "<binary document or image file>" }

Response Example

{ "id": "501000000003001", "type": "gst", "content_type": "application/pdf", "file_name": "gst_certificate.pdf", "status": "unverified", "download_url": "/api/v1/verificationfiles/YWJjMTIzZGVmNDU2", "created_time": "1768992318139", "modified_time": "1768992318139" }
{ "id": "501000000003001", "type": "gst", "content_type": "application/pdf", "file_name": "gst_certificate.pdf", "status": "unverified", "download_url": "/api/v1/verificationfiles/YWJjMTIzZGVmNDU2", "created_time": "1768992318139", "modified_time": "1768992318139" }
{ "code": "invalid_input", "message": "Either the input stream or parameter is invalid or absent" }
{ "code": "file_upload_required", "message": "A file upload is required for this operation" }
{ "code": "invalid_oauthtoken", "message": "You are not authenticated to do this operation" }
{ "code": "invalid_method", "message": "Invalid method" }

Update Business Verification Document AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Replace the file for an existing verification document for a business.

Rate Limits

  • Threshold Limit (Number of API calls allowed within a minute) - 20 requests per minute
  • Lock Period (Wait time before consecutive API requests) - 10 minutes

OAuth Scope : ArattaiBusiness.businesses.UPDATE

Arguments

file
binary
(Required)
Replacement document file. Maximum 10 MB. Supported formats - jpeg, jpg, png, gif, avif, webp, pdf, docx.

Path Parameters

id
string
(Required)
Business ID.
type
string
(Required)
Verification document type to update.
Allowed values: gst, msme, fssai, udyam, pan, shops_establishment, incorporation_certificate, utility_bill, representative_id_front, representative_id_back, authorization_letter.

Headers

Arattai-CompanyId
string
(Required)
The unique identifier of the company for this request.

Request Example

Click to copy
parameters_data = Map(); parameters_data.put("field1", "value1") parameters_data.put("field2", "value2") headers_data = Map(); headers_data.put("Arattai-CompanyId", "SOME_STRING_VALUE"); headers_data.put("Authorization", "Bearer REPLACE_BEARER_TOKEN"); response = invokeUrl [ url: "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst" type: PATCH headers: headers_data parameters: parameters_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); MediaType mediaType = MediaType.parse("multipart/form-data; boundary=---011000010111000001101001"); RequestBody body = RequestBody.create(mediaType, "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field1\"\r\n\r\nvalue1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field2\"\r\n\r\nvalue2\r\n-----011000010111000001101001--\r\n"); Request request = new Request.Builder() .url("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst") .patch(body) .addHeader("Arattai-CompanyId", "SOME_STRING_VALUE") .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .addHeader("content-type", "multipart/form-data; boundary=---011000010111000001101001") .build(); Response response = client.newCall(request).execute();
const form = new FormData(); form.append("field1", "value1"); form.append("field2", "value2"); const options = { method: 'PATCH', headers: { 'Arattai-CompanyId': 'SOME_STRING_VALUE', Authorization: 'Bearer REPLACE_BEARER_TOKEN', 'content-type': 'multipart/form-data; boundary=---011000010111000001101001' } }; options.body = form; fetch('https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("business.arattai.in") payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field1\"\r\n\r\nvalue1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field2\"\r\n\r\nvalue2\r\n-----011000010111000001101001--\r\n" headers = { 'Arattai-CompanyId': "SOME_STRING_VALUE", 'Authorization': "Bearer REPLACE_BEARER_TOKEN", 'content-type': "multipart/form-data; boundary=---011000010111000001101001" } conn.request("PATCH", "/api/v1/businesses/BUSINESS_ID/verificationfiles/gst", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "PATCH", "hostname": "business.arattai.in", "port": null, "path": "/api/v1/businesses/BUSINESS_ID/verificationfiles/gst", "headers": { "Arattai-CompanyId": "SOME_STRING_VALUE", "Authorization": "Bearer REPLACE_BEARER_TOKEN", "content-type": "multipart/form-data; boundary=---011000010111000001101001" } }; 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("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field1\"\r\n\r\nvalue1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field2\"\r\n\r\nvalue2\r\n-----011000010111000001101001--\r\n"); req.end();
var client = new RestClient("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst"); var request = new RestRequest(Method.PATCH); request.AddHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); request.AddHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); request.AddHeader("content-type", "multipart/form-data; boundary=---011000010111000001101001"); request.AddParameter("multipart/form-data; boundary=---011000010111000001101001", "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field1\"\r\n\r\nvalue1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field2\"\r\n\r\nvalue2\r\n-----011000010111000001101001--\r\n", ParameterType.RequestBody); IRestResponse response = client.Execute(request);
var client = new HttpClient(); var request = new HttpRequestMessage { Method = HttpMethod.Patch, RequestUri = new Uri("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst"), Headers = { { "Arattai-CompanyId", "SOME_STRING_VALUE" }, { "Authorization", "Bearer REPLACE_BEARER_TOKEN" }, }, Content = new MultipartFormDataContent { new StringContent("value1") { Headers = { ContentDisposition = new ContentDispositionHeaderValue("form-data") { Name = "field1", } } }, new StringContent("value2") { Headers = { ContentDisposition = new ContentDispositionHeaderValue("form-data") { Name = "field2", } } }, }, }; using (var response = await client.SendAsync(request)) { response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body); }
package main import ( "fmt" "strings" "net/http" "io/ioutil" ) func main() { url := "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst" payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field1\"\r\n\r\nvalue1\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"field2\"\r\n\r\nvalue2\r\n-----011000010111000001101001--\r\n") req, _ := http.NewRequest("PATCH", url, payload) req.Header.Add("Arattai-CompanyId", "SOME_STRING_VALUE") req.Header.Add("Authorization", "Bearer REPLACE_BEARER_TOKEN") req.Header.Add("content-type", "multipart/form-data; boundary=---011000010111000001101001") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) }
const data = new FormData(); data.append("field1", "value1"); data.append("field2", "value2"); const xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === this.DONE) { console.log(this.responseText); } }); xhr.open("PATCH", "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst"); xhr.setRequestHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); xhr.setRequestHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); xhr.send(data);
curl --request PATCH \ --url https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst \ --header 'Arattai-CompanyId: SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \ --header 'content-type: multipart/form-data' \ --form field1=value1 \ --form field2=value2

Body Parameters

Click to copy
{ "file": "<binary replacement document>" }

Response Example

{ "id": "501000000003001", "type": "gst", "content_type": "application/pdf", "file_name": "gst_certificate_v2.pdf", "status": "unverified", "download_url": "/api/v1/verificationfiles/YWJjMTIzZGVmNDU2", "created_time": "1768992318139", "modified_time": "1769155408184" }
{ "code": "invalid_input", "message": "Either the input stream or parameter is invalid or absent" }
{ "code": "invalid_oauthtoken", "message": "You are not authenticated to do this operation" }
{ "code": "not_found", "message": "The requested resource was not found" }
{ "code": "invalid_method", "message": "Invalid method" }

Delete Business Verification Document AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Delete a specific verification document from a business.

Rate Limits

  • Threshold Limit (Number of API calls allowed within a minute) - 20 requests per minute
  • Lock Period (Wait time before consecutive API requests) - 10 minutes

OAuth Scope : ArattaiBusiness.businesses.DELETE

Path Parameters

id
string
(Required)
Business ID.
type
string
(Required)
Verification document type to delete.
Allowed values: gst, msme, fssai, udyam, pan, shops_establishment, incorporation_certificate, utility_bill, representative_id_front, representative_id_back, authorization_letter.

Headers

Arattai-CompanyId
string
(Required)
The unique identifier of the company for this request.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Arattai-CompanyId", "SOME_STRING_VALUE"); headers_data.put("Authorization", "Bearer REPLACE_BEARER_TOKEN"); response = invokeUrl [ url: "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst" type: DELETE headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst") .delete(null) .addHeader("Arattai-CompanyId", "SOME_STRING_VALUE") .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .build(); Response response = client.newCall(request).execute();
const options = { method: 'DELETE', headers: { 'Arattai-CompanyId': 'SOME_STRING_VALUE', Authorization: 'Bearer REPLACE_BEARER_TOKEN' } }; fetch('https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("business.arattai.in") headers = { 'Arattai-CompanyId': "SOME_STRING_VALUE", 'Authorization': "Bearer REPLACE_BEARER_TOKEN" } conn.request("DELETE", "/api/v1/businesses/BUSINESS_ID/verificationfiles/gst", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "DELETE", "hostname": "business.arattai.in", "port": null, "path": "/api/v1/businesses/BUSINESS_ID/verificationfiles/gst", "headers": { "Arattai-CompanyId": "SOME_STRING_VALUE", "Authorization": "Bearer REPLACE_BEARER_TOKEN" } }; 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();
var client = new RestClient("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst"); var request = new RestRequest(Method.DELETE); request.AddHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); request.AddHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); IRestResponse response = client.Execute(request);
var client = new HttpClient(); var request = new HttpRequestMessage { Method = HttpMethod.Delete, RequestUri = new Uri("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst"), Headers = { { "Arattai-CompanyId", "SOME_STRING_VALUE" }, { "Authorization", "Bearer REPLACE_BEARER_TOKEN" }, }, }; using (var response = await client.SendAsync(request)) { response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body); }
package main import ( "fmt" "net/http" "io/ioutil" ) func main() { url := "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst" req, _ := http.NewRequest("DELETE", url, nil) req.Header.Add("Arattai-CompanyId", "SOME_STRING_VALUE") req.Header.Add("Authorization", "Bearer REPLACE_BEARER_TOKEN") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) }
const data = null; const xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === this.DONE) { console.log(this.responseText); } }); xhr.open("DELETE", "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst"); xhr.setRequestHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); xhr.setRequestHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); xhr.send(data);
curl --request DELETE \ --url https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles/gst \ --header 'Arattai-CompanyId: SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response Example

{ "code": "invalid_input", "message": "Either the input stream or parameter is invalid or absent" }
{ "code": "invalid_oauthtoken", "message": "You are not authenticated to do this operation" }
{ "code": "invalid_method", "message": "Invalid method" }

List Business Verification Documents AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Retrieve all verification documents uploaded for a business.

Rate Limits

  • Threshold Limit (Number of API calls allowed within a minute) - 30 requests per minute
  • Lock Period (Wait time before consecutive API requests) - 10 minutes

OAuth Scope : ArattaiBusiness.businesses.READ

Path Parameters

id
string
(Required)
Business ID.

Headers

Arattai-CompanyId
string
(Required)
The unique identifier of the company for this request.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Arattai-CompanyId", "SOME_STRING_VALUE"); headers_data.put("Authorization", "Bearer REPLACE_BEARER_TOKEN"); response = invokeUrl [ url: "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles") .get() .addHeader("Arattai-CompanyId", "SOME_STRING_VALUE") .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { 'Arattai-CompanyId': 'SOME_STRING_VALUE', Authorization: 'Bearer REPLACE_BEARER_TOKEN' } }; fetch('https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("business.arattai.in") headers = { 'Arattai-CompanyId': "SOME_STRING_VALUE", 'Authorization': "Bearer REPLACE_BEARER_TOKEN" } conn.request("GET", "/api/v1/businesses/BUSINESS_ID/verificationfiles", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "business.arattai.in", "port": null, "path": "/api/v1/businesses/BUSINESS_ID/verificationfiles", "headers": { "Arattai-CompanyId": "SOME_STRING_VALUE", "Authorization": "Bearer REPLACE_BEARER_TOKEN" } }; 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();
var client = new RestClient("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles"); var request = new RestRequest(Method.GET); request.AddHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); request.AddHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); IRestResponse response = client.Execute(request);
var client = new HttpClient(); var request = new HttpRequestMessage { Method = HttpMethod.Get, RequestUri = new Uri("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles"), Headers = { { "Arattai-CompanyId", "SOME_STRING_VALUE" }, { "Authorization", "Bearer REPLACE_BEARER_TOKEN" }, }, }; using (var response = await client.SendAsync(request)) { response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body); }
package main import ( "fmt" "net/http" "io/ioutil" ) func main() { url := "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Arattai-CompanyId", "SOME_STRING_VALUE") req.Header.Add("Authorization", "Bearer REPLACE_BEARER_TOKEN") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) }
const data = null; const xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === this.DONE) { console.log(this.responseText); } }); xhr.open("GET", "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles"); xhr.setRequestHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); xhr.setRequestHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); xhr.send(data);
curl --request GET \ --url https://business.arattai.in/api/v1/businesses/BUSINESS_ID/verificationfiles \ --header 'Arattai-CompanyId: SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response Example

[ { "id": "501000000003001", "type": "gst", "content_type": "application/pdf", "file_name": "gst_certificate.pdf", "status": "verified", "download_url": "/api/v1/verificationfiles/YWJjMTIzZGVmNDU2", "created_time": "1768992318139", "modified_time": "1769155408184" } ]
{ "code": "invalid_input", "message": "Either the input stream or parameter is invalid or absent" }
{ "code": "invalid_oauthtoken", "message": "You are not authenticated to do this operation" }
{ "code": "invalid_method", "message": "Invalid method" }

Get Business Summary AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Returns the total business count and a breakdown by verification status, scoped to the current company. All 4 status keys (unverified, in_progress, verified, rejected) are always present in by_status, even when the count is 0.

Rate Limits

  • Threshold Limit (Number of API calls allowed within a minute) - 30 requests per minute
  • Lock Period (Wait time before consecutive API requests) - 10 minutes

OAuth Scope : ArattaiBusiness.businesses.READ

Headers

Arattai-CompanyId
string
(Required)
The unique identifier of the company for this request.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Arattai-CompanyId", "SOME_STRING_VALUE"); headers_data.put("Authorization", "Bearer REPLACE_BEARER_TOKEN"); response = invokeUrl [ url: "https://business.arattai.in/api/v1/businesssummary" type: GET headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://business.arattai.in/api/v1/businesssummary") .get() .addHeader("Arattai-CompanyId", "SOME_STRING_VALUE") .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .build(); Response response = client.newCall(request).execute();
const options = { method: 'GET', headers: { 'Arattai-CompanyId': 'SOME_STRING_VALUE', Authorization: 'Bearer REPLACE_BEARER_TOKEN' } }; fetch('https://business.arattai.in/api/v1/businesssummary', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("business.arattai.in") headers = { 'Arattai-CompanyId': "SOME_STRING_VALUE", 'Authorization': "Bearer REPLACE_BEARER_TOKEN" } conn.request("GET", "/api/v1/businesssummary", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "GET", "hostname": "business.arattai.in", "port": null, "path": "/api/v1/businesssummary", "headers": { "Arattai-CompanyId": "SOME_STRING_VALUE", "Authorization": "Bearer REPLACE_BEARER_TOKEN" } }; 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();
var client = new RestClient("https://business.arattai.in/api/v1/businesssummary"); var request = new RestRequest(Method.GET); request.AddHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); request.AddHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); IRestResponse response = client.Execute(request);
var client = new HttpClient(); var request = new HttpRequestMessage { Method = HttpMethod.Get, RequestUri = new Uri("https://business.arattai.in/api/v1/businesssummary"), Headers = { { "Arattai-CompanyId", "SOME_STRING_VALUE" }, { "Authorization", "Bearer REPLACE_BEARER_TOKEN" }, }, }; using (var response = await client.SendAsync(request)) { response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body); }
package main import ( "fmt" "net/http" "io/ioutil" ) func main() { url := "https://business.arattai.in/api/v1/businesssummary" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Arattai-CompanyId", "SOME_STRING_VALUE") req.Header.Add("Authorization", "Bearer REPLACE_BEARER_TOKEN") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) }
const data = null; const xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === this.DONE) { console.log(this.responseText); } }); xhr.open("GET", "https://business.arattai.in/api/v1/businesssummary"); xhr.setRequestHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); xhr.setRequestHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); xhr.send(data);
curl --request GET \ --url https://business.arattai.in/api/v1/businesssummary \ --header 'Arattai-CompanyId: SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response Example

{ "url": "/api/v1/businesssummary", "data": { "total": 8, "by_status": { "unverified": 2, "in_progress": 1, "verified": 4, "rejected": 1 } } }
{ "code": "invalid_input", "message": "Either the input stream or parameter is invalid or absent" }
{ "code": "invalid_oauthtoken", "message": "You are not authenticated to do this operation" }
{ "code": "invalid_method", "message": "Invalid method" }
{ "code": "too_many_requests", "message": "You have reached the maximum number of requests" }

Submit Business for Verification AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Submit a business for admin review. This is the only way admin review is triggered; business creation does not trigger it automatically.

Eligible statuses: unverified (first-time submission) or rejected (resubmission). Any other status returns 403.

Before submitting, all of the following must already be set on the business, otherwise the request is rejected with 403 invalid_operation listing every missing item in one response:

  • legal_name, contact_email, address, entity_type, entity_sub_type, registration_id, representative_name
  • At least one legitimacy document uploaded
  • All 3 connection documents uploaded (representative_id_front, representative_id_back, authorization_letter)
⚠
NoteA linked business number is not required. A business can be verified before it has any phone numbers attached.


Rate Limits
  • Threshold Limit (Number of API calls allowed within a minute) - 10 requests per minute
  • Lock Period (Wait time before consecutive API requests) - 10 minutes

OAuth Scope : ArattaiBusiness.businesses.CREATE

Path Parameters

id
string
(Required)
Business ID. The unique identifier of the business to submit for verification.

Headers

Arattai-CompanyId
string
(Required)
The unique identifier of the company for this request.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Arattai-CompanyId", "SOME_STRING_VALUE"); headers_data.put("Authorization", "Bearer REPLACE_BEARER_TOKEN"); response = invokeUrl [ url: "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/submit" type: POST headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/submit") .post(null) .addHeader("Arattai-CompanyId", "SOME_STRING_VALUE") .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .build(); Response response = client.newCall(request).execute();
const options = { method: 'POST', headers: { 'Arattai-CompanyId': 'SOME_STRING_VALUE', Authorization: 'Bearer REPLACE_BEARER_TOKEN' } }; fetch('https://business.arattai.in/api/v1/businesses/BUSINESS_ID/submit', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("business.arattai.in") headers = { 'Arattai-CompanyId': "SOME_STRING_VALUE", 'Authorization': "Bearer REPLACE_BEARER_TOKEN" } conn.request("POST", "/api/v1/businesses/BUSINESS_ID/submit", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "POST", "hostname": "business.arattai.in", "port": null, "path": "/api/v1/businesses/BUSINESS_ID/submit", "headers": { "Arattai-CompanyId": "SOME_STRING_VALUE", "Authorization": "Bearer REPLACE_BEARER_TOKEN" } }; 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();
var client = new RestClient("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/submit"); var request = new RestRequest(Method.POST); request.AddHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); request.AddHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); IRestResponse response = client.Execute(request);
var client = new HttpClient(); var request = new HttpRequestMessage { Method = HttpMethod.Post, RequestUri = new Uri("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/submit"), Headers = { { "Arattai-CompanyId", "SOME_STRING_VALUE" }, { "Authorization", "Bearer REPLACE_BEARER_TOKEN" }, }, }; using (var response = await client.SendAsync(request)) { response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body); }
package main import ( "fmt" "net/http" "io/ioutil" ) func main() { url := "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/submit" req, _ := http.NewRequest("POST", url, nil) req.Header.Add("Arattai-CompanyId", "SOME_STRING_VALUE") req.Header.Add("Authorization", "Bearer REPLACE_BEARER_TOKEN") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) }
const data = null; const xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === this.DONE) { console.log(this.responseText); } }); xhr.open("POST", "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/submit"); xhr.setRequestHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); xhr.setRequestHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); xhr.send(data);
curl --request POST \ --url https://business.arattai.in/api/v1/businesses/BUSINESS_ID/submit \ --header 'Arattai-CompanyId: SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response Example

{ "code": "invalid_input", "message": "Either the input stream or parameter is invalid or absent" }
{ "code": "invalid_oauthtoken", "message": "You are not authenticated to do this operation" }
{ "code": "invalid_operation", "message": "Only unverified or rejected businesses can be submitted for verification" }
{ "code": "invalid_operation", "message": "Missing required fields for submission: registration_id, legitimacy_documents" }
{ "code": "invalid_method", "message": "Invalid method" }
{ "code": "too_many_requests", "message": "You have reached the maximum number of requests" }

Revoke Business Verification Submission AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Withdraw a business's pending verification submission. Only allowed while status is in_progress. Any other status returns 403.

On success, business status reverts to unverified and the pending admin review is cancelled asynchronously.

Rate Limits

  • Threshold Limit (Number of API calls allowed within a minute) - 10 requests per minute
  • Lock Period (Wait time before consecutive API requests) - 10 minutes

OAuth Scope : ArattaiBusiness.businesses.CREATE

Path Parameters

id
string
(Required)
Business reference ID.

Headers

Arattai-CompanyId
string
(Required)
The unique identifier of the company for this request.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Arattai-CompanyId", "SOME_STRING_VALUE"); headers_data.put("Authorization", "Bearer REPLACE_BEARER_TOKEN"); response = invokeUrl [ url: "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/revoke" type: POST headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/revoke") .post(null) .addHeader("Arattai-CompanyId", "SOME_STRING_VALUE") .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .build(); Response response = client.newCall(request).execute();
const options = { method: 'POST', headers: { 'Arattai-CompanyId': 'SOME_STRING_VALUE', Authorization: 'Bearer REPLACE_BEARER_TOKEN' } }; fetch('https://business.arattai.in/api/v1/businesses/BUSINESS_ID/revoke', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("business.arattai.in") headers = { 'Arattai-CompanyId': "SOME_STRING_VALUE", 'Authorization': "Bearer REPLACE_BEARER_TOKEN" } conn.request("POST", "/api/v1/businesses/BUSINESS_ID/revoke", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "POST", "hostname": "business.arattai.in", "port": null, "path": "/api/v1/businesses/BUSINESS_ID/revoke", "headers": { "Arattai-CompanyId": "SOME_STRING_VALUE", "Authorization": "Bearer REPLACE_BEARER_TOKEN" } }; 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();
var client = new RestClient("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/revoke"); var request = new RestRequest(Method.POST); request.AddHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); request.AddHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); IRestResponse response = client.Execute(request);
var client = new HttpClient(); var request = new HttpRequestMessage { Method = HttpMethod.Post, RequestUri = new Uri("https://business.arattai.in/api/v1/businesses/BUSINESS_ID/revoke"), Headers = { { "Arattai-CompanyId", "SOME_STRING_VALUE" }, { "Authorization", "Bearer REPLACE_BEARER_TOKEN" }, }, }; using (var response = await client.SendAsync(request)) { response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body); }
package main import ( "fmt" "net/http" "io/ioutil" ) func main() { url := "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/revoke" req, _ := http.NewRequest("POST", url, nil) req.Header.Add("Arattai-CompanyId", "SOME_STRING_VALUE") req.Header.Add("Authorization", "Bearer REPLACE_BEARER_TOKEN") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) }
const data = null; const xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === this.DONE) { console.log(this.responseText); } }); xhr.open("POST", "https://business.arattai.in/api/v1/businesses/BUSINESS_ID/revoke"); xhr.setRequestHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); xhr.setRequestHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); xhr.send(data);
curl --request POST \ --url https://business.arattai.in/api/v1/businesses/BUSINESS_ID/revoke \ --header 'Arattai-CompanyId: SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response Example

{ "code": "invalid_input", "message": "Either the input stream or parameter is invalid or absent" }
{ "code": "invalid_oauthtoken", "message": "You are not authenticated to do this operation" }
{ "code": "invalid_operation", "message": "Only businesses with a pending verification submission can be withdrawn" }
{ "code": "invalid_method", "message": "Invalid method" }
{ "code": "too_many_requests", "message": "You have reached the maximum number of requests" }

Create a Verified Business AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Create a business that is immediately verified, skipping the normal submit-for-review/admin-approval flow entirely.

Precondition: The current company (identified by Arattai-CompanyId) must itself have status verified. Otherwise returns 403 invalid_operation.

⚠
NoteThis endpoint takes no request body. Every business field is copied directly from the current company. Every company verification document is cloned to the new business. No file/multipart support. Use POST /businesses/{id}/logo afterward to add a logo.

Rate Limits
  • Threshold Limit (Number of API calls allowed within a minute) - 10 requests per minute
  • Lock Period (Wait time before consecutive API requests) - 10 minutes

OAuth Scope : ArattaiBusiness.businesses.CREATE

Headers

Arattai-CompanyId
string
(Required)
The unique identifier of the company for this request.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Arattai-CompanyId", "SOME_STRING_VALUE"); headers_data.put("Authorization", "Bearer REPLACE_BEARER_TOKEN"); response = invokeUrl [ url: "https://business.arattai.in/api/v1/verifiedbusinesses" type: POST headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://business.arattai.in/api/v1/verifiedbusinesses") .post(null) .addHeader("Arattai-CompanyId", "SOME_STRING_VALUE") .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .build(); Response response = client.newCall(request).execute();
const options = { method: 'POST', headers: { 'Arattai-CompanyId': 'SOME_STRING_VALUE', Authorization: 'Bearer REPLACE_BEARER_TOKEN' } }; fetch('https://business.arattai.in/api/v1/verifiedbusinesses', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("business.arattai.in") headers = { 'Arattai-CompanyId': "SOME_STRING_VALUE", 'Authorization': "Bearer REPLACE_BEARER_TOKEN" } conn.request("POST", "/api/v1/verifiedbusinesses", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "POST", "hostname": "business.arattai.in", "port": null, "path": "/api/v1/verifiedbusinesses", "headers": { "Arattai-CompanyId": "SOME_STRING_VALUE", "Authorization": "Bearer REPLACE_BEARER_TOKEN" } }; 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();
var client = new RestClient("https://business.arattai.in/api/v1/verifiedbusinesses"); var request = new RestRequest(Method.POST); request.AddHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); request.AddHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); IRestResponse response = client.Execute(request);
var client = new HttpClient(); var request = new HttpRequestMessage { Method = HttpMethod.Post, RequestUri = new Uri("https://business.arattai.in/api/v1/verifiedbusinesses"), Headers = { { "Arattai-CompanyId", "SOME_STRING_VALUE" }, { "Authorization", "Bearer REPLACE_BEARER_TOKEN" }, }, }; using (var response = await client.SendAsync(request)) { response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body); }
package main import ( "fmt" "net/http" "io/ioutil" ) func main() { url := "https://business.arattai.in/api/v1/verifiedbusinesses" req, _ := http.NewRequest("POST", url, nil) req.Header.Add("Arattai-CompanyId", "SOME_STRING_VALUE") req.Header.Add("Authorization", "Bearer REPLACE_BEARER_TOKEN") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) }
const data = null; const xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === this.DONE) { console.log(this.responseText); } }); xhr.open("POST", "https://business.arattai.in/api/v1/verifiedbusinesses"); xhr.setRequestHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); xhr.setRequestHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); xhr.send(data);
curl --request POST \ --url https://business.arattai.in/api/v1/verifiedbusinesses \ --header 'Arattai-CompanyId: SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response Example

{ "url": "/api/v1/verifiedbusinesses", "type": "business", "data": { "id": "501000000002006", "display_name": "Zylker Corp", "status": "verified" } }
{ "code": "invalid_input", "message": "Either the input stream or parameter is invalid or absent" }
{ "code": "invalid_oauthtoken", "message": "You are not authenticated to do this operation" }
{ "code": "invalid_operation", "message": "The current company is not verified" }
{ "code": "invalid_method", "message": "Invalid method" }
{ "code": "too_many_requests", "message": "You have reached the maximum number of requests" }

Update a Verified Business AI Tools

Open in ChatGPT

Open in ChatGPT to ask questions about this page

Open in Claude

Open in Claude to ask questions about this page

Copy as Markdown

Copy this page as markdown to use with AI assistants

View as Markdown

Open this page as markdown in a new tab

Re-sync an existing business entirely from the current company and mark it immediately verified. Applies the same field-copy and document-cloning behavior as POST /verifiedbusinesses, applied to a business that already exists.

Required prechecks:

  • The current company must have status verified. Otherwise returns 403 invalid_operation.
  • A business with the given {id} must exist under the current company. Otherwise returns 404.
⚠
NoteNo request body is required. Every business field is copied from the current company, except display_name which is left untouched. All company verification documents are re-cloned to the business.

Rate Limits
  • Threshold Limit (Number of API calls allowed within a minute) - 20 requests per minute
  • Lock Period (Wait time before consecutive API requests) - 10 minutes

OAuth Scope : ArattaiBusiness.businesses.UPDATE

Path Parameters

id
string
(Required)
Business ID. The unique identifier of the existing business to re-sync.

Headers

Arattai-CompanyId
string
(Required)
The unique identifier of the company for this request.

Request Example

Click to copy
headers_data = Map(); headers_data.put("Arattai-CompanyId", "SOME_STRING_VALUE"); headers_data.put("Authorization", "Bearer REPLACE_BEARER_TOKEN"); response = invokeUrl [ url: "https://business.arattai.in/api/v1/verifiedbusinesses/BUSINESS_ID" type: PUT headers: headers_data connection: <connection_name> ]; info response;
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://business.arattai.in/api/v1/verifiedbusinesses/BUSINESS_ID") .put(null) .addHeader("Arattai-CompanyId", "SOME_STRING_VALUE") .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .build(); Response response = client.newCall(request).execute();
const options = { method: 'PUT', headers: { 'Arattai-CompanyId': 'SOME_STRING_VALUE', Authorization: 'Bearer REPLACE_BEARER_TOKEN' } }; fetch('https://business.arattai.in/api/v1/verifiedbusinesses/BUSINESS_ID', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));
import http.client conn = http.client.HTTPSConnection("business.arattai.in") headers = { 'Arattai-CompanyId': "SOME_STRING_VALUE", 'Authorization': "Bearer REPLACE_BEARER_TOKEN" } conn.request("PUT", "/api/v1/verifiedbusinesses/BUSINESS_ID", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
const http = require("https"); const options = { "method": "PUT", "hostname": "business.arattai.in", "port": null, "path": "/api/v1/verifiedbusinesses/BUSINESS_ID", "headers": { "Arattai-CompanyId": "SOME_STRING_VALUE", "Authorization": "Bearer REPLACE_BEARER_TOKEN" } }; 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();
var client = new RestClient("https://business.arattai.in/api/v1/verifiedbusinesses/BUSINESS_ID"); var request = new RestRequest(Method.PUT); request.AddHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); request.AddHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); IRestResponse response = client.Execute(request);
var client = new HttpClient(); var request = new HttpRequestMessage { Method = HttpMethod.Put, RequestUri = new Uri("https://business.arattai.in/api/v1/verifiedbusinesses/BUSINESS_ID"), Headers = { { "Arattai-CompanyId", "SOME_STRING_VALUE" }, { "Authorization", "Bearer REPLACE_BEARER_TOKEN" }, }, }; using (var response = await client.SendAsync(request)) { response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body); }
package main import ( "fmt" "net/http" "io/ioutil" ) func main() { url := "https://business.arattai.in/api/v1/verifiedbusinesses/BUSINESS_ID" req, _ := http.NewRequest("PUT", url, nil) req.Header.Add("Arattai-CompanyId", "SOME_STRING_VALUE") req.Header.Add("Authorization", "Bearer REPLACE_BEARER_TOKEN") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) }
const data = null; const xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === this.DONE) { console.log(this.responseText); } }); xhr.open("PUT", "https://business.arattai.in/api/v1/verifiedbusinesses/BUSINESS_ID"); xhr.setRequestHeader("Arattai-CompanyId", "SOME_STRING_VALUE"); xhr.setRequestHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN"); xhr.send(data);
curl --request PUT \ --url https://business.arattai.in/api/v1/verifiedbusinesses/BUSINESS_ID \ --header 'Arattai-CompanyId: SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'

Response Example

{ "url": "/api/v1/verifiedbusinesses/501000000002005", "type": "business", "data": { "id": "501000000002005", "display_name": "Zylker Retail", "status": "verified" } }
{ "code": "invalid_input", "message": "Either the input stream or parameter is invalid or absent" }
{ "code": "invalid_oauthtoken", "message": "You are not authenticated to do this operation" }
{ "code": "invalid_operation", "message": "The current company is not verified" }
{ "code": "not_found", "message": "No business found for the given id" }
{ "code": "invalid_method", "message": "Invalid method" }
{ "code": "too_many_requests", "message": "You have reached the maximum number of requests" }