Skip to main content
POST
/
v1
/
batch_job
Create Batch Job
curl --request POST \
  --url https://api.sandbox.usenash.com/v1/batch_job \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "packages": [
    {
      "packageDeliveryMode": "<string>",
      "pickupAddress": "<string>",
      "pickupAddressComponents": {
        "street": "Pennsylvania Avenue NW",
        "city": "Washington",
        "country": "US",
        "number": "1600",
        "secondaryNumber": null,
        "county": "Washington",
        "state": "DC",
        "postalCode": "20500",
        "latitude": 38.8948949,
        "longitude": -77.0371581
      },
      "pickupLatitude": 123,
      "pickupLongitude": 123,
      "pickupBusinessName": "<string>",
      "pickupFirstName": "<string>",
      "pickupLastName": "<string>",
      "pickupPlaceId": "<string>",
      "pickupStoreLocationId": "<string>",
      "pickupPhoneNumber": "<string>",
      "pickupEmail": "<string>",
      "pickupBarcodes": [
        "<string>"
      ],
      "dropoffAddress": "<string>",
      "dropoffAddressComponents": {
        "street": "Pennsylvania Avenue NW",
        "city": "Washington",
        "country": "US",
        "number": "1600",
        "secondaryNumber": null,
        "county": "Washington",
        "state": "DC",
        "postalCode": "20500",
        "latitude": 38.8948949,
        "longitude": -77.0371581
      },
      "dropoffLatitude": 123,
      "dropoffLongitude": 123,
      "dropoffFirstName": "<string>",
      "dropoffLastName": "<string>",
      "dropoffPhoneNumber": "<string>",
      "dropoffEmail": "<string>",
      "dropoffStoreLocationId": "<string>",
      "dropoffExternalStoreLocationId": "<string>",
      "dropoffBarcodes": [
        "<string>"
      ],
      "pickupInstructions": "<string>",
      "dropoffBusinessName": "<string>",
      "dropoffInstructions": "<string>",
      "dropoffPlaceId": "<string>",
      "packagePickupStartTime": "<string>",
      "packagePickupEndTime": "<string>",
      "packageDropoffStartTime": "<string>",
      "packageDropoffEndTime": "<string>",
      "packageDescription": "<string>",
      "packageValue": 123,
      "packageValueCents": 123,
      "packageTax": 123,
      "packageServiceFee": 123,
      "tipAmount": 123,
      "tipAmountCents": 123,
      "tipAmountUsd": 123,
      "currency": "<string>",
      "itemsCount": 123,
      "packageExternalIdentifier": "<string>",
      "packageMinimumVehicleSize": "car",
      "packageRequirements": [
        "photo_proof_of_delivery",
        "age_verification_on_delivery"
      ],
      "weight": 123,
      "dimensions": {},
      "packageItems": [
        {}
      ],
      "referenceId": "<string>"
    }
  ],
  "jobMetadata": {},
  "optionsGroupId": "<string>",
  "externalIdentifier": "<string>",
  "inputDatetimesLocalizedToPickupTz": false
}
'
{
  "id": "job_01234567890",
  "createdAt": "2023-08-29T19:17:46.264523",
  "portalUrl": "https://usenash.com/portal/job_abc123",
  "isActive": true,
  "isBatch": false,
  "batch": {
    "id": "<string>",
    "type": "<string>",
    "objectSequence": [
      "<string>"
    ],
    "stopTypes": [
      "PICKUP"
    ],
    "quotes": [
      {
        "id": "qot_01234567890",
        "providerId": "uber_standard_mini_mart",
        "providerName": "Nash",
        "createdTime": "2021-01-01T00:00:00Z",
        "priceCents": 1000,
        "type": "<string>",
        "providerLogo": "https://nash.com/logo.png",
        "providerIsInternal": true,
        "expireTime": "2021-01-01T00:00:00Z",
        "taxAmountCents": 100,
        "tollFeeCents": 100,
        "nashFeeCents": 100,
        "insuranceFeeCents": 100,
        "currency": "USD",
        "pickupWindow": "2021-01-01T00:00:00Z",
        "dropoffEta": "2021-01-01T00:00:00Z",
        "tags": [
          "tag1",
          "tag2",
          "autodispatch_preferred_quote"
        ],
        "costSplitCustomerCents": 100,
        "costSplitBusinessCents": 100,
        "totalPriceBreakdown": {
          "subtotal": 1000,
          "tax": 100,
          "total": 1100
        },
        "totalPriceCents": 1000,
        "price": 1000,
        "isSuccessful": true,
        "errorMessage": "Error message"
      }
    ],
    "providerId": "<string>",
    "providerIsInternal": true,
    "winnerQuote": {},
    "failedQuotes": [
      {}
    ]
  },
  "route": {
    "id": "rte_JphRWDiEosGpXuxwgaYfY3",
    "type": "SINGLE_PICKUP_MULTIPLE_DROPOFFS",
    "stops": [
      {
        "stopType": "PICKUP",
        "objectIds": [
          "ord_Qr5bVt8WiByGh66z2g7xEu",
          "ord_WJFuooSiRvFCaceGZjpbqs"
        ],
        "location": {
          "lat": 45.558214,
          "lng": -122.587074
        },
        "arrivalTime": "2025-04-25T03:27:00",
        "departTime": "2025-04-25T03:30:00",
        "serviceTime": 360,
        "distanceFromPrevious": 3376,
        "durationFromPrevious": 420
      }
    ],
    "jobId": "job_1234567890abcdef12345678",
    "externalId": "rte_JphRWDiEosGpXuxwgaYfY3",
    "routeMetadata": {
      "priority": "high",
      "source": "optimization_engine"
    },
    "validationErrors": {
      "order_123": "Order 123 has pickup but no dropoff"
    }
  },
  "jobConfigurations": [
    {
      "id": "cfg_01234567890",
      "package": {
        "id": "pkg_01234567890",
        "requirements": [
          "photo_proof_of_delivery",
          "age_verification_on_delivery"
        ],
        "valueCents": 123,
        "itemsCount": 100,
        "pickupLocation": {
          "id": "loc_01234567890",
          "address": "1600 Amphitheatre Parkway",
          "formattedAddress": "1600 Amphitheatre Parkway",
          "addressCity": "Mountain View",
          "addressCountry": "US",
          "timezoneId": "America/Los_Angeles",
          "timezoneName": "Pacific Time",
          "addressNumber": "1600",
          "addressFormattedStreet": "Amphitheatre Parkway",
          "addressCounty": "Santa Clara",
          "addressState": "CA",
          "addressZip": "94043",
          "instructions": "Turn left on Main St",
          "businessName": "Nash",
          "firstName": "John",
          "lastName": "Doe",
          "phoneNumber": "+15555555555",
          "email": "[email protected]",
          "lat": 37.774929,
          "lng": -122.419416
        },
        "dropoffLocation": {
          "id": "loc_01234567890",
          "address": "1600 Amphitheatre Parkway",
          "formattedAddress": "1600 Amphitheatre Parkway",
          "addressCity": "Mountain View",
          "addressCountry": "US",
          "timezoneId": "America/Los_Angeles",
          "timezoneName": "Pacific Time",
          "addressNumber": "1600",
          "addressFormattedStreet": "Amphitheatre Parkway",
          "addressCounty": "Santa Clara",
          "addressState": "CA",
          "addressZip": "94043",
          "instructions": "Turn left on Main St",
          "businessName": "Nash",
          "firstName": "John",
          "lastName": "Doe",
          "phoneNumber": "+15555555555",
          "email": "[email protected]",
          "lat": 37.774929,
          "lng": -122.419416
        },
        "description": "Package description",
        "tags": [
          "Alcohol"
        ],
        "packageDeliveryMode": "now",
        "pickupStartTime": "2021-01-01T00:00:00Z",
        "pickupEndTime": "2021-01-01T00:00:00Z",
        "pickupBarcodes": [
          "<string>"
        ],
        "dropoffStartTime": "2021-01-01T00:00:00Z",
        "dropoffEndTime": "2021-01-01T00:00:00Z",
        "dropoffBarcodes": [
          "<string>"
        ],
        "taxCents": 100,
        "serviceFeeCents": 100,
        "externalIdentifier": "mini-mart-order-99",
        "minimumVehicleSize": "car",
        "pickupStoreLocationId": "store_01234567890",
        "pickupStoreLocationExternalId": "0123",
        "dropoffStoreLocationId": "store_01234567890",
        "drivingMetrics": {
          "distance": 100,
          "duration": 100
        },
        "value": 100,
        "tax": 100,
        "serviceFee": 100,
        "tipAmountCents": 123,
        "weight": 100,
        "dimensions": {
          "height": 100,
          "length": 100,
          "width": 100
        },
        "items": [
          {
            "count": 1,
            "description": "Item 1",
            "valueCents": 100
          }
        ],
        "referenceId": "mini-mart-order-99",
        "packageMetadata": {
          "key": "value"
        }
      },
      "tasks": [
        {
          "id": "tsk_01234567890",
          "createdAt": "2023-08-29T19:17:46.264523",
          "status": "running",
          "pickupStartTime": "2023-08-29T19:17:46.264523",
          "pickupEndTime": "2023-08-29T19:17:46.264523",
          "dropoffStartTime": "2023-08-29T19:17:46.264523",
          "dropoffEndTime": "2023-08-29T19:17:46.264523",
          "providerId": "prv_01234567890",
          "providerIsInternal": true,
          "tipAmountCents": 100,
          "winnerQuote": {
            "id": "qot_01234567890",
            "price_cents": 100
          },
          "quotes": [
            {
              "id": "qot_01234567890",
              "price_cents": 100
            }
          ],
          "failedQuotes": [
            {
              "id": "qot_01234567890",
              "price_cents": 100
            }
          ],
          "delivery": {
            "id": "dlv_01234567890",
            "status": "dropoff_complete",
            "isActive": true,
            "priceCents": 123,
            "currency": "<string>",
            "type": "<string>",
            "statusHistory": [
              {
                "created_at": "2023-08-29T19:17:46.264523",
                "status": "created"
              },
              {
                "created_at": "2023-08-29T19:17:47.509265",
                "status": "not_assigned_driver"
              }
            ],
            "pickupEta": "<string>",
            "dropoffEta": "<string>",
            "dropoffDeadline": "<string>",
            "documents": [
              {
                "createdAt": "<string>",
                "id": "<string>",
                "type": "<string>",
                "contentType": "<string>",
                "url": "<string>",
                "data": "<string>",
                "documentMetadata": {}
              }
            ],
            "nashFeeCents": 123,
            "courierName": "<string>",
            "courierPhoneNumber": "<string>",
            "courierPickupPhoneNumber": "<string>",
            "courierDropoffPhoneNumber": "<string>",
            "courierLocation": {},
            "courierVehicle": {},
            "courierProfileImage": "<string>",
            "proofOfDelivery": [
              {}
            ],
            "providerDeliveryId": "<string>",
            "providerBatchId": "<string>",
            "price": 123,
            "taxAmountCents": 123,
            "tollFeeCents": 123,
            "waitFeeCents": 123,
            "waitTimeMinutes": 123,
            "cancellationFeeCents": 123,
            "returnFeeCents": 123,
            "otherProviderFees": {},
            "insuranceFeeCents": 123,
            "totalPriceBreakdown": {},
            "totalPriceCents": 123,
            "pickedItems": [
              {
                "sku": "<string>",
                "requestedSku": "<string>",
                "id": "<string>",
                "requestedId": "<string>",
                "quantity": 123,
                "scannedBarcode": "<string>",
                "weight": 123,
                "priceCents": 123,
                "status": "<string>",
                "name": "<string>",
                "scans": [
                  {
                    "substitutionType": "<string>",
                    "barcodes": [
                      {
                        "weight": 123,
                        "priceCents": 123,
                        "weightUnit": "<string>",
                        "productCode": "<string>",
                        "isVariableWeight": true,
                        "barcode": "<string>",
                        "variableValue": 123,
                        "format": "<string>",
                        "indicatorDigit": "<string>",
                        "checkDigit": "<string>",
                        "manufacturerCode": "<string>",
                        "itemReference": "<string>",
                        "pluCheckDigit": "<string>",
                        "barcodeSansCheckDigit": "<string>",
                        "expirationDate": "<string>"
                      }
                    ]
                  }
                ]
              }
            ]
          },
          "tipAmountUsd": 100,
          "failureReason": "Task failed",
          "taskNotes": [
            {
              "created_at": "2023-08-29T19:17:46.264523",
              "id": "not_01234567890",
              "note": "Task note",
              "user": {
                "email": "[email protected]"
              }
            }
          ]
        }
      ],
      "advancedTask": {
        "id": "tsk_01234567890",
        "createdAt": "2023-08-29T19:17:46.264523",
        "status": "running",
        "pickupStartTime": "2023-08-29T19:17:46.264523",
        "pickupEndTime": "2023-08-29T19:17:46.264523",
        "dropoffStartTime": "2023-08-29T19:17:46.264523",
        "dropoffEndTime": "2023-08-29T19:17:46.264523",
        "providerId": "prv_01234567890",
        "providerIsInternal": true,
        "tipAmountCents": 100,
        "winnerQuote": {
          "id": "qot_01234567890",
          "price_cents": 100
        },
        "quotes": [
          {
            "id": "qot_01234567890",
            "price_cents": 100
          }
        ],
        "failedQuotes": [
          {
            "id": "qot_01234567890",
            "price_cents": 100
          }
        ],
        "delivery": {
          "id": "dlv_01234567890",
          "status": "dropoff_complete",
          "isActive": true,
          "priceCents": 123,
          "currency": "<string>",
          "type": "<string>",
          "statusHistory": [
            {
              "created_at": "2023-08-29T19:17:46.264523",
              "status": "created"
            },
            {
              "created_at": "2023-08-29T19:17:47.509265",
              "status": "not_assigned_driver"
            }
          ],
          "pickupEta": "<string>",
          "dropoffEta": "<string>",
          "dropoffDeadline": "<string>",
          "documents": [
            {
              "createdAt": "<string>",
              "id": "<string>",
              "type": "<string>",
              "contentType": "<string>",
              "url": "<string>",
              "data": "<string>",
              "documentMetadata": {}
            }
          ],
          "nashFeeCents": 123,
          "courierName": "<string>",
          "courierPhoneNumber": "<string>",
          "courierPickupPhoneNumber": "<string>",
          "courierDropoffPhoneNumber": "<string>",
          "courierLocation": {},
          "courierVehicle": {},
          "courierProfileImage": "<string>",
          "proofOfDelivery": [
            {}
          ],
          "providerDeliveryId": "<string>",
          "providerBatchId": "<string>",
          "price": 123,
          "taxAmountCents": 123,
          "tollFeeCents": 123,
          "waitFeeCents": 123,
          "waitTimeMinutes": 123,
          "cancellationFeeCents": 123,
          "returnFeeCents": 123,
          "otherProviderFees": {},
          "insuranceFeeCents": 123,
          "totalPriceBreakdown": {},
          "totalPriceCents": 123,
          "pickedItems": [
            {
              "sku": "<string>",
              "requestedSku": "<string>",
              "id": "<string>",
              "requestedId": "<string>",
              "quantity": 123,
              "scannedBarcode": "<string>",
              "weight": 123,
              "priceCents": 123,
              "status": "<string>",
              "name": "<string>",
              "scans": [
                {
                  "substitutionType": "<string>",
                  "barcodes": [
                    {
                      "weight": 123,
                      "priceCents": 123,
                      "weightUnit": "<string>",
                      "productCode": "<string>",
                      "isVariableWeight": true,
                      "barcode": "<string>",
                      "variableValue": 123,
                      "format": "<string>",
                      "indicatorDigit": "<string>",
                      "checkDigit": "<string>",
                      "manufacturerCode": "<string>",
                      "itemReference": "<string>",
                      "pluCheckDigit": "<string>",
                      "barcodeSansCheckDigit": "<string>",
                      "expirationDate": "<string>"
                    }
                  ]
                }
              ]
            }
          ]
        },
        "tipAmountUsd": 100,
        "failureReason": "Task failed",
        "taskNotes": [
          {
            "created_at": "2023-08-29T19:17:46.264523",
            "id": "not_01234567890",
            "note": "Task note",
            "user": {
              "email": "[email protected]"
            }
          }
        ]
      },
      "delivery": {
        "id": "dlv_01234567890",
        "status": "dropoff_complete",
        "isActive": true,
        "priceCents": 123,
        "currency": "<string>",
        "type": "<string>",
        "statusHistory": [
          {
            "created_at": "2023-08-29T19:17:46.264523",
            "status": "created"
          },
          {
            "created_at": "2023-08-29T19:17:47.509265",
            "status": "not_assigned_driver"
          }
        ],
        "pickupEta": "<string>",
        "dropoffEta": "<string>",
        "dropoffDeadline": "<string>",
        "documents": [
          {
            "createdAt": "<string>",
            "id": "<string>",
            "type": "<string>",
            "contentType": "<string>",
            "url": "<string>",
            "data": "<string>",
            "documentMetadata": {}
          }
        ],
        "nashFeeCents": 123,
        "courierName": "<string>",
        "courierPhoneNumber": "<string>",
        "courierPickupPhoneNumber": "<string>",
        "courierDropoffPhoneNumber": "<string>",
        "courierLocation": {},
        "courierVehicle": {},
        "courierProfileImage": "<string>",
        "proofOfDelivery": [
          {}
        ],
        "providerDeliveryId": "<string>",
        "providerBatchId": "<string>",
        "price": 123,
        "taxAmountCents": 123,
        "tollFeeCents": 123,
        "waitFeeCents": 123,
        "waitTimeMinutes": 123,
        "cancellationFeeCents": 123,
        "returnFeeCents": 123,
        "otherProviderFees": {},
        "insuranceFeeCents": 123,
        "totalPriceBreakdown": {},
        "totalPriceCents": 123,
        "pickedItems": [
          {
            "sku": "<string>",
            "requestedSku": "<string>",
            "id": "<string>",
            "requestedId": "<string>",
            "quantity": 123,
            "scannedBarcode": "<string>",
            "weight": 123,
            "priceCents": 123,
            "status": "<string>",
            "name": "<string>",
            "scans": [
              {
                "substitutionType": "<string>",
                "barcodes": [
                  {
                    "weight": 123,
                    "priceCents": 123,
                    "weightUnit": "<string>",
                    "productCode": "<string>",
                    "isVariableWeight": true,
                    "barcode": "<string>",
                    "variableValue": 123,
                    "format": "<string>",
                    "indicatorDigit": "<string>",
                    "checkDigit": "<string>",
                    "manufacturerCode": "<string>",
                    "itemReference": "<string>",
                    "pluCheckDigit": "<string>",
                    "barcodeSansCheckDigit": "<string>",
                    "expirationDate": "<string>"
                  }
                ]
              }
            ]
          }
        ]
      },
      "publicTrackingUrl": "https://usenash.com/tracking/job_abc123"
    }
  ],
  "externalIdentifier": "mini-mart-order-99",
  "jobMetadata": {
    "key": "value"
  },
  "optionsGroup": {
    "id": "opn_WyMhHj",
    "label": "New York City Strategy",
    "allowedProviders": [
      "prv_01234567890",
      "prv_01234567891"
    ],
    "enableAutoDispatch": true,
    "providerSelectionStrategy": "cheapest",
    "reassignOnFailure": true,
    "enableMaxDeliveryFee": true,
    "maxDeliveryFeeCents": 10000,
    "costSplitMaxFixedPriceCents": 10000,
    "costSplitMaxPercentage": 0.1,
    "costSplitStrategy": "price",
    "smartReassignment": true
  },
  "shortReferenceCode": "<string>"
}

