Skip to main content
POST
/
locations
/
{location_id}
/
customers
Create Customer
curl --request POST \
  --url https://api.crosoftware.com/v0/locations/{location_id}/customers \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'x-tenant-id: <x-tenant-id>' \
  --data '
{
  "addresses": [
    {
      "country": "<string>",
      "is_billing": true,
      "is_shipping": true,
      "latitude": "<string>",
      "line_1": "<string>",
      "locality": "<string>",
      "longitude": "<string>",
      "postcode": "<string>",
      "region": "<string>",
      "line_2": "<string>",
      "line_3": "<string>",
      "line_4": "<string>"
    }
  ],
  "contacts": [
    {
      "email": "jsmith@example.com",
      "fax": "<string>",
      "name": "<string>",
      "notify_on_acknowledged_request": true,
      "notify_on_completed_request": true,
      "notify_on_dispatched_request": true,
      "notify_on_failed_request": true,
      "notify_on_new_request": true,
      "number": "<string>"
    }
  ],
  "name": "<string>",
  "account_number_1": "<string>",
  "account_number_2": "<string>",
  "is_commercial": true,
  "note": "<string>",
  "parent_id": 123,
  "reference_number": "<string>",
  "renewal_date": "2023-11-07T05:31:56Z",
  "sales_rep": "<string>",
  "sales_rep_id": "<string>",
  "suspension_id": 123
}
'
import requests

url = "https://api.crosoftware.com/v0/locations/{location_id}/customers"

payload = {
"addresses": [
{
"country": "<string>",
"is_billing": True,
"is_shipping": True,
"latitude": "<string>",
"line_1": "<string>",
"locality": "<string>",
"longitude": "<string>",
"postcode": "<string>",
"region": "<string>",
"line_2": "<string>",
"line_3": "<string>",
"line_4": "<string>"
}
],
"contacts": [
{
"email": "jsmith@example.com",
"fax": "<string>",
"name": "<string>",
"notify_on_acknowledged_request": True,
"notify_on_completed_request": True,
"notify_on_dispatched_request": True,
"notify_on_failed_request": True,
"notify_on_new_request": True,
"number": "<string>"
}
],
"name": "<string>",
"account_number_1": "<string>",
"account_number_2": "<string>",
"is_commercial": True,
"note": "<string>",
"parent_id": 123,
"reference_number": "<string>",
"renewal_date": "2023-11-07T05:31:56Z",
"sales_rep": "<string>",
"sales_rep_id": "<string>",
"suspension_id": 123
}
headers = {
"x-tenant-id": "<x-tenant-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {
'x-tenant-id': '<x-tenant-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
addresses: [
{
country: '<string>',
is_billing: true,
is_shipping: true,
latitude: '<string>',
line_1: '<string>',
locality: '<string>',
longitude: '<string>',
postcode: '<string>',
region: '<string>',
line_2: '<string>',
line_3: '<string>',
line_4: '<string>'
}
],
contacts: [
{
email: 'jsmith@example.com',
fax: '<string>',
name: '<string>',
notify_on_acknowledged_request: true,
notify_on_completed_request: true,
notify_on_dispatched_request: true,
notify_on_failed_request: true,
notify_on_new_request: true,
number: '<string>'
}
],
name: '<string>',
account_number_1: '<string>',
account_number_2: '<string>',
is_commercial: true,
note: '<string>',
parent_id: 123,
reference_number: '<string>',
renewal_date: '2023-11-07T05:31:56Z',
sales_rep: '<string>',
sales_rep_id: '<string>',
suspension_id: 123
})
};

fetch('https://api.crosoftware.com/v0/locations/{location_id}/customers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.crosoftware.com/v0/locations/{location_id}/customers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'addresses' => [
[
'country' => '<string>',
'is_billing' => true,
'is_shipping' => true,
'latitude' => '<string>',
'line_1' => '<string>',
'locality' => '<string>',
'longitude' => '<string>',
'postcode' => '<string>',
'region' => '<string>',
'line_2' => '<string>',
'line_3' => '<string>',
'line_4' => '<string>'
]
],
'contacts' => [
[
'email' => 'jsmith@example.com',
'fax' => '<string>',
'name' => '<string>',
'notify_on_acknowledged_request' => true,
'notify_on_completed_request' => true,
'notify_on_dispatched_request' => true,
'notify_on_failed_request' => true,
'notify_on_new_request' => true,
'number' => '<string>'
]
],
'name' => '<string>',
'account_number_1' => '<string>',
'account_number_2' => '<string>',
'is_commercial' => true,
'note' => '<string>',
'parent_id' => 123,
'reference_number' => '<string>',
'renewal_date' => '2023-11-07T05:31:56Z',
'sales_rep' => '<string>',
'sales_rep_id' => '<string>',
'suspension_id' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-tenant-id: <x-tenant-id>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.crosoftware.com/v0/locations/{location_id}/customers"

