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
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 (403invalid_operation).display_name,promotions,allow_user_message(set viauser_messagein requests),privacy_link,terms_link, anduser_dataremain editable regardless of verification status. entity_type/entity_sub_typeare only cross-validated against each other when both are supplied in the same PATCH request.- Logo download is
GET /businesslogo/{base64Encoded}vialogo_url. There is noGET /businesses/{id}/logoroute.
Error Response Format
{"code": "error_code", "message": "A human-readable description."}
Attribute
/businesses/{id}.id.legal_name by removing special characters. Cannot be set directly, and is recalculated automatically whenever legal_name changes.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 tounverified.verified- Approved by an admin and ready for production messaging. Most fields are locked, onlydisplay_name,promotions,allow_user_message,privacy_link,terms_link, anduser_dataremain editable.rejected- Declined by an admin.rejection_reasonexplains why, and the business can be corrected and resubmitted, which moves it back tounverified.
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_typemust be omitted.
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.
include_fields=messagetemplates, and the key is omitted from the response entirely otherwise.Allowed values:
enabled- The business can send promotional templates.disabled- The business cannot send promotional templates.
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.
/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.{
"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
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.
- Use
application/jsonfor a standard creation without a logo. - To create a business and upload a logo in a single request, use
multipart/form-datawith 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
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_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.
Headers
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"}'
{
"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"
}
{
"display_name": "Business",
"legal_name": "Business Pvt. Ltd.",
"entity_type": "company",
"entity_sub_type": "pvt",
"file": "@logo.png"
}
{
"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
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:messagetemplatesincludes 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
Headers
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'
{
"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
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_name | No |
website | No |
phone_country_code | No |
phonenumber | No |
phone_region_code | No |
address | No |
entity_type | No |
entity_sub_type | No |
description | No |
language_code | No |
time_zone | No |
contact_email | No |
registration_id | No |
representative_name | No |
display_name | Yes |
promotions | Yes |
user_message (sets allow_user_message) | Yes |
privacy_link | Yes |
terms_link | Yes |
user_data | Yes |
Attempting to update a "No" field once the business is
verified returns 403 invalid_operation.
Address latitude/longitude update semantics:
- If
addressis omitted in PATCH, existing address values are preserved. - If
addressis provided withoutlatitude/longitude, existing coordinate values are preserved. - To clear coordinate values, pass
nullexplicitly.
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
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_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.
Allowed values:
enabled- Promotional messages can be sent to this business's contacts.disabled- Promotional messages are blocked for this business.
Allowed values:
always_allow- Users can always send inbound messages to this business.disallow- Inbound messages from users are not allowed.
Path Parameters
Headers
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"}'
{
"display_name": "Business-1",
"promotions": "enabled",
"user_message": "always_allow"
}
{
"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
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
Query Parameters
Allowed values:
messagetemplates: Include lite template objects (id, name, description, type) associated with this business. Key is omitted from response when not requested.
Headers
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'
{
"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
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_operation | Business 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
Headers
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'
{
"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 Business Logo
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
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 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
Path Parameters
Headers
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
{
"file": "<binary image file>"
}
{
"logo_url": "/api/v1/businesslogo/YWJjMTIzZGVmNDU2"
}
{
"code": "invalid_file_type",
"message": "The file type is not supported"
}
{
"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": "file_size_too_large",
"message": "Size of the file is too large"
}
Delete Business Logo
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
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
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
Headers
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'
{
"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"
}
Download Business Logo
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
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
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.
Arattai-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
logo_url field returned by the upload logo endpoint.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'
{
"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"
}
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
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
Path Parameters
Allowed values:
gst, msme, fssai, udyam, pan, shops_establishment, incorporation_certificate, utility_bill, representative_id_front, representative_id_back, authorization_letter.
Headers
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
{
"file": "<binary document or image file>"
}
{
"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
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
Path Parameters
Allowed values:
gst, msme, fssai, udyam, pan, shops_establishment, incorporation_certificate, utility_bill, representative_id_front, representative_id_back, authorization_letter.
Headers
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
{
"file": "<binary replacement document>"
}
{
"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
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
Allowed values:
gst, msme, fssai, udyam, pan, shops_establishment, incorporation_certificate, utility_bill, representative_id_front, representative_id_back, authorization_letter.
Headers
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'
{
"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
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
Headers
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'
[
{
"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
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
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'
{
"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
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)
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
Headers
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'
{
"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
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
Headers
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'
{
"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
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.
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
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'
{
"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
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 403invalid_operation. - A business with the given
{id}must exist under the current company. Otherwise returns 404.
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
Headers
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'
{
"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"
}