curl --request PUT \
--url https://api.upwell.com/api/rest/shipments \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"input": {
"billOfLadingNumber": "<string>",
"billedDate": "2023-12-25",
"billedMiles": 1.5,
"carrierId": "<string>",
"carrierProNumber": "<string>",
"carrierTotalRate": 123,
"companyId": "<string>",
"coveredDate": "2023-12-25",
"createdFromEmailMessageId": "<string>",
"customerId": "<string>",
"customerMiles": 1.5,
"customerPoNumber": "<string>",
"customerReferenceNumber": "<string>",
"customerTotalRate": 123,
"declaredValue": 123,
"deliveredAt": "2026-10-16T14:30:00",
"dispatchedDate": "2023-12-25",
"dispatcherEmail": "<string>",
"dispatcherName": "<string>",
"dispatcherPhone": "<string>",
"equipment": "<string>",
"freightClass": "<string>",
"holdReason": "<string>",
"invoiceId": "<string>",
"lengthInFeet": 123,
"loadDescription": "<string>",
"loadedDate": "2023-12-25",
"mode": "<string>",
"movementType": "<string>",
"onHold": true,
"pickupAt": "2026-10-16T14:30:00",
"readyDate": "2023-12-25",
"referenceNumbers": [
{
"value": "CONT-123",
"referenceType": "Container Number"
}
],
"releaseDate": "2023-12-25",
"serviceLevel": "<string>",
"shipmentId": "<string>",
"signedBy": "<string>",
"sourceSystem": "<string>",
"sourceSystemId": "<string>",
"sourceSystemMeta": {
"externalBatchId": "BATCH-123"
},
"specialInstructions": "<string>",
"status": "<string>",
"terminal": "<string>",
"trailerNumber": "<string>",
"truckMiles": 1.5,
"volume": 42.5,
"volumeUnit": "<string>",
"weight": 42.5,
"weightUnit": "<string>"
},
"sourceSystem": "<string>",
"sourceSystemId": "<string>"
}
'import requests
url = "https://api.upwell.com/api/rest/shipments"
payload = {
"input": {
"billOfLadingNumber": "<string>",
"billedDate": "2023-12-25",
"billedMiles": 1.5,
"carrierId": "<string>",
"carrierProNumber": "<string>",
"carrierTotalRate": 123,
"companyId": "<string>",
"coveredDate": "2023-12-25",
"createdFromEmailMessageId": "<string>",
"customerId": "<string>",
"customerMiles": 1.5,
"customerPoNumber": "<string>",
"customerReferenceNumber": "<string>",
"customerTotalRate": 123,
"declaredValue": 123,
"deliveredAt": "2026-10-16T14:30:00",
"dispatchedDate": "2023-12-25",
"dispatcherEmail": "<string>",
"dispatcherName": "<string>",
"dispatcherPhone": "<string>",
"equipment": "<string>",
"freightClass": "<string>",
"holdReason": "<string>",
"invoiceId": "<string>",
"lengthInFeet": 123,
"loadDescription": "<string>",
"loadedDate": "2023-12-25",
"mode": "<string>",
"movementType": "<string>",
"onHold": True,
"pickupAt": "2026-10-16T14:30:00",
"readyDate": "2023-12-25",
"referenceNumbers": [
{
"value": "CONT-123",
"referenceType": "Container Number"
}
],
"releaseDate": "2023-12-25",
"serviceLevel": "<string>",
"shipmentId": "<string>",
"signedBy": "<string>",
"sourceSystem": "<string>",
"sourceSystemId": "<string>",
"sourceSystemMeta": { "externalBatchId": "BATCH-123" },
"specialInstructions": "<string>",
"status": "<string>",
"terminal": "<string>",
"trailerNumber": "<string>",
"truckMiles": 1.5,
"volume": 42.5,
"volumeUnit": "<string>",
"weight": 42.5,
"weightUnit": "<string>"
},
"sourceSystem": "<string>",
"sourceSystemId": "<string>"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
input: {
billOfLadingNumber: '<string>',
billedDate: '2023-12-25',
billedMiles: 1.5,
carrierId: '<string>',
carrierProNumber: '<string>',
carrierTotalRate: 123,
companyId: '<string>',
coveredDate: '2023-12-25',
createdFromEmailMessageId: '<string>',
customerId: '<string>',
customerMiles: 1.5,
customerPoNumber: '<string>',
customerReferenceNumber: '<string>',
customerTotalRate: 123,
declaredValue: 123,
deliveredAt: '2026-10-16T14:30:00',
dispatchedDate: '2023-12-25',
dispatcherEmail: '<string>',
dispatcherName: '<string>',
dispatcherPhone: '<string>',
equipment: '<string>',
freightClass: '<string>',
holdReason: '<string>',
invoiceId: '<string>',
lengthInFeet: 123,
loadDescription: '<string>',
loadedDate: '2023-12-25',
mode: '<string>',
movementType: '<string>',
onHold: true,
pickupAt: '2026-10-16T14:30:00',
readyDate: '2023-12-25',
referenceNumbers: [{value: 'CONT-123', referenceType: 'Container Number'}],
releaseDate: '2023-12-25',
serviceLevel: '<string>',
shipmentId: '<string>',
signedBy: '<string>',
sourceSystem: '<string>',
sourceSystemId: '<string>',
sourceSystemMeta: {externalBatchId: 'BATCH-123'},
specialInstructions: '<string>',
status: '<string>',
terminal: '<string>',
trailerNumber: '<string>',
truckMiles: 1.5,
volume: 42.5,
volumeUnit: '<string>',
weight: 42.5,
weightUnit: '<string>'
},
sourceSystem: '<string>',
sourceSystemId: '<string>'
})
};
fetch('https://api.upwell.com/api/rest/shipments', 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.upwell.com/api/rest/shipments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'input' => [
'billOfLadingNumber' => '<string>',
'billedDate' => '2023-12-25',
'billedMiles' => 1.5,
'carrierId' => '<string>',
'carrierProNumber' => '<string>',
'carrierTotalRate' => 123,
'companyId' => '<string>',
'coveredDate' => '2023-12-25',
'createdFromEmailMessageId' => '<string>',
'customerId' => '<string>',
'customerMiles' => 1.5,
'customerPoNumber' => '<string>',
'customerReferenceNumber' => '<string>',
'customerTotalRate' => 123,
'declaredValue' => 123,
'deliveredAt' => '2026-10-16T14:30:00',
'dispatchedDate' => '2023-12-25',
'dispatcherEmail' => '<string>',
'dispatcherName' => '<string>',
'dispatcherPhone' => '<string>',
'equipment' => '<string>',
'freightClass' => '<string>',
'holdReason' => '<string>',
'invoiceId' => '<string>',
'lengthInFeet' => 123,
'loadDescription' => '<string>',
'loadedDate' => '2023-12-25',
'mode' => '<string>',
'movementType' => '<string>',
'onHold' => true,
'pickupAt' => '2026-10-16T14:30:00',
'readyDate' => '2023-12-25',
'referenceNumbers' => [
[
'value' => 'CONT-123',
'referenceType' => 'Container Number'
]
],
'releaseDate' => '2023-12-25',
'serviceLevel' => '<string>',
'shipmentId' => '<string>',
'signedBy' => '<string>',
'sourceSystem' => '<string>',
'sourceSystemId' => '<string>',
'sourceSystemMeta' => [
'externalBatchId' => 'BATCH-123'
],
'specialInstructions' => '<string>',
'status' => '<string>',
'terminal' => '<string>',
'trailerNumber' => '<string>',
'truckMiles' => 1.5,
'volume' => 42.5,
'volumeUnit' => '<string>',
'weight' => 42.5,
'weightUnit' => '<string>'
],
'sourceSystem' => '<string>',
'sourceSystemId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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.upwell.com/api/rest/shipments"
payload := strings.NewReader("{\n \"input\": {\n \"billOfLadingNumber\": \"<string>\",\n \"billedDate\": \"2023-12-25\",\n \"billedMiles\": 1.5,\n \"carrierId\": \"<string>\",\n \"carrierProNumber\": \"<string>\",\n \"carrierTotalRate\": 123,\n \"companyId\": \"<string>\",\n \"coveredDate\": \"2023-12-25\",\n \"createdFromEmailMessageId\": \"<string>\",\n \"customerId\": \"<string>\",\n \"customerMiles\": 1.5,\n \"customerPoNumber\": \"<string>\",\n \"customerReferenceNumber\": \"<string>\",\n \"customerTotalRate\": 123,\n \"declaredValue\": 123,\n \"deliveredAt\": \"2026-10-16T14:30:00\",\n \"dispatchedDate\": \"2023-12-25\",\n \"dispatcherEmail\": \"<string>\",\n \"dispatcherName\": \"<string>\",\n \"dispatcherPhone\": \"<string>\",\n \"equipment\": \"<string>\",\n \"freightClass\": \"<string>\",\n \"holdReason\": \"<string>\",\n \"invoiceId\": \"<string>\",\n \"lengthInFeet\": 123,\n \"loadDescription\": \"<string>\",\n \"loadedDate\": \"2023-12-25\",\n \"mode\": \"<string>\",\n \"movementType\": \"<string>\",\n \"onHold\": true,\n \"pickupAt\": \"2026-10-16T14:30:00\",\n \"readyDate\": \"2023-12-25\",\n \"referenceNumbers\": [\n {\n \"value\": \"CONT-123\",\n \"referenceType\": \"Container Number\"\n }\n ],\n \"releaseDate\": \"2023-12-25\",\n \"serviceLevel\": \"<string>\",\n \"shipmentId\": \"<string>\",\n \"signedBy\": \"<string>\",\n \"sourceSystem\": \"<string>\",\n \"sourceSystemId\": \"<string>\",\n \"sourceSystemMeta\": {\n \"externalBatchId\": \"BATCH-123\"\n },\n \"specialInstructions\": \"<string>\",\n \"status\": \"<string>\",\n \"terminal\": \"<string>\",\n \"trailerNumber\": \"<string>\",\n \"truckMiles\": 1.5,\n \"volume\": 42.5,\n \"volumeUnit\": \"<string>\",\n \"weight\": 42.5,\n \"weightUnit\": \"<string>\"\n },\n \"sourceSystem\": \"<string>\",\n \"sourceSystemId\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.put("https://api.upwell.com/api/rest/shipments")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"input\": {\n \"billOfLadingNumber\": \"<string>\",\n \"billedDate\": \"2023-12-25\",\n \"billedMiles\": 1.5,\n \"carrierId\": \"<string>\",\n \"carrierProNumber\": \"<string>\",\n \"carrierTotalRate\": 123,\n \"companyId\": \"<string>\",\n \"coveredDate\": \"2023-12-25\",\n \"createdFromEmailMessageId\": \"<string>\",\n \"customerId\": \"<string>\",\n \"customerMiles\": 1.5,\n \"customerPoNumber\": \"<string>\",\n \"customerReferenceNumber\": \"<string>\",\n \"customerTotalRate\": 123,\n \"declaredValue\": 123,\n \"deliveredAt\": \"2026-10-16T14:30:00\",\n \"dispatchedDate\": \"2023-12-25\",\n \"dispatcherEmail\": \"<string>\",\n \"dispatcherName\": \"<string>\",\n \"dispatcherPhone\": \"<string>\",\n \"equipment\": \"<string>\",\n \"freightClass\": \"<string>\",\n \"holdReason\": \"<string>\",\n \"invoiceId\": \"<string>\",\n \"lengthInFeet\": 123,\n \"loadDescription\": \"<string>\",\n \"loadedDate\": \"2023-12-25\",\n \"mode\": \"<string>\",\n \"movementType\": \"<string>\",\n \"onHold\": true,\n \"pickupAt\": \"2026-10-16T14:30:00\",\n \"readyDate\": \"2023-12-25\",\n \"referenceNumbers\": [\n {\n \"value\": \"CONT-123\",\n \"referenceType\": \"Container Number\"\n }\n ],\n \"releaseDate\": \"2023-12-25\",\n \"serviceLevel\": \"<string>\",\n \"shipmentId\": \"<string>\",\n \"signedBy\": \"<string>\",\n \"sourceSystem\": \"<string>\",\n \"sourceSystemId\": \"<string>\",\n \"sourceSystemMeta\": {\n \"externalBatchId\": \"BATCH-123\"\n },\n \"specialInstructions\": \"<string>\",\n \"status\": \"<string>\",\n \"terminal\": \"<string>\",\n \"trailerNumber\": \"<string>\",\n \"truckMiles\": 1.5,\n \"volume\": 42.5,\n \"volumeUnit\": \"<string>\",\n \"weight\": 42.5,\n \"weightUnit\": \"<string>\"\n },\n \"sourceSystem\": \"<string>\",\n \"sourceSystemId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.upwell.com/api/rest/shipments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"input\": {\n \"billOfLadingNumber\": \"<string>\",\n \"billedDate\": \"2023-12-25\",\n \"billedMiles\": 1.5,\n \"carrierId\": \"<string>\",\n \"carrierProNumber\": \"<string>\",\n \"carrierTotalRate\": 123,\n \"companyId\": \"<string>\",\n \"coveredDate\": \"2023-12-25\",\n \"createdFromEmailMessageId\": \"<string>\",\n \"customerId\": \"<string>\",\n \"customerMiles\": 1.5,\n \"customerPoNumber\": \"<string>\",\n \"customerReferenceNumber\": \"<string>\",\n \"customerTotalRate\": 123,\n \"declaredValue\": 123,\n \"deliveredAt\": \"2026-10-16T14:30:00\",\n \"dispatchedDate\": \"2023-12-25\",\n \"dispatcherEmail\": \"<string>\",\n \"dispatcherName\": \"<string>\",\n \"dispatcherPhone\": \"<string>\",\n \"equipment\": \"<string>\",\n \"freightClass\": \"<string>\",\n \"holdReason\": \"<string>\",\n \"invoiceId\": \"<string>\",\n \"lengthInFeet\": 123,\n \"loadDescription\": \"<string>\",\n \"loadedDate\": \"2023-12-25\",\n \"mode\": \"<string>\",\n \"movementType\": \"<string>\",\n \"onHold\": true,\n \"pickupAt\": \"2026-10-16T14:30:00\",\n \"readyDate\": \"2023-12-25\",\n \"referenceNumbers\": [\n {\n \"value\": \"CONT-123\",\n \"referenceType\": \"Container Number\"\n }\n ],\n \"releaseDate\": \"2023-12-25\",\n \"serviceLevel\": \"<string>\",\n \"shipmentId\": \"<string>\",\n \"signedBy\": \"<string>\",\n \"sourceSystem\": \"<string>\",\n \"sourceSystemId\": \"<string>\",\n \"sourceSystemMeta\": {\n \"externalBatchId\": \"BATCH-123\"\n },\n \"specialInstructions\": \"<string>\",\n \"status\": \"<string>\",\n \"terminal\": \"<string>\",\n \"trailerNumber\": \"<string>\",\n \"truckMiles\": 1.5,\n \"volume\": 42.5,\n \"volumeUnit\": \"<string>\",\n \"weight\": 42.5,\n \"weightUnit\": \"<string>\"\n },\n \"sourceSystem\": \"<string>\",\n \"sourceSystemId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"updateShipment": {
"affectedRows": 123,
"returning": [
{
"billOfLadingNumber": "<string>",
"billedDate": "2023-12-25",
"carrierId": "<string>",
"carrierProNumber": "<string>",
"carrierTotalRate": 123,
"company": {
"dunsNumber": "<string>",
"id": "<string>",
"logoUrl": "<string>",
"mcNumber": "<string>",
"name": "<string>",
"primaryEmailAddress": "<string>",
"primaryPhone": "<string>",
"sourceSystem": "<string>",
"sourceSystemId": "<string>",
"termsOfService": "<string>",
"website": "<string>"
},
"companyId": "<string>",
"consigneeAddress": {
"city": "<string>",
"companyName": "<string>",
"country": "AD",
"id": "<string>",
"name": "<string>",
"phoneNumber": "<string>",
"stateOrProvince": "<string>",
"streetLine1": "<string>",
"streetLine2": "<string>",
"type": "ADDRESS_BOOK",
"zipOrPostalCode": "<string>"
},
"coveredDate": "2023-12-25",
"createdAt": "2023-11-07T05:31:56Z",
"currency": "AED",
"customerId": "<string>",
"customerPoNumber": "<string>",
"customerReferenceNumber": "<string>",
"customerTotalRate": 123,
"deliveredAt": "2026-10-16T14:30:00",
"dispatchedDate": "2023-12-25",
"dispatcherEmail": "<string>",
"dispatcherName": "<string>",
"dispatcherPhone": "<string>",
"equipment": "<string>",
"id": "<string>",
"invoiceId": "<string>",
"loadDescription": "<string>",
"loadedDate": "2023-12-25",
"pickupAddress": {
"city": "<string>",
"companyName": "<string>",
"country": "AD",
"id": "<string>",
"name": "<string>",
"phoneNumber": "<string>",
"stateOrProvince": "<string>",
"streetLine1": "<string>",
"streetLine2": "<string>",
"type": "ADDRESS_BOOK",
"zipOrPostalCode": "<string>"
},
"pickupAt": "2026-10-16T14:30:00",
"releaseDate": "2023-12-25",
"serviceLevel": "<string>",
"shipmentId": "<string>",
"shipmentInvoices": [
{
"invoice": {
"exceptionsLastEvaluatedAt": "2023-11-07T05:31:56Z",
"id": "<string>",
"number": "<string>"
},
"invoiceId": "<string>",
"shipmentId": "<string>"
}
],
"shipmentLineItems": [
{
"commodityDescription": "<string>",
"createdAt": "2026-10-16T14:30:00",
"deliveryLocationName": "<string>",
"dimensionUnit": "<string>",
"freightClass": "<string>",
"handlingUnit": "<string>",
"handlingUnitQty": 1.5,
"handlingUnitType": "BAG",
"hazmatFlag": true,
"height": 1.5,
"id": "<string>",
"length": 1.5,
"lineNumber": 123,
"nmfcClass": "<string>",
"nmfcNumber": "<string>",
"packageQty": 1.5,
"packageType": "BAG",
"packageUnit": "<string>",
"pickupLocationName": "<string>",
"referenceNumber": "<string>",
"shipmentId": "<string>",
"sourceSystem": "<string>",
"sourceSystemId": "<string>",
"updatedAt": "2026-10-16T14:30:00",
"weight": 1.5,
"weightUnit": "<string>",
"weightUnitType": "CG",
"width": 1.5
}
],
"sourceSystem": "<string>",
"sourceSystemId": "<string>",
"status": "<string>",
"stops": [
{
"address": {
"city": "<string>",
"companyName": "<string>",
"country": "AD",
"id": "<string>",
"name": "<string>",
"phoneNumber": "<string>",
"stateOrProvince": "<string>",
"streetLine1": "<string>",
"streetLine2": "<string>",
"type": "ADDRESS_BOOK",
"zipOrPostalCode": "<string>"
},
"id": "<string>",
"metadata": "{}",
"pieceCount": 123,
"sequenceNumber": 123,
"stopType": "<string>",
"weightAmount": 42.5,
"weightUnit": "<string>"
}
],
"terminal": "<string>",
"trailerNumber": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"volume": 42.5,
"volumeUnit": "<string>",
"weight": 42.5,
"weightUnit": "<string>"
}
]
}
}{
"error": "Not-NULL violation. null value in column \"shipment_id\" of relation \"shipments\" violates not-null constraint",
"code": "constraint-violation"
}{
"error": "Authentication hook unauthorized this request",
"path": "$",
"code": "access-denied"
}Update One Shipment By Source System Id
Update a shipment by source system id.
Integration notes:
- Accepts the shipmentās own scalar fields only;
customerTotalRate,carrierTotalRateanddeclaredValueare integer cents. - Correct related records through their own endpoints:
PUT /api/rest/addresses/{id},PUT /api/rest/stops/{id},PATCH /api/rest/shipment_line_items/{id},POST /api/rest/shipments/{shipmentId}/notes. Pickup and consignee address links are fixed at creation.
curl --request PUT \
--url https://api.upwell.com/api/rest/shipments \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"input": {
"billOfLadingNumber": "<string>",
"billedDate": "2023-12-25",
"billedMiles": 1.5,
"carrierId": "<string>",
"carrierProNumber": "<string>",
"carrierTotalRate": 123,
"companyId": "<string>",
"coveredDate": "2023-12-25",
"createdFromEmailMessageId": "<string>",
"customerId": "<string>",
"customerMiles": 1.5,
"customerPoNumber": "<string>",
"customerReferenceNumber": "<string>",
"customerTotalRate": 123,
"declaredValue": 123,
"deliveredAt": "2026-10-16T14:30:00",
"dispatchedDate": "2023-12-25",
"dispatcherEmail": "<string>",
"dispatcherName": "<string>",
"dispatcherPhone": "<string>",
"equipment": "<string>",
"freightClass": "<string>",
"holdReason": "<string>",
"invoiceId": "<string>",
"lengthInFeet": 123,
"loadDescription": "<string>",
"loadedDate": "2023-12-25",
"mode": "<string>",
"movementType": "<string>",
"onHold": true,
"pickupAt": "2026-10-16T14:30:00",
"readyDate": "2023-12-25",
"referenceNumbers": [
{
"value": "CONT-123",
"referenceType": "Container Number"
}
],
"releaseDate": "2023-12-25",
"serviceLevel": "<string>",
"shipmentId": "<string>",
"signedBy": "<string>",
"sourceSystem": "<string>",
"sourceSystemId": "<string>",
"sourceSystemMeta": {
"externalBatchId": "BATCH-123"
},
"specialInstructions": "<string>",
"status": "<string>",
"terminal": "<string>",
"trailerNumber": "<string>",
"truckMiles": 1.5,
"volume": 42.5,
"volumeUnit": "<string>",
"weight": 42.5,
"weightUnit": "<string>"
},
"sourceSystem": "<string>",
"sourceSystemId": "<string>"
}
'import requests
url = "https://api.upwell.com/api/rest/shipments"
payload = {
"input": {
"billOfLadingNumber": "<string>",
"billedDate": "2023-12-25",
"billedMiles": 1.5,
"carrierId": "<string>",
"carrierProNumber": "<string>",
"carrierTotalRate": 123,
"companyId": "<string>",
"coveredDate": "2023-12-25",
"createdFromEmailMessageId": "<string>",
"customerId": "<string>",
"customerMiles": 1.5,
"customerPoNumber": "<string>",
"customerReferenceNumber": "<string>",
"customerTotalRate": 123,
"declaredValue": 123,
"deliveredAt": "2026-10-16T14:30:00",
"dispatchedDate": "2023-12-25",
"dispatcherEmail": "<string>",
"dispatcherName": "<string>",
"dispatcherPhone": "<string>",
"equipment": "<string>",
"freightClass": "<string>",
"holdReason": "<string>",
"invoiceId": "<string>",
"lengthInFeet": 123,
"loadDescription": "<string>",
"loadedDate": "2023-12-25",
"mode": "<string>",
"movementType": "<string>",
"onHold": True,
"pickupAt": "2026-10-16T14:30:00",
"readyDate": "2023-12-25",
"referenceNumbers": [
{
"value": "CONT-123",
"referenceType": "Container Number"
}
],
"releaseDate": "2023-12-25",
"serviceLevel": "<string>",
"shipmentId": "<string>",
"signedBy": "<string>",
"sourceSystem": "<string>",
"sourceSystemId": "<string>",
"sourceSystemMeta": { "externalBatchId": "BATCH-123" },
"specialInstructions": "<string>",
"status": "<string>",
"terminal": "<string>",
"trailerNumber": "<string>",
"truckMiles": 1.5,
"volume": 42.5,
"volumeUnit": "<string>",
"weight": 42.5,
"weightUnit": "<string>"
},
"sourceSystem": "<string>",
"sourceSystemId": "<string>"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
input: {
billOfLadingNumber: '<string>',
billedDate: '2023-12-25',
billedMiles: 1.5,
carrierId: '<string>',
carrierProNumber: '<string>',
carrierTotalRate: 123,
companyId: '<string>',
coveredDate: '2023-12-25',
createdFromEmailMessageId: '<string>',
customerId: '<string>',
customerMiles: 1.5,
customerPoNumber: '<string>',
customerReferenceNumber: '<string>',
customerTotalRate: 123,
declaredValue: 123,
deliveredAt: '2026-10-16T14:30:00',
dispatchedDate: '2023-12-25',
dispatcherEmail: '<string>',
dispatcherName: '<string>',
dispatcherPhone: '<string>',
equipment: '<string>',
freightClass: '<string>',
holdReason: '<string>',
invoiceId: '<string>',
lengthInFeet: 123,
loadDescription: '<string>',
loadedDate: '2023-12-25',
mode: '<string>',
movementType: '<string>',
onHold: true,
pickupAt: '2026-10-16T14:30:00',
readyDate: '2023-12-25',
referenceNumbers: [{value: 'CONT-123', referenceType: 'Container Number'}],
releaseDate: '2023-12-25',
serviceLevel: '<string>',
shipmentId: '<string>',
signedBy: '<string>',
sourceSystem: '<string>',
sourceSystemId: '<string>',
sourceSystemMeta: {externalBatchId: 'BATCH-123'},
specialInstructions: '<string>',
status: '<string>',
terminal: '<string>',
trailerNumber: '<string>',
truckMiles: 1.5,
volume: 42.5,
volumeUnit: '<string>',
weight: 42.5,
weightUnit: '<string>'
},
sourceSystem: '<string>',
sourceSystemId: '<string>'
})
};
fetch('https://api.upwell.com/api/rest/shipments', 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.upwell.com/api/rest/shipments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'input' => [
'billOfLadingNumber' => '<string>',
'billedDate' => '2023-12-25',
'billedMiles' => 1.5,
'carrierId' => '<string>',
'carrierProNumber' => '<string>',
'carrierTotalRate' => 123,
'companyId' => '<string>',
'coveredDate' => '2023-12-25',
'createdFromEmailMessageId' => '<string>',
'customerId' => '<string>',
'customerMiles' => 1.5,
'customerPoNumber' => '<string>',
'customerReferenceNumber' => '<string>',
'customerTotalRate' => 123,
'declaredValue' => 123,
'deliveredAt' => '2026-10-16T14:30:00',
'dispatchedDate' => '2023-12-25',
'dispatcherEmail' => '<string>',
'dispatcherName' => '<string>',
'dispatcherPhone' => '<string>',
'equipment' => '<string>',
'freightClass' => '<string>',
'holdReason' => '<string>',
'invoiceId' => '<string>',
'lengthInFeet' => 123,
'loadDescription' => '<string>',
'loadedDate' => '2023-12-25',
'mode' => '<string>',
'movementType' => '<string>',
'onHold' => true,
'pickupAt' => '2026-10-16T14:30:00',
'readyDate' => '2023-12-25',
'referenceNumbers' => [
[
'value' => 'CONT-123',
'referenceType' => 'Container Number'
]
],
'releaseDate' => '2023-12-25',
'serviceLevel' => '<string>',
'shipmentId' => '<string>',
'signedBy' => '<string>',
'sourceSystem' => '<string>',
'sourceSystemId' => '<string>',
'sourceSystemMeta' => [
'externalBatchId' => 'BATCH-123'
],
'specialInstructions' => '<string>',
'status' => '<string>',
'terminal' => '<string>',
'trailerNumber' => '<string>',
'truckMiles' => 1.5,
'volume' => 42.5,
'volumeUnit' => '<string>',
'weight' => 42.5,
'weightUnit' => '<string>'
],
'sourceSystem' => '<string>',
'sourceSystemId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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.upwell.com/api/rest/shipments"
payload := strings.NewReader("{\n \"input\": {\n \"billOfLadingNumber\": \"<string>\",\n \"billedDate\": \"2023-12-25\",\n \"billedMiles\": 1.5,\n \"carrierId\": \"<string>\",\n \"carrierProNumber\": \"<string>\",\n \"carrierTotalRate\": 123,\n \"companyId\": \"<string>\",\n \"coveredDate\": \"2023-12-25\",\n \"createdFromEmailMessageId\": \"<string>\",\n \"customerId\": \"<string>\",\n \"customerMiles\": 1.5,\n \"customerPoNumber\": \"<string>\",\n \"customerReferenceNumber\": \"<string>\",\n \"customerTotalRate\": 123,\n \"declaredValue\": 123,\n \"deliveredAt\": \"2026-10-16T14:30:00\",\n \"dispatchedDate\": \"2023-12-25\",\n \"dispatcherEmail\": \"<string>\",\n \"dispatcherName\": \"<string>\",\n \"dispatcherPhone\": \"<string>\",\n \"equipment\": \"<string>\",\n \"freightClass\": \"<string>\",\n \"holdReason\": \"<string>\",\n \"invoiceId\": \"<string>\",\n \"lengthInFeet\": 123,\n \"loadDescription\": \"<string>\",\n \"loadedDate\": \"2023-12-25\",\n \"mode\": \"<string>\",\n \"movementType\": \"<string>\",\n \"onHold\": true,\n \"pickupAt\": \"2026-10-16T14:30:00\",\n \"readyDate\": \"2023-12-25\",\n \"referenceNumbers\": [\n {\n \"value\": \"CONT-123\",\n \"referenceType\": \"Container Number\"\n }\n ],\n \"releaseDate\": \"2023-12-25\",\n \"serviceLevel\": \"<string>\",\n \"shipmentId\": \"<string>\",\n \"signedBy\": \"<string>\",\n \"sourceSystem\": \"<string>\",\n \"sourceSystemId\": \"<string>\",\n \"sourceSystemMeta\": {\n \"externalBatchId\": \"BATCH-123\"\n },\n \"specialInstructions\": \"<string>\",\n \"status\": \"<string>\",\n \"terminal\": \"<string>\",\n \"trailerNumber\": \"<string>\",\n \"truckMiles\": 1.5,\n \"volume\": 42.5,\n \"volumeUnit\": \"<string>\",\n \"weight\": 42.5,\n \"weightUnit\": \"<string>\"\n },\n \"sourceSystem\": \"<string>\",\n \"sourceSystemId\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.put("https://api.upwell.com/api/rest/shipments")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"input\": {\n \"billOfLadingNumber\": \"<string>\",\n \"billedDate\": \"2023-12-25\",\n \"billedMiles\": 1.5,\n \"carrierId\": \"<string>\",\n \"carrierProNumber\": \"<string>\",\n \"carrierTotalRate\": 123,\n \"companyId\": \"<string>\",\n \"coveredDate\": \"2023-12-25\",\n \"createdFromEmailMessageId\": \"<string>\",\n \"customerId\": \"<string>\",\n \"customerMiles\": 1.5,\n \"customerPoNumber\": \"<string>\",\n \"customerReferenceNumber\": \"<string>\",\n \"customerTotalRate\": 123,\n \"declaredValue\": 123,\n \"deliveredAt\": \"2026-10-16T14:30:00\",\n \"dispatchedDate\": \"2023-12-25\",\n \"dispatcherEmail\": \"<string>\",\n \"dispatcherName\": \"<string>\",\n \"dispatcherPhone\": \"<string>\",\n \"equipment\": \"<string>\",\n \"freightClass\": \"<string>\",\n \"holdReason\": \"<string>\",\n \"invoiceId\": \"<string>\",\n \"lengthInFeet\": 123,\n \"loadDescription\": \"<string>\",\n \"loadedDate\": \"2023-12-25\",\n \"mode\": \"<string>\",\n \"movementType\": \"<string>\",\n \"onHold\": true,\n \"pickupAt\": \"2026-10-16T14:30:00\",\n \"readyDate\": \"2023-12-25\",\n \"referenceNumbers\": [\n {\n \"value\": \"CONT-123\",\n \"referenceType\": \"Container Number\"\n }\n ],\n \"releaseDate\": \"2023-12-25\",\n \"serviceLevel\": \"<string>\",\n \"shipmentId\": \"<string>\",\n \"signedBy\": \"<string>\",\n \"sourceSystem\": \"<string>\",\n \"sourceSystemId\": \"<string>\",\n \"sourceSystemMeta\": {\n \"externalBatchId\": \"BATCH-123\"\n },\n \"specialInstructions\": \"<string>\",\n \"status\": \"<string>\",\n \"terminal\": \"<string>\",\n \"trailerNumber\": \"<string>\",\n \"truckMiles\": 1.5,\n \"volume\": 42.5,\n \"volumeUnit\": \"<string>\",\n \"weight\": 42.5,\n \"weightUnit\": \"<string>\"\n },\n \"sourceSystem\": \"<string>\",\n \"sourceSystemId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.upwell.com/api/rest/shipments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"input\": {\n \"billOfLadingNumber\": \"<string>\",\n \"billedDate\": \"2023-12-25\",\n \"billedMiles\": 1.5,\n \"carrierId\": \"<string>\",\n \"carrierProNumber\": \"<string>\",\n \"carrierTotalRate\": 123,\n \"companyId\": \"<string>\",\n \"coveredDate\": \"2023-12-25\",\n \"createdFromEmailMessageId\": \"<string>\",\n \"customerId\": \"<string>\",\n \"customerMiles\": 1.5,\n \"customerPoNumber\": \"<string>\",\n \"customerReferenceNumber\": \"<string>\",\n \"customerTotalRate\": 123,\n \"declaredValue\": 123,\n \"deliveredAt\": \"2026-10-16T14:30:00\",\n \"dispatchedDate\": \"2023-12-25\",\n \"dispatcherEmail\": \"<string>\",\n \"dispatcherName\": \"<string>\",\n \"dispatcherPhone\": \"<string>\",\n \"equipment\": \"<string>\",\n \"freightClass\": \"<string>\",\n \"holdReason\": \"<string>\",\n \"invoiceId\": \"<string>\",\n \"lengthInFeet\": 123,\n \"loadDescription\": \"<string>\",\n \"loadedDate\": \"2023-12-25\",\n \"mode\": \"<string>\",\n \"movementType\": \"<string>\",\n \"onHold\": true,\n \"pickupAt\": \"2026-10-16T14:30:00\",\n \"readyDate\": \"2023-12-25\",\n \"referenceNumbers\": [\n {\n \"value\": \"CONT-123\",\n \"referenceType\": \"Container Number\"\n }\n ],\n \"releaseDate\": \"2023-12-25\",\n \"serviceLevel\": \"<string>\",\n \"shipmentId\": \"<string>\",\n \"signedBy\": \"<string>\",\n \"sourceSystem\": \"<string>\",\n \"sourceSystemId\": \"<string>\",\n \"sourceSystemMeta\": {\n \"externalBatchId\": \"BATCH-123\"\n },\n \"specialInstructions\": \"<string>\",\n \"status\": \"<string>\",\n \"terminal\": \"<string>\",\n \"trailerNumber\": \"<string>\",\n \"truckMiles\": 1.5,\n \"volume\": 42.5,\n \"volumeUnit\": \"<string>\",\n \"weight\": 42.5,\n \"weightUnit\": \"<string>\"\n },\n \"sourceSystem\": \"<string>\",\n \"sourceSystemId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"updateShipment": {
"affectedRows": 123,
"returning": [
{
"billOfLadingNumber": "<string>",
"billedDate": "2023-12-25",
"carrierId": "<string>",
"carrierProNumber": "<string>",
"carrierTotalRate": 123,
"company": {
"dunsNumber": "<string>",
"id": "<string>",
"logoUrl": "<string>",
"mcNumber": "<string>",
"name": "<string>",
"primaryEmailAddress": "<string>",
"primaryPhone": "<string>",
"sourceSystem": "<string>",
"sourceSystemId": "<string>",
"termsOfService": "<string>",
"website": "<string>"
},
"companyId": "<string>",
"consigneeAddress": {
"city": "<string>",
"companyName": "<string>",
"country": "AD",
"id": "<string>",
"name": "<string>",
"phoneNumber": "<string>",
"stateOrProvince": "<string>",
"streetLine1": "<string>",
"streetLine2": "<string>",
"type": "ADDRESS_BOOK",
"zipOrPostalCode": "<string>"
},
"coveredDate": "2023-12-25",
"createdAt": "2023-11-07T05:31:56Z",
"currency": "AED",
"customerId": "<string>",
"customerPoNumber": "<string>",
"customerReferenceNumber": "<string>",
"customerTotalRate": 123,
"deliveredAt": "2026-10-16T14:30:00",
"dispatchedDate": "2023-12-25",
"dispatcherEmail": "<string>",
"dispatcherName": "<string>",
"dispatcherPhone": "<string>",
"equipment": "<string>",
"id": "<string>",
"invoiceId": "<string>",
"loadDescription": "<string>",
"loadedDate": "2023-12-25",
"pickupAddress": {
"city": "<string>",
"companyName": "<string>",
"country": "AD",
"id": "<string>",
"name": "<string>",
"phoneNumber": "<string>",
"stateOrProvince": "<string>",
"streetLine1": "<string>",
"streetLine2": "<string>",
"type": "ADDRESS_BOOK",
"zipOrPostalCode": "<string>"
},
"pickupAt": "2026-10-16T14:30:00",
"releaseDate": "2023-12-25",
"serviceLevel": "<string>",
"shipmentId": "<string>",
"shipmentInvoices": [
{
"invoice": {
"exceptionsLastEvaluatedAt": "2023-11-07T05:31:56Z",
"id": "<string>",
"number": "<string>"
},
"invoiceId": "<string>",
"shipmentId": "<string>"
}
],
"shipmentLineItems": [
{
"commodityDescription": "<string>",
"createdAt": "2026-10-16T14:30:00",
"deliveryLocationName": "<string>",
"dimensionUnit": "<string>",
"freightClass": "<string>",
"handlingUnit": "<string>",
"handlingUnitQty": 1.5,
"handlingUnitType": "BAG",
"hazmatFlag": true,
"height": 1.5,
"id": "<string>",
"length": 1.5,
"lineNumber": 123,
"nmfcClass": "<string>",
"nmfcNumber": "<string>",
"packageQty": 1.5,
"packageType": "BAG",
"packageUnit": "<string>",
"pickupLocationName": "<string>",
"referenceNumber": "<string>",
"shipmentId": "<string>",
"sourceSystem": "<string>",
"sourceSystemId": "<string>",
"updatedAt": "2026-10-16T14:30:00",
"weight": 1.5,
"weightUnit": "<string>",
"weightUnitType": "CG",
"width": 1.5
}
],
"sourceSystem": "<string>",
"sourceSystemId": "<string>",
"status": "<string>",
"stops": [
{
"address": {
"city": "<string>",
"companyName": "<string>",
"country": "AD",
"id": "<string>",
"name": "<string>",
"phoneNumber": "<string>",
"stateOrProvince": "<string>",
"streetLine1": "<string>",
"streetLine2": "<string>",
"type": "ADDRESS_BOOK",
"zipOrPostalCode": "<string>"
},
"id": "<string>",
"metadata": "{}",
"pieceCount": 123,
"sequenceNumber": 123,
"stopType": "<string>",
"weightAmount": 42.5,
"weightUnit": "<string>"
}
],
"terminal": "<string>",
"trailerNumber": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"volume": 42.5,
"volumeUnit": "<string>",
"weight": 42.5,
"weightUnit": "<string>"
}
]
}
}{
"error": "Not-NULL violation. null value in column \"shipment_id\" of relation \"shipments\" violates not-null constraint",
"code": "constraint-violation"
}{
"error": "Authentication hook unauthorized this request",
"path": "$",
"code": "access-denied"
}sourceSystem + sourceSystemId inside input to update without the Upwell id. See Idempotency & retries.Authorizations
Your API key, sent in the Authorization header: Authorization: YOUR_API_KEY. A Bearer prefix is also accepted (Authorization: Bearer YOUR_API_KEY). Keys are created in the Upwell dashboard (Account ā API keys) and are scoped to one organization.
Query Parameters
"sourceSystem" is required (enter it either in parameters or request body)
"sourceSystemId" is required (enter it either in parameters or request body)
Body
Query parameters can also be provided in the request body as a JSON object
Object containing the fields to create or update. Only the fields in this endpoint schema are accepted.
Show child attributes
Show child attributes
Name of the originating system. Together with sourceSystemId, identifies the external record within your organization.
Record identifier in the originating system. Preserve leading zeros; use it with sourceSystem for lookup/update.
Response
Responses for PUT /api/rest/shipments
response of any mutation on the table "shipments"
Show child attributes
Show child attributes

