Skip to main content
POST
/
v1
/
store_locations
Create store location
curl --request POST \
  --url https://api.sandbox.usenash.com/v1/store_locations \
  --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"

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', 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",
  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"

	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")
  .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")

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.

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!"