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": "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",
  "externalIdentifier": "mini-mart-order-99",
  "jobMetadata": {
    "key": "value"
  },
  "isActive": true,
  "isBatch": false,
  "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": [
      {}
    ]
  },
  "route": {
    "id": "rte_JphRWDiEosGpXuxwgaYfY3",
    "type": "SINGLE_PICKUP_MULTIPLE_DROPOFFS",
    "stops": [
      {
        "stopType": "PICKUP",
        "objectIds": [
          "ord_Qr5bVt8WiByGh66z2g7xEu",
          "ord_WJFuooSiRvFCaceGZjpbqs"
        ],
        "arrivalTime": "2025-04-25T03:27:00",
        "departTime": "2025-04-25T03:30:00",
        "serviceTime": 360,
        "distanceFromPrevious": 3376,
        "durationFromPrevious": 420,
        "location": {
          "lat": 45.558214,
          "lng": -122.587074
        }
      }
    ]
  },
  "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",
    "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.

Body

application/json

Expected input for creating a batch job.

Response

200
application/json
OK

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