What’s a batch job?

A batch job is a group of packages that are delivered by same courier (and thus same provider). A batch job has N packages where N > 1, in contrast with single jobs (non-batch) which have a single package.

Batch types

  • pattern 1: single pickup, multiple dropoffs = same pickup address, name and phone-number for all packages
  • pattern 2: multiple pickups, single dropoff = same dropoff address, name and phone-number for all packages
  • pattern 3: multiple pickups, multiple dropoff
    • multiple pickups then multiple dropoffs. note: there’s no pickup after a dropoff (interleaving)
The response is similar to Create Job, but with the addition of two new fields: isBatch, and batch field: batch field:
  • batch.id: unique id for this batch
  • batch.type: one of these values:
    • SINGLE_PICKUP_MULTIPLE_DROPOFFS
    • MULTIPLE_PICKUPS_SINGLE_DROPOFF
    • MULTIPLE_PICKUPS_MULTIPLE_DROPOFFS
  • batch.objectSequence: list of jobConfigurations (which container package information) in order:
  • batch.stopTypes: list of stop representing actions sequence: PICKUP or DROPOFF
  • batch.quotes, batch.winnerQuote, batch.failedQuotes: same as task.quotes, task.winnerQuote, task.failedQuotes from non-batch jobs
{
	"batch": {
		"id": "bth_...",
		"type": "MULTIPLE_PICKUPS_MULTIPLE_DROPOFFS",
		"objectSequence": [],
		"stopTypes": [
			"PICKUP",
			"DROPOFF",
			"DROPOFF"
		],
		"providerId": "FleetSimulatorFast",
		"winnerQuote": {
			"id": "qot_..",
			"providerId": "FleetSimulatorFast",
			"providerName": "FleetSimulator (4TestRunner)"
		},
		"quotes": [],
		"failedQuotes": []
	},
        ...
}
For this and all other endpoints, as Nash processes fields from different providers, please assume that any field in the response we provide may be null.

Authorizations

Authorization
string
header
required

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

Body

application/json

Expected input for creating a batch job.

packages
PackageSchemaMixin · object[]
required
jobMetadata
Jobmetadata · object
optionsGroupId
string | null
externalIdentifier
string | null
inputDatetimesLocalizedToPickupTz
boolean
default:false

Response

OK

The format for a returned batch job used in many endpoints.

id
string
required

Job ID

Example:

"job_01234567890"

createdAt
string
required

Created at

Example:

"2023-08-29T19:17:46.264523"

portalUrl
string
required

Portal URL

Example:

"https://usenash.com/portal/job_abc123"

isActive
boolean
required

Is the job active

Example:

true

isBatch
boolean
required

Is the job a batch

Example:

false

batch
BatchSerializer · object
required

Batch

route
RouteSerializer · object
required

Route

jobConfigurations
JobConfigurationsSerializer · object[]
required

Job configurations

externalIdentifier
string | null

External identifier

Example:

"mini-mart-order-99"

jobMetadata
Jobmetadata · object

Job metadata

Example:
{ "key": "value" }
optionsGroup
OptionsGroupSerializer · object

Options group

shortReferenceCode
string | null

Short, non-unique human-readable reference code for the job.