Logo

Nash

Authentication Type: API Key
Description: Nash (usenash.com) is a delivery orchestration platform that connects your business to courier networks for last-mile delivery. Nash exposes two complementary resource types — orders and jobs — that represent different stages of the delivery lifecycle. Manage delivery requests, track courier status in real time, dispatch automatically, and integrate using your own external identifiers for idempotent workflows.

Orders vs. Jobs: An order represents pre-dispatch delivery details — the pickup/dropoff locations, timing, and quotes from courier providers. When an order is confirmed and dispatched, Nash creates a job that tracks the live delivery. Job responses contain the delivery status under tasks[].deliveries[].status. You can work with orders through the /v1/order and /v1/orders API endpoints, and with jobs through /v1/jobs.


Authentication

To authenticate, you need a Nash API key:

  1. Log in to your Nash dashboard
  2. Navigate to Settings → API Keys and generate a key
  3. Provide it as the apiKey credential field when connecting Nash in Cotera

Your key is sent as a Bearer token on every request:

Authorization: Bearer <your-api-key>

Optional — Organization ID (orgId): If your account belongs to multiple Nash organizations, provide the orgId credential field. Nash passes it as the Nash-Org-Id header to scope requests to the correct organization. Leave blank for single-org accounts.

Optional — Base URL (baseUrl): Nash provides four API environments:

EnvironmentBase URL
Production (default)https://api.usenash.com
Sandboxhttps://api.sandbox.usenash.com
Production (Australia)https://api.ap-southeast-2.usenash.com
Sandbox (Australia)https://api.sandbox.ap-southeast-2.usenash.com

Set baseUrl to switch environments. If omitted, requests go to Production.


Orders

A Nash order represents a delivery request before it is dispatched — it holds pickup/dropoff details, timing, courier quotes, and configuration. When an order is confirmed and autodispatched, Nash creates a job to track the live delivery.

Use these tools to manage the full order lifecycle: create orders, fetch quotes, confirm, dispatch, and archive.

List Orders

List Nash orders with optional filters and pagination.

Operation Type: Query (Read)

Parameters:

  • limit number (nullable): Max orders to return (default 25, max 100).
  • offset number (nullable): Pagination offset.
  • sortBy string (nullable): Field to sort by (e.g. created_at).
  • sortDirection string (nullable): Sort direction: ASC or DESC.
  • startDate string (nullable): Filter orders created after this ISO 8601 datetime.
  • endDate string (nullable): Filter orders created before this ISO 8601 datetime.
  • deliveryStatuses string (nullable): Comma-separated delivery statuses to filter by.
  • search string (nullable): Free-text search across orders.

Returns:

  • orders array: Array of order summary objects.
  • total number (nullable): Total count of matching orders.

Example Usage:

{
  "limit": 50,
  "deliveryStatuses": "pending,confirmed",
  "startDate": "2024-01-01T00:00:00Z"
}

Get Order

Retrieve a Nash order by its ID, including delivery details and current status.

Operation Type: Query (Read)

Parameters:

  • id string (required): Nash order ID.

Returns:

  • order object: Full order payload with pickup/dropoff details, quotes, and status.

Example Usage:

{
  "id": "order_abc123"
}

Create Order

Create a new Nash order with pickup and dropoff details.

Operation Type: Mutation (Write)

Parameters:

  • orderData object (required): Order creation payload. Must include pickup/dropoff location details, contact information, and pickup/dropoff times. See the Nash API reference for the full schema.

Returns:

  • order object: The created order with ID, status, and available quotes.

Example Usage:

{
  "orderData": {
    "pickup": {
      "name": "Warehouse A",
      "address": "123 Main St",
      "city": "San Francisco",
      "state": "CA",
      "zip": "94105",
      "country": "US",
      "phone": "+14155550001"
    },
    "dropoff": {
      "name": "Customer",
      "address": "456 Market St",
      "city": "San Francisco",
      "state": "CA",
      "zip": "94102",
      "country": "US",
      "phone": "+14155550002"
    },
    "pickup_time": "2024-07-24T14:00:00Z",
    "dropoff_time": "2024-07-24T16:00:00Z"
  }
}

Update Order

Update an existing Nash order by ID (pickup/dropoff times, addresses, metadata).

Operation Type: Mutation (Write)

Parameters:

  • id string (required): Nash order ID to update.
  • updateData object (required): Partial update fields — pickup/dropoff times, addresses, metadata, etc.

Returns:

  • order object: The updated order object.

