Skip to main content
POST
/
v1
/
store_locations
/
external-identifier
/
{externalIdentifier}
Create or update store location by external identifier
curl --request POST \
  --url https://api.sandbox.usenash.com/v1/store_locations/external-identifier/{externalIdentifier} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data @- <<EOF
{
  "name": "<string>",
  "phoneNumber": "<string>",
  "firstName": "<string>",
  "lastName": "<string>",
  "email": "<string>",
  "pickupInstructions": "<string>",
  "address": "<string>",
  "addressComponents": {
    "street": "Pennsylvania Avenue NW",
    "city": "Washington",
    "country": "US",
    "number": "1600",
    "secondaryNumber": null,
    "county": "Washington",
    "state": "DC",
    "postalCode": "20500",
    "latitude": 38.8948949,
    "longitude": -77.0371581
  },
  "externalId": "<string>",
  "tags": "['service:rapid', 'service:express', 'franchise_location']",
  "operatingHours": {},
  "prepTimeMinutes": 123,
  "zoneIds": [
    "zone_01234567890123456789",
    "zone_01234567890123456789"
  ],
  "zoneAssociations": [
    {
      "end_date": "2025-01-01",
      "start_date": "2024-01-01",
      "zone_id": "zone_01234567890123456789"
    }
  ]
}
EOF
import requests

url = "https://api.sandbox.usenash.com/v1/store_locations/external-identifier/{externalIdentifier}"

payload = {
"name": "<string>",
"phoneNumber": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"email": "<string>",
"pickupInstructions": "<string>",
"address": "<string>",
"addressComponents": {
"street": "Pennsylvania Avenue NW",
"city": "Washington",
"country": "US",
"number": "1600",
"secondaryNumber": None,
"county": "Washington",
"state": "DC",
"postalCode": "20500",
"latitude": 38.8948949,
"longitude": -77.0371581
},
"externalId": "<string>",
"tags": "['service:rapid', 'service:express', 'franchise_location']",
"operatingHours": {},
"prepTimeMinutes": 123,
"zoneIds": ["zone_01234567890123456789", "zone_01234567890123456789"],
"zoneAssociations": [
{
"end_date": "2025-01-01",
"start_date": "2024-01-01",
"zone_id": "zone_01234567890123456789"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

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

print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
phoneNumber: '<string>',
firstName: '<string>',
lastName: '<string>',
email: '<string>',
pickupInstructions: '<string>',
address: '<string>',
addressComponents: {
street: 'Pennsylvania Avenue NW',
city: 'Washington',
country: 'US',
number: '1600',
secondaryNumber: null,
county: 'Washington',
state: 'DC',
postalCode: '20500',
latitude: 38.8948949,
longitude: -77.0371581
},
externalId: '<string>',
tags: '[\'service:rapid\', \'service:express\', \'franchise_location\']',
operatingHours: {},
prepTimeMinutes: 123,
zoneIds: ['zone_01234567890123456789', 'zone_01234567890123456789'],
zoneAssociations: [
{
end_date: '2025-01-01',
start_date: '2024-01-01',
zone_id: 'zone_01234567890123456789'
}
]
})
};

