POST
/
v1
/
batch_job
curl --request POST \
  --url https://api.sandbox.usenash.com/v1/batch_job \
  --header 'Content-Type: application/json' \
  --data '{
  "packages": [
    {
      "pickupAddress": "<string>",
      "pickupAddressComponents": {
        "number": "1600",
        "secondaryNumber": null,
        "street": "Pennsylvania Avenue NW",
        "county": "Washington",
        "city": "Washington",
        "state": "DC",
        "postalCode": "20500",
        "country": "US",
        "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": {
        "number": "1600",
        "secondaryNumber": null,
        "street": "Pennsylvania Avenue NW",
        "county": "Washington",
        "city": "Washington",
        "state": "DC",
        "postalCode": "20500",
        "country": "US",
        "latitude": 38.8948949,
        "longitude": -77.0371581
      },
      "dropoffLatitude": 123,
      "dropoffLongitude": 123,
      "dropoffFirstName": "<string>",
      "dropoffLastName": "<string>",
      "dropoffPhoneNumber": "<string>",
      "dropoffEmail": "<string>",
      "dropoffStoreLocationId": "<string>",
      "dropoffExternalStoreLocationId": "<string>",
      "dropoffBarcodes": [
        "<string>"
      ],
      "packageDeliveryMode": "<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": "<string>",
      "packageRequirements": [
        "photo_proof_of_delivery",
        "age_verification_on_delivery"
      ],
      "weight": 123,
      "dimensions": {},
      "packageItems": [
        {}
      ],
      "referenceId": "<string>"
    }
  ],
  "jobMetadata": {},
  "optionsGroupId": "<string>",
  "externalIdentifier": "<string>",
  "inputDatetimesLocalizedToPickupTz": false
}'
{
  "id": "<string>",
  "createdAt": "<string>",
  "portalUrl": "<string>",
  "externalIdentifier": "<string>",
  "jobMetadata": {},
  "isActive": true,
  "isBatch": true,
  "batch": {
    "id": "<string>",
    "type": "<string>",
    "objectSequence": [
      "<string>"
    ],
    "stopTypes": [
      "PICKUP"
    ],
    "providerId": "<string>",
    "providerIsInternal": true,
    "winnerQuote": {},
    "quotes": [
      {
        "id": "qot_01234567890",
        "type": "<string>",
        "providerId": "uber_standard_mini_mart",
        "providerName": "Nash",
        "providerLogo": "https://nash.com/logo.png",
        "providerIsInternal": true,
        "createdTime": "2021-01-01T00:00:00Z",
        "expireTime": "2021-01-01T00:00:00Z",
        "priceCents": 1000,
        "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"
        ],
        "costSplitCustomerCents": 100,
        "costSplitBusinessCents": 100,
        "totalPriceBreakdown": {
          "subtotal": 1000,
          "tax": 100,
          "total": 1100
        },
        "totalPriceCents": 1000,
        "price": 1000,
        "isSuccessful": true,
        "errorMessage": "Error message"
      }
    ],
    "failedQuotes": [
      {}
    ]
  },
  "jobConfigurations": [
    {
      "id": "cfg_01234567890",
      "package": {
        "id": "pkg_01234567890",
        "description": "Package description",
        "requirements": [
          "photo_proof_of_delivery",
          "age_verification_on_delivery"
        ],
        "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>"
        ],
        "valueCents": 123,
        "taxCents": 100,
        "serviceFeeCents": 100,
        "itemsCount": 100,
        "externalIdentifier": "mini-mart-order-99",
        "minimumVehicleSize": "car",
        "pickupLocation": {
          "id": "loc_01234567890",
          "address": "1600 Amphitheatre Parkway",
          "formattedAddress": "1600 Amphitheatre Parkway",
          "addressNumber": "1600",
          "addressFormattedStreet": "Amphitheatre Parkway",
          "addressCity": "Mountain View",
          "addressCounty": "Santa Clara",
          "addressState": "CA",
          "addressZip": "94043",
          "addressCountry": "US",
          "timezoneId": "America/Los_Angeles",
          "timezoneName": "Pacific Time",
          "instructions": "Turn left on Main St",
          "businessName": "Nash",
          "firstName": "John",
          "lastName": "Doe",
          "phoneNumber": "+15555555555",
          "email": "john.doe@example.com"
        },
        "pickupStoreLocationId": "store_01234567890",
        "dropoffLocation": {
          "id": "loc_01234567890",
          "address": "1600 Amphitheatre Parkway",
          "formattedAddress": "1600 Amphitheatre Parkway",
          "addressNumber": "1600",
          "addressFormattedStreet": "Amphitheatre Parkway",
          "addressCity": "Mountain View",
          "addressCounty": "Santa Clara",
          "addressState": "CA",
          "addressZip": "94043",
          "addressCountry": "US",
          "timezoneId": "America/Los_Angeles",
          "timezoneName": "Pacific Time",
          "instructions": "Turn left on Main St",
          "businessName": "Nash",
          "firstName": "John",
          "lastName": "Doe",
          "phoneNumber": "+15555555555",
          "email": "john.doe@example.com"
        },
        "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",
            "type": "<string>",
            "status": "dropoff_complete",
            "statusHistory": [
              {
                "created_at": "2023-08-29T19:17:46.264523",
                "status": "created"
              },
              {
                "created_at": "2023-08-29T19:17:47.509265",
                "status": "not_assigned_driver"
              }
            ],
            "isActive": true,
            "pickupEta": "<string>",
            "dropoffEta": "<string>",
            "dropoffDeadline": "<string>",
            "priceCents": 123,
            "currency": "<string>",
            "documents": [
              {
                "createdAt": "<string>",
                "id": "<string>",
                "type": "<string>",
                "url": "<string>",
                "contentType": "<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
          },
          "tipAmountUsd": 100,
          "failureReason": "Task failed",
          "taskNotes": [
            {
              "created_at": "2023-08-29T19:17:46.264523",
              "id": "not_01234567890",
              "note": "Task note",
              "user": {
                "email": "john.doe@example.com"
              }
            }
          ]
        }
      ],
      "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",
          "type": "<string>",
          "status": "dropoff_complete",
          "statusHistory": [
            {
              "created_at": "2023-08-29T19:17:46.264523",
              "status": "created"
            },
            {
              "created_at": "2023-08-29T19:17:47.509265",
              "status": "not_assigned_driver"
            }
          ],
          "isActive": true,
          "pickupEta": "<string>",
          "dropoffEta": "<string>",
          "dropoffDeadline": "<string>",
          "priceCents": 123,
          "currency": "<string>",
          "documents": [
            {
              "createdAt": "<string>",
              "id": "<string>",
              "type": "<string>",
              "url": "<string>",
              "contentType": "<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
        },
        "tipAmountUsd": 100,
        "failureReason": "Task failed",
        "taskNotes": [
          {
            "created_at": "2023-08-29T19:17:46.264523",
            "id": "not_01234567890",
            "note": "Task note",
            "user": {
              "email": "john.doe@example.com"
            }
          }
        ]
      },
      "delivery": {
        "id": "dlv_01234567890",
        "type": "<string>",
        "status": "dropoff_complete",
        "statusHistory": [
          {
            "created_at": "2023-08-29T19:17:46.264523",
            "status": "created"
          },
          {
            "created_at": "2023-08-29T19:17:47.509265",
            "status": "not_assigned_driver"
          }
        ],
        "isActive": true,
        "pickupEta": "<string>",
        "dropoffEta": "<string>",
        "dropoffDeadline": "<string>",
        "priceCents": 123,
        "currency": "<string>",
        "documents": [
          {
            "createdAt": "<string>",
            "id": "<string>",
            "type": "<string>",
            "url": "<string>",
            "contentType": "<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
      },
      "publicTrackingUrl": "https://usenash.com/tracking/job_abc123"
    }
  ],
  "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"
  },
  "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.

Body

application/json

Expected input for creating a batch job.

packages
object[]
required

Generic mixin for packages used in many endpoints; Used for input.

jobMetadata
object | null
optionsGroupId
string | null
externalIdentifier
string | null
inputDatetimesLocalizedToPickupTz
boolean
default:
false

Response

200
application/json
OK

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

id
string
required
createdAt
string
required
portalUrl
string
required
isActive
boolean
required
isBatch
boolean
required
batch
object
required

Generic serializer for batches used in many endpoints.

jobConfigurations
object[]
required

Generic serializer for jbo configurations used in many endpoints.

externalIdentifier
string | null
jobMetadata
object | null
optionsGroup
object | null

Generic serializer for options groups used in many endpoints.

shortReferenceCode
string | null

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