Archive Order

Archive a Nash order by its ID. Archived orders are soft-deleted and no longer active.

Operation Type: Mutation (Write)

Parameters:

  • id string (required): Nash order ID to archive.

Returns:

  • order object: The archived order.

Unarchive Order

Unarchive a previously archived Nash order, making it active again.

Operation Type: Mutation (Write)

Parameters:

  • id string (required): Nash order ID to unarchive.

Returns:

  • order object: The unarchived order with updated status.

Confirm Order

Confirm a Nash order by its ID, locking in the delivery details.

Operation Type: Mutation (Write)

Parameters:

  • id string (required): Nash order ID to confirm.

Returns:

  • order object: The confirmed order.

Autodispatch Order

Automatically dispatch a Nash order using the organization's configured dispatch strategy.

Operation Type: Mutation (Write)

Parameters:

  • id string (required): Nash order ID to autodispatch.

Returns:

  • order object: The dispatched order with selected provider and accepted quote.

Get Order Quotes

Fetch available courier quotes for a delivery request without committing to a delivery. Use this to compare providers and pricing before creating or confirming an order.

Operation Type: Mutation (Write)

Parameters:

  • quoteRequest object (required): Quote request payload including pickup/dropoff details. See the Nash API reference for the full schema.

Returns:

  • quotes object: Available courier quotes with pricing and estimated delivery times.

Refresh Order Quotes

Refresh the available courier quotes for an existing Nash order to get updated pricing and availability.

Operation Type: Mutation (Write)

Parameters:

  • refreshRequest object (required): Refresh quotes request payload. See the Nash API reference for the full schema.

Returns:

  • result object: Updated quotes for the order.

Get Order Documents

Retrieve documents associated with a Nash order, such as proof of delivery or shipping labels.

Operation Type: Query (Read)

Parameters:

  • id string (required): Nash order ID to retrieve documents for.

Returns:

  • documents object: Documents associated with the order.

Upsert Order By External ID

Create or update a Nash order using your own external identifier (idempotent create-or-update).

Operation Type: Mutation (Write)

Parameters:

  • externalId string (required): Your external order identifier. If an order with this ID exists it will be updated; otherwise a new order is created.
  • orderData object (required): Order payload (same schema as Create Order). Include autodispatch: true to dispatch immediately after creation/update.

Returns:

  • order object: The created or updated order.

Jobs

A Nash job represents an active delivery — it is created when an order is confirmed and dispatched. Jobs contain one or more tasks (pickup + dropoff pairs), quotes from courier providers, and the selected delivery. Use these tools to monitor and manage the full delivery lifecycle after dispatch.

Delivery status is nested inside the job response (under tasks[].deliveries[].status). There is no separate status endpoint; use Get Job or Refresh Job to poll the current delivery status.

List Jobs

List Nash delivery jobs with optional filters and pagination.

Operation Type: Query (Read)

Parameters:

  • limit number (nullable): Max jobs to return (default 25, max 100).
  • offset number (nullable): Pagination offset.
  • sortBy string (nullable): Field to sort by (e.g. created_at).
  • sortDirection string (nullable): Sort direction: ASC or DESC.
  • startDate string (nullable): Filter jobs created after this ISO 8601 datetime.
  • endDate string (nullable): Filter jobs created before this ISO 8601 datetime.
  • deliveryStatuses string (nullable): Comma-separated delivery statuses to filter by.
  • search string (nullable): Free-text search across jobs.

Returns:

  • jobs array: Array of job summary objects.
  • total number (nullable): Total count of matching jobs.

Example Usage:

{
  "limit": 50,
  "deliveryStatuses": "pending,in_progress",
  "startDate": "2024-01-01T00:00:00Z"
}

Get Job

Retrieve a Nash delivery job by its ID, including tasks, deliveries, quotes, and current delivery status.

Operation Type: Query (Read)

Parameters:

  • id string (required): Nash job ID.
  • compressedPayload boolean (nullable): When true, excludes quotes arrays to reduce response size.

Returns:

  • job object: Full job payload with tasks, deliveries, quotes, and configuration. Delivery status is at tasks[].deliveries[].status.

Example Usage:

{
  "id": "job_abc123",
  "compressedPayload": true
}

Create Job

Create a new Nash delivery job with pickup and dropoff details.

Operation Type: Mutation (Write)

Parameters:

  • jobData object (required): Job creation payload. Must include pickup/dropoff location details, contact information, and pickup/dropoff times. See the Nash API reference for the full schema.

Returns:

  • job object: The created job with ID, status, quotes, and tasks.

Example Usage:

{
  "jobData": {
    "pickup": {
      "name": "Warehouse A",
      "address": "123 Main St",
      "city": "San Francisco",
      "state": "CA",
      "zip": "94105",
      "country": "US",
      "phone": "+14155550001"
    },
    "dropoff": {
      "name": "Customer",
      "address": "456 Market St",
      "city": "San Francisco",
      "state": "CA",
      "zip": "94102",
      "country": "US",
      "phone": "+14155550002"
    },
    "pickup_time": "2024-07-24T14:00:00Z",
    "dropoff_time": "2024-07-24T16:00:00Z"
  }
}

Update Job

Update an existing Nash delivery job by ID (pickup/dropoff times, addresses, metadata).

Operation Type: Mutation (Write)

Parameters:

  • id string (required): Nash job ID to update.
  • updateData object (required): Partial update fields — pickup/dropoff times, addresses, metadata, etc.

Returns:

  • job object: The updated job object.

Cancel Job

Cancel an active Nash delivery job and its associated deliveries.

Operation Type: Mutation (Write)

Parameters:

  • id string (required): Nash job ID to cancel.

Returns:

  • job object: The cancelled job with updated status.

Autodispatch Job

Automatically dispatch a Nash delivery job using the organization's configured dispatch strategy.

Operation Type: Mutation (Write)

Parameters:

  • id string (required): Nash job ID to autodispatch.

Returns:

  • job object: The dispatched job with selected provider and accepted quote.

Refresh Job

Refresh a Nash job status by fetching the latest information from the delivery provider.

Operation Type: Mutation (Write)

Parameters:

  • id string (required): Nash job ID to refresh.

Returns:

  • job object: The job with the latest courier/delivery status synced from the provider.

Jobs by External Identifier

These tools let you manage jobs using your own external IDs instead of Nash-assigned IDs. This enables idempotent create-or-update workflows keyed to your order system.

Get Job By External ID

Retrieve a Nash delivery job using your own external identifier.

Operation Type: Query (Read)

Parameters:

  • externalIdentifier string (required): Your external order/job identifier as stored in Nash.

Returns:

  • job object: Full job payload.

Upsert Job By External ID

Create or update a Nash delivery job using your own external identifier (idempotent create-or-update).

Operation Type: Mutation (Write)

Parameters:

  • externalIdentifier string (required): Your external order/job identifier. If a job with this ID exists it will be updated; otherwise a new job is created.
  • jobData object (required): Job payload (same schema as Create Job). Include autodispatch: true to dispatch immediately after creation/update.

Returns:

  • job object: The created or updated job.

Cancel Job By External ID

Cancel a Nash delivery job identified by your own external identifier.

Operation Type: Mutation (Write)

Parameters:

  • externalIdentifier string (required): Your external order/job identifier for the job to cancel.

Returns:

  • job object: The cancelled job with updated status.

Autodispatch Job By External ID

Automatically dispatch a Nash delivery job identified by your own external identifier.

Operation Type: Mutation (Write)

Parameters:

  • externalIdentifier string (required): Your external order/job identifier for the job to autodispatch.

Returns:

  • job object: The autodispatched job with provider assigned.

Common Use Cases

Order-First Delivery Workflow:

  • Fetch quotes with Get Order Quotes to compare providers before committing
  • Create an order with Create Order or use Upsert Order By External ID (idempotent — safe to retry) to key the order to your own identifier
  • Confirm the order with Confirm Order, then dispatch with Autodispatch Order
  • Once dispatched, Nash creates a job — use List Jobs or Get Job to track the live delivery status

Job-Based Delivery Workflow:

  • Create a job directly with Upsert Job By External ID (idempotent — safe to retry)
  • Autodispatch immediately by including autodispatch: true in the job payload, or call Autodispatch Job as a separate step
  • Poll delivery status with Get Job or trigger a live sync with Refresh Job

Status Monitoring:

  • Use List Orders or List Jobs to find records by date range and delivery status for batch monitoring
  • Call Get Job on specific IDs and inspect tasks[].deliveries[].status for current courier status
  • Delivery status is always embedded in the job response — use Refresh Job to sync with the courier's latest state

Cancellations:

  • Cancel a job by Nash job ID with Cancel Job
  • Cancel by your own order ID with Cancel Job By External ID — no need to look up the Nash ID first

Documents:

  • Retrieve proof of delivery and shipping labels with Get Order Documents