fetch('https://api.sandbox.usenash.com/v1/store_locations/external-identifier/{externalIdentifier}', 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.sandbox.usenash.com/v1/store_locations/external-identifier/{externalIdentifier}",
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([
'name' => '<string>',
'phoneNumber' => '<string>',
'firstName' => '<string>',
'lastName' => '<string>',
'email' => '<string>',
'pickupInstructions' => '<string>',
'address' => '<string>',
'addressComponents' => [
'street' => 'Pennsylvania Avenue NW',
'city' => 'Washington',
'country' => 'US',
'number' => '1600',
'secondaryNumber' => null,
'county' => 'Washington',
'state' => 'DC',
'postalCode' => '20500',
'latitude' => 38.8948949,
'longitude' => -77.0371581
],
'externalId' => '<string>',
'tags' => '[\'service:rapid\', \'service:express\', \'franchise_location\']',
'operatingHours' => [

],
'prepTimeMinutes' => 123,
'zoneIds' => [
'zone_01234567890123456789',
'zone_01234567890123456789'
],
'zoneAssociations' => [
[
'end_date' => '2025-01-01',
'start_date' => '2024-01-01',
'zone_id' => 'zone_01234567890123456789'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);

$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.sandbox.usenash.com/v1/store_locations/external-identifier/{externalIdentifier}"

payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"email\": \"<string>\",\n \"pickupInstructions\": \"<string>\",\n \"address\": \"<string>\",\n \"addressComponents\": {\n \"street\": \"Pennsylvania Avenue NW\",\n \"city\": \"Washington\",\n \"country\": \"US\",\n \"number\": \"1600\",\n \"secondaryNumber\": null,\n \"county\": \"Washington\",\n \"state\": \"DC\",\n \"postalCode\": \"20500\",\n \"latitude\": 38.8948949,\n \"longitude\": -77.0371581\n },\n \"externalId\": \"<string>\",\n \"tags\": \"['service:rapid', 'service:express', 'franchise_location']\",\n \"operatingHours\": {},\n \"prepTimeMinutes\": 123,\n \"zoneIds\": [\n \"zone_01234567890123456789\",\n \"zone_01234567890123456789\"\n ],\n \"zoneAssociations\": [\n {\n \"end_date\": \"2025-01-01\",\n \"start_date\": \"2024-01-01\",\n \"zone_id\": \"zone_01234567890123456789\"\n }\n ]\n}")

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

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.sandbox.usenash.com/v1/store_locations/external-identifier/{externalIdentifier}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"email\": \"<string>\",\n \"pickupInstructions\": \"<string>\",\n \"address\": \"<string>\",\n \"addressComponents\": {\n \"street\": \"Pennsylvania Avenue NW\",\n \"city\": \"Washington\",\n \"country\": \"US\",\n \"number\": \"1600\",\n \"secondaryNumber\": null,\n \"county\": \"Washington\",\n \"state\": \"DC\",\n \"postalCode\": \"20500\",\n \"latitude\": 38.8948949,\n \"longitude\": -77.0371581\n },\n \"externalId\": \"<string>\",\n \"tags\": \"['service:rapid', 'service:express', 'franchise_location']\",\n \"operatingHours\": {},\n \"prepTimeMinutes\": 123,\n \"zoneIds\": [\n \"zone_01234567890123456789\",\n \"zone_01234567890123456789\"\n ],\n \"zoneAssociations\": [\n {\n \"end_date\": \"2025-01-01\",\n \"start_date\": \"2024-01-01\",\n \"zone_id\": \"zone_01234567890123456789\"\n }\n ]\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.sandbox.usenash.com/v1/store_locations/external-identifier/{externalIdentifier}")

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

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"email\": \"<string>\",\n \"pickupInstructions\": \"<string>\",\n \"address\": \"<string>\",\n \"addressComponents\": {\n \"street\": \"Pennsylvania Avenue NW\",\n \"city\": \"Washington\",\n \"country\": \"US\",\n \"number\": \"1600\",\n \"secondaryNumber\": null,\n \"county\": \"Washington\",\n \"state\": \"DC\",\n \"postalCode\": \"20500\",\n \"latitude\": 38.8948949,\n \"longitude\": -77.0371581\n },\n \"externalId\": \"<string>\",\n \"tags\": \"['service:rapid', 'service:express', 'franchise_location']\",\n \"operatingHours\": {},\n \"prepTimeMinutes\": 123,\n \"zoneIds\": [\n \"zone_01234567890123456789\",\n \"zone_01234567890123456789\"\n ],\n \"zoneAssociations\": [\n {\n \"end_date\": \"2025-01-01\",\n \"start_date\": \"2024-01-01\",\n \"zone_id\": \"zone_01234567890123456789\"\n }\n ]\n}"

response = http.request(request)
puts response.read_body
{
  "id": "stl_01234567890123456789",
  "name": "White House",
  "phoneNumber": "+1234567890",
  "location": {
    "street": "Pennsylvania Avenue NW",
    "city": "Washington",
    "country": "US",
    "number": "1600",
    "secondaryNumber": null,
    "county": "Washington",
    "state": "DC",
    "postalCode": "20500",
    "latitude": 38.8948949,
    "longitude": -77.0371581
  },
  "zoneIds": [
    "zone_01234567890123456789",
    "zone_01234567890123456789"
  ],
  "zoneAssociations": [
    {
      "end_date": "2025-01-01",
      "start_date": "2024-01-01",
      "store_location_id": "stl_01234567890123456789",
      "zone_id": "zone_01234567890123456789"
    }
  ],
  "tags": "['service:rapid', 'franchise_location']",
  "integrationMetadata": {
    "integration_name": "ABC"
  },
  "externalId": "40123",
  "operatingHours": {
    "friday": {
      "active": true,
      "shifts": [
        [
          "10:00",
          "19:00"
        ]
      ]
    },
    "monday": {
      "active": true,
      "shifts": [
        [
          "10:00",
          "19:00"
        ]
      ]
    },
    "saturday": {
      "active": true,
      "shifts": [
        [
          "10:00",
          "19:00"
        ]
      ]
    },
    "sunday": {
      "active": true,
      "shifts": [
        [
          "11:00",
          "18:00"
        ]
      ]
    },
    "thursday": {
      "active": true,
      "shifts": [
        [
          "10:00",
          "19:00"
        ]
      ]
    },
    "tuesday": {
      "active": true,
      "shifts": [
        [
          "10:00",
          "19:00"
        ]
      ]
    },
    "wednesday": {
      "active": true,
      "shifts": [
        [
          "10:00",
          "19:00"
        ]
      ]
    }
  },
  "prepTimeMinutes": 123,
  "blackoutDates": [
    "2024-01-01",
    "2024-01-02"
  ],
  "firstName": "Taylor",
  "lastName": "Swift",
  "email": "taylor@swift.com",
  "pickupInstructions": "Once you arrive at the store, please click above to let us know you are here. Then, go ahead and find a sales associate inside - they'll be happy to help you!"
}
[
{
"error": {
"code": "<string>",
"message": "<string>",
"details": {}
},
"response_status": "<string>",
"RequestID": "<string>"
}
]

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

externalIdentifier
string
required

Body

application/json

Expected payload for creating a store location.

name
string
required

Store business name at the origin. Limited to 80 characters.

phoneNumber
string
required

The phone number to contact at the store location: '+15555555555'

firstName
string | null

First name of the person at the store location. If unknown, pass 'Manager'. Limited to 80 characters.

lastName
string | null

Last name of the person at the store location. If unknown, pass 'Manager'. Limited to 80 characters.

email
string | null
pickupInstructions
string | null

Any special instructions for store location. Limited to 280 characters. Nash Recommended Input: Order [insert order number] for [insert customer name] from [business name]

address
string | null

The full address in one line for the store location for this package within the Job. Address format: [Number] [Street], [second line], [city], [state] [zip code]. All address fields are required except 'second line'. Second line should include Apt/Suite/Unit/# appended to the number of the unit. Can be null if using address_components.

addressComponents
ParsedAddressInputSerializer · object | null

A geocoded and componentized version of the pickup address. NOTE: THIS WILL BYPASS OUR ADDRESS GEOCODING SERVICE!

externalId
string | null

Store location unique identifier from an external system.

tags
string[] | null

Free form tags specific to the location.

Example:

"['service:rapid', 'service:express', 'franchise_location']"

operatingHours
Operatinghours · object | null

[Integration Specific]: An object with keys that correspond to days of week (monday, tuesday, etc) and their corresponding operating hours / delivery windows. Example: {monday: {active: true, shifts: [[10:00, 17:00]]}, tuesday: {active: true, shifts: [[10:00, 17:00]]}, wednesday: {active: true, shifts: [[10:00, 17:00]]}, thursday: {active: true, shifts: [[10:00, 17:00]]}, friday: {active: true, shifts: [[10:00, 17:00]]}, saturday: {active: true, shifts: []}, sunday: {active: true, shifts: []}}

prepTimeMinutes
integer | null

[Integration Specific]: the preparation time to apply for orders, if relying on Nash to compute the delivery windows. This only applies to specific integrations.

zoneIds
string[] | null

The zone ids to associate with the store location.

Example:
[
"zone_01234567890123456789",
"zone_01234567890123456789"
]
zoneAssociations
Zoneassociations · object[] | null

The zone associations to associate with the store location.

Example:
[
{
"end_date": "2025-01-01",
"start_date": "2024-01-01",
"zone_id": "zone_01234567890123456789"
}
]

Response

OK

Response for store location.

id
string
required

The ID of the store location.

Example:

"stl_01234567890123456789"

name
string
required

The name of the store location.

Example:

"White House"

phoneNumber
string
required

The phone number of the person at the store location.

Example:

"+1234567890"

location
ParsedAddressInputSerializer · object
required

The location of the store location.

zoneIds
string[] | null
required

The zone ids of the store location.

Example:
[
"zone_01234567890123456789",
"zone_01234567890123456789"
]
zoneAssociations
Zoneassociations · object[] | null
required

The zone associations of the store location.

Example:
[
{
"end_date": "2025-01-01",
"start_date": "2024-01-01",
"store_location_id": "stl_01234567890123456789",
"zone_id": "zone_01234567890123456789"
}
]
tags
string[] | null
required

The tags of the store location.

Example:

"['service:rapid', 'franchise_location']"

integrationMetadata
Integrationmetadata · object | null
required

The integration metadata of the store location.

Example:
{ "integration_name": "ABC" }
externalId
string | null

Store location unique identifier from an external system.

Example:

"40123"

operatingHours
Operatinghours · object | null

[Integration Specific]: An object with keys that correspond to days of week (monday, tuesday, etc) and their corresponding operating hours / delivery windows.

Example:
{
"friday": {
"active": true,
"shifts": [["10:00", "19:00"]]
},
"monday": {
"active": true,
"shifts": [["10:00", "19:00"]]
},
"saturday": {
"active": true,
"shifts": [["10:00", "19:00"]]
},
"sunday": {
"active": true,
"shifts": [["11:00", "18:00"]]
},
"thursday": {
"active": true,
"shifts": [["10:00", "19:00"]]
},
"tuesday": {
"active": true,
"shifts": [["10:00", "19:00"]]
},
"wednesday": {
"active": true,
"shifts": [["10:00", "19:00"]]
}
}
prepTimeMinutes
integer | null

[Integration Specific]: the preparation time to apply for orders, if relying on Nash to compute the delivery windows. This only applies to specific integrations.

blackoutDates
string[] | null

The blackout dates of the store location.

Example:
["2024-01-01", "2024-01-02"]
firstName
string | null

First name of the person at the store location. If unknown, pass 'Manager'. Limited to 80 characters.

Example:

"Taylor"

lastName
string | null

Last name of the person at the store location. If unknown, pass 'Manager'. Limited to 80 characters.

Example:

"Swift"

email
string | null

The email of the person at the store location.

Example:

"taylor@swift.com"

pickupInstructions
string | null

The pickup instructions of the store location. Limited to 280 characters. Nash Recommended Input: Order [insert order number] for [insert customer name] from [business name]

Example:

"Once you arrive at the store, please click above to let us know you are here. Then, go ahead and find a sales associate inside - they'll be happy to help you!"