payload := strings.NewReader("{\n \"addresses\": [\n {\n \"country\": \"<string>\",\n \"is_billing\": true,\n \"is_shipping\": true,\n \"latitude\": \"<string>\",\n \"line_1\": \"<string>\",\n \"locality\": \"<string>\",\n \"longitude\": \"<string>\",\n \"postcode\": \"<string>\",\n \"region\": \"<string>\",\n \"line_2\": \"<string>\",\n \"line_3\": \"<string>\",\n \"line_4\": \"<string>\"\n }\n ],\n \"contacts\": [\n {\n \"email\": \"jsmith@example.com\",\n \"fax\": \"<string>\",\n \"name\": \"<string>\",\n \"notify_on_acknowledged_request\": true,\n \"notify_on_completed_request\": true,\n \"notify_on_dispatched_request\": true,\n \"notify_on_failed_request\": true,\n \"notify_on_new_request\": true,\n \"number\": \"<string>\"\n }\n ],\n \"name\": \"<string>\",\n \"account_number_1\": \"<string>\",\n \"account_number_2\": \"<string>\",\n \"is_commercial\": true,\n \"note\": \"<string>\",\n \"parent_id\": 123,\n \"reference_number\": \"<string>\",\n \"renewal_date\": \"2023-11-07T05:31:56Z\",\n \"sales_rep\": \"<string>\",\n \"sales_rep_id\": \"<string>\",\n \"suspension_id\": 123\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("x-tenant-id", "<x-tenant-id>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://api.crosoftware.com/v0/locations/{location_id}/customers")
.header("x-tenant-id", "<x-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"addresses\": [\n {\n \"country\": \"<string>\",\n \"is_billing\": true,\n \"is_shipping\": true,\n \"latitude\": \"<string>\",\n \"line_1\": \"<string>\",\n \"locality\": \"<string>\",\n \"longitude\": \"<string>\",\n \"postcode\": \"<string>\",\n \"region\": \"<string>\",\n \"line_2\": \"<string>\",\n \"line_3\": \"<string>\",\n \"line_4\": \"<string>\"\n }\n ],\n \"contacts\": [\n {\n \"email\": \"jsmith@example.com\",\n \"fax\": \"<string>\",\n \"name\": \"<string>\",\n \"notify_on_acknowledged_request\": true,\n \"notify_on_completed_request\": true,\n \"notify_on_dispatched_request\": true,\n \"notify_on_failed_request\": true,\n \"notify_on_new_request\": true,\n \"number\": \"<string>\"\n }\n ],\n \"name\": \"<string>\",\n \"account_number_1\": \"<string>\",\n \"account_number_2\": \"<string>\",\n \"is_commercial\": true,\n \"note\": \"<string>\",\n \"parent_id\": 123,\n \"reference_number\": \"<string>\",\n \"renewal_date\": \"2023-11-07T05:31:56Z\",\n \"sales_rep\": \"<string>\",\n \"sales_rep_id\": \"<string>\",\n \"suspension_id\": 123\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.crosoftware.com/v0/locations/{location_id}/customers")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["x-tenant-id"] = '<x-tenant-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"addresses\": [\n {\n \"country\": \"<string>\",\n \"is_billing\": true,\n \"is_shipping\": true,\n \"latitude\": \"<string>\",\n \"line_1\": \"<string>\",\n \"locality\": \"<string>\",\n \"longitude\": \"<string>\",\n \"postcode\": \"<string>\",\n \"region\": \"<string>\",\n \"line_2\": \"<string>\",\n \"line_3\": \"<string>\",\n \"line_4\": \"<string>\"\n }\n ],\n \"contacts\": [\n {\n \"email\": \"jsmith@example.com\",\n \"fax\": \"<string>\",\n \"name\": \"<string>\",\n \"notify_on_acknowledged_request\": true,\n \"notify_on_completed_request\": true,\n \"notify_on_dispatched_request\": true,\n \"notify_on_failed_request\": true,\n \"notify_on_new_request\": true,\n \"number\": \"<string>\"\n }\n ],\n \"name\": \"<string>\",\n \"account_number_1\": \"<string>\",\n \"account_number_2\": \"<string>\",\n \"is_commercial\": true,\n \"note\": \"<string>\",\n \"parent_id\": 123,\n \"reference_number\": \"<string>\",\n \"renewal_date\": \"2023-11-07T05:31:56Z\",\n \"sales_rep\": \"<string>\",\n \"sales_rep_id\": \"<string>\",\n \"suspension_id\": 123\n}"

response = http.request(request)
puts response.read_body
{
  "account_number_1": "<string>",
  "account_number_2": "<string>",
  "addresses": [
    {
      "country": "<string>",
      "id": 123,
      "is_active": true,
      "is_billing": true,
      "is_physical": true,
      "is_shipping": true,
      "latitude": "<string>",
      "line_1": "<string>",
      "line_2": "<string>",
      "line_3": "<string>",
      "line_4": "<string>",
      "locality": "<string>",
      "longitude": "<string>",
      "postcode": "<string>",
      "region": "<string>"
    }
  ],
  "contacts": [
    {
      "email": "jsmith@example.com",
      "fax": "<string>",
      "id": 123,
      "name": "<string>",
      "notify_on_acknowledged_request": true,
      "notify_on_completed_request": true,
      "notify_on_dispatched_request": true,
      "notify_on_failed_request": true,
      "notify_on_new_request": true,
      "number": "<string>"
    }
  ],
  "created_on": "2023-11-07T05:31:56Z",
  "id": 123,
  "is_active": true,
  "last_updated_on": "2023-11-07T05:31:56Z",
  "location_id": 123,
  "locations": [
    {
      "created_on": "2023-11-07T05:31:56Z",
      "id": 123,
      "is_active": true,
      "last_updated_on": "2023-11-07T05:31:56Z",
      "location_id": 123,
      "renewal_date": "2023-11-07T05:31:56Z",
      "is_commercial": true,
      "note": "<string>",
      "reference_number": "<string>",
      "sales_rep": "<string>",
      "sales_rep_id": "<string>",
      "suspension_id": 123
    }
  ],
  "name": "<string>",
  "parent_id": 123,
  "renewal_date": "2023-11-07T05:31:56Z",
  "is_commercial": true,
  "note": "<string>",
  "reference_number": "<string>",
  "sales_rep": "<string>",
  "sales_rep_id": "<string>",
  "suspension_id": 123
}

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Headers

x-api-version
string

Version identifier (date format).

x-tenant-id
integer<int64>
required

Tenant identifier. Contact CRO Software for more info if you don't already have this id. See list tenant ids for info on listing the tenants you have access to.

Path Parameters

location_id
integer<int64>
required

Location identifier.

Query Parameters

max_address_edit_distance
integer

Maximum address edit distance (levenshtein).

Body

application/json

New customer profile.

addresses
object[]
required
contacts
object[]
required
name
string
required

Name (free text).

account_number_1
string

Customer account number.

account_number_2
string

Customer account number.

is_commercial
boolean

Commercial address if true, private if false.

note
string

Notes (free text).

parent_id
integer<int64>

Parent record identifier.

reference_number
string

Reference number (free text).

renewal_date
string<date-time>

Renewal date.

sales_rep
string

Name of sales representative.

sales_rep_id
string

Sales rep identifier. May be an integer provider id, the sales user UUID, or the username.

suspension_id
integer<int64>

Suspension identifier.

Response

200 - application/json

Success

Customer location profile.

account_number_1
string
required

Customer account number.

account_number_2
string
required

Customer account number.

addresses
object[]
required
contacts
object[]
required
created_on
string<date-time>
required

Timestamp of creation (must be in past).

id
integer<int64>
required

Customer identifier.

is_active
boolean
required

Records marked inactive are treated as deleted (soft delete).

last_updated_on
string<date-time>
required
location_id
integer<int64>
required

Location identifier.

locations
object[]
required
name
string
required

Name (free text).

parent_id
integer<int64>
required

Parent record identifier.

renewal_date
string<date-time>
required

Renewal date.

is_commercial
boolean

Commercial address if true, private if false.

note
string

Notes (free text).

reference_number
string

Reference number (free text).

sales_rep
string

Name of sales representative.

sales_rep_id
string

Sales rep identifier.

suspension_id
integer<int64>

Suspension identifier.