CarrierAccount
A CarrierAccount
encapsulates your credentials with the carrier.
The CarrierAccount
object provides CRUD operations for all CarrierAccounts
.
Each EasyPost account is automatically provided a USPS account managed by EasyPost.
Other operations, such as Shipment
creation, can reference CarrierAccounts
to reduce the scope of data returned.
For instance, you may have multiple warehouses that need to use distinct FedEx SmartPost credentials to request the correct rates.
Rate
objects will include a carrier_account_id
field which can be used to determine the
account used for rating.
CarrierType
Fields
objectcredentials
and/or test_credentials
, or may be emptytrue
, only the reference
and description
are possible to updatecarrier_account_id
in other API endpointscredentials
object contained in fields
, this nullable object contains just raw credential pairs for client library consumption.test_credentials
object contained in fields
, this nullable object contains just raw test_credential pairs for client library consumption.CarrierAccount
was createdCarrierAccount
was last updated{
"id": "ca_f64a75cee8ed4c83a7625c1d00cf8f0b",
"object": "CarrierAccount",
"type": "DhlEcsAccount",
"clone": false,
"created_at": "2024-01-24T00:05:37Z",
"updated_at": "2024-01-24T00:05:37Z",
"description": "CA Location DHL eCommerce Solutions Account",
"reference": null,
"billing_type": "carrier",
"readable": "DHL eCommerce Solutions",
"logo": null,
"fields": {
"credentials": {
"client_id": {
"visibility": "visible",
"label": "DHL eCommerce Solutions client ID",
"value": "123456"
},
"client_secret": {
"visibility": "password",
"label": "DHL eCommerce Solutions client secret",
"value": "********"
},
"pickup_id": {
"visibility": "visible",
"label": "DHL eCommerce Solutions pickup ID",
"value": "123456"
},
"distribution_center": {
"visibility": "visible",
"label": "DHL eCommerce Solutions distribution center",
"value": "USLAX1"
}
},
"test_credentials": {
"client_id": {
"visibility": "visible",
"label": "Test DHL eCommerce Solutions client ID",
"value": "123456"
},
"client_secret": {
"visibility": "password",
"label": "Test DHL eCommerce Solutions client secret",
"value": "********"
},
"pickup_id": {
"visibility": "visible",
"label": "Test DHL eCommerce Solutions pickup ID",
"value": "123456"
},
"distribution_center": {
"visibility": "visible",
"label": "Test DHL eCommerce Solutions distribution center",
"value": "USLAX1"
}
}
},
"credentials": {
"client_id": "123456",
"client_secret": "********",
"pickup_id": "123456",
"distribution_center": "USLAX1"
},
"test_credentials": {
"client_id": "123456",
"client_secret": "********",
"pickup_id": "123456",
"distribution_center": "USLAX1"
}
}
Field
pairsField
pairs{
"credentials": {
"client_id": {
"visibility": "visible",
"label": "DHL eCommerce Solutions client ID",
"value": "123456"
},
"client_secret": {
"visibility": "password",
"label": "DHL eCommerce Solutions client secret",
"value": "********"
},
"pickup_id": {
"visibility": "visible",
"label": "DHL eCommerce Solutions pickup ID",
"value": "123456"
},
"distribution_center": {
"visibility": "visible",
"label": "DHL eCommerce Solutions distribution center",
"value": "USLAX1"
}
},
"test_credentials": {
"client_id": {
"visibility": "visible",
"label": "Test DHL eCommerce Solutions client ID",
"value": "123456"
},
"client_secret": {
"visibility": "password",
"label": "Test DHL eCommerce Solutions client secret",
"value": "********"
},
"pickup_id": {
"visibility": "visible",
"label": "Test DHL eCommerce Solutions pickup ID",
"value": "123456"
},
"distribution_center": {
"visibility": "visible",
"label": "Test DHL eCommerce Solutions distribution center",
"value": "USLAX1"
}
}
}
CarrierType
sectionfalse
and true
, respectively. All other field types present plaintext, partly-masked, or masked credential data for reference.{
"visibility": "visible",
"label": "DHL eCommerce Solutions client ID",
"value": "123456"
}
Production OnlyThis call will only work with your Production API Key.
CarrierAccount
objects may be managed through the EasyPost API using the Production API Key only. Multiple accounts can be added for a single carrier.
The CarrierType of the preferred CarrierAccount
should be consulted before attempting to create a new CarrierAccount
, as it will inform you of the field names expected by a certain carrier.
Some carriers may have a custom_workflow
field set to true
.
These carriers cannot be created with the traditional flow listed below and instead have a special steps that must be followed.
Please see Adding Carriers With Custom Workflows for more details on these carriers.
1curl -X POST https://api.easypost.com/v2/carrier_accounts \
2 -u "EASYPOST_API_KEY": \
3 -H 'Content-Type: application/json' \
4 -d '{
5 "carrier_account": {
6 "type": "DhlEcsAccount",
7 "description": "CA Location DHL eCommerce Solutions Account",
8 "reference": "my-reference",
9 "credentials": {
10 "client_id": "123456",
11 "client_secret": "123abc",
12 "distribution_center": "USLAX1",
13 "pickup_id": "123456"
14 },
15 "test_credentials": {
16 "client_id": "123456",
17 "client_secret": "123abc",
18 "distribution_center": "USLAX1",
19 "pickup_id": "123456"
20 }
21 }
22 }'
1{
2 "id": "ca_f64a75cee8ed4c83a7625c1d00cf8f0b",
3 "object": "CarrierAccount",
4 "type": "DhlEcsAccount",
5 "clone": false,
6 "created_at": "2024-01-24T00:05:37Z",
7 "updated_at": "2024-01-24T00:05:37Z",
8 "description": "CA Location DHL eCommerce Solutions Account",
9 "reference": null,
10 "billing_type": "carrier",
11 "readable": "DHL eCommerce Solutions",
12 "logo": null,
13 "fields": {
14 "credentials": {
15 "client_id": {
16 "visibility": "visible",
17 "label": "DHL eCommerce Solutions client ID",
18 "value": "123456"
19 },
20 "client_secret": {
21 "visibility": "password",
22 "label": "DHL eCommerce Solutions client secret",
23 "value": "********"
24 },
25 "pickup_id": {
26 "visibility": "visible",
27 "label": "DHL eCommerce Solutions pickup ID",
28 "value": "123456"
29 },
30 "distribution_center": {
31 "visibility": "visible",
32 "label": "DHL eCommerce Solutions distribution center",
33 "value": "USLAX1"
34 }
35 },
36 "test_credentials": {
37 "client_id": {
38 "visibility": "visible",
39 "label": "Test DHL eCommerce Solutions client ID",
40 "value": "123456"
41 },
42 "client_secret": {
43 "visibility": "password",
44 "label": "Test DHL eCommerce Solutions client secret",
45 "value": "********"
46 },
47 "pickup_id": {
48 "visibility": "visible",
49 "label": "Test DHL eCommerce Solutions pickup ID",
50 "value": "123456"
51 },
52 "distribution_center": {
53 "visibility": "visible",
54 "label": "Test DHL eCommerce Solutions distribution center",
55 "value": "USLAX1"
56 }
57 }
58 },
59 "credentials": {
60 "client_id": "123456",
61 "client_secret": "********",
62 "pickup_id": "123456",
63 "distribution_center": "USLAX1"
64 },
65 "test_credentials": {
66 "client_id": "123456",
67 "client_secret": "********",
68 "pickup_id": "123456",
69 "distribution_center": "USLAX1"
70 }
71}
Production OnlyThis call will only work with your Production API Key.
Retrieve an unpaginated list of all CarrierAccounts
available to the authenticated account.
Only Production API Keysmay be used to retrieve this list.
1curl -X GET https://api.easypost.com/v2/carrier_accounts \
2 -u "EASYPOST_API_KEY":
1[
2 {
3 "id": "ca_9685a1198a75477885a3cdca37559bac",
4 "object": "CarrierAccount",
5 "type": "UspsAccount",
6 "clone": false,
7 "created_at": "2022-10-14T17:23:58Z",
8 "updated_at": "2022-10-14T17:34:05Z",
9 "description": "USPS Account",
10 "reference": null,
11 "billing_type": "easypost",
12 "readable": "USPS",
13 "logo": null,
14 "fields": {
15 "credentials": {
16 "company_name": {
17 "visibility": "visible",
18 "label": "Account Holder Name",
19 "value": ""
20 },
21 "address_street": {
22 "visibility": "visible",
23 "label": "Street Address",
24 "value": ""
25 },
26 "address_city": {
27 "visibility": "visible",
28 "label": "City",
29 "value": ""
30 },
31 "address_state": {
32 "visibility": "visible",
33 "label": "State",
34 "value": ""
35 },
36 "address_zip": {
37 "visibility": "visible",
38 "label": "ZIP Code",
39 "value": ""
40 },
41 "phone": {
42 "visibility": "visible",
43 "label": "Phone Number",
44 "value": ""
45 },
46 "email": {
47 "visibility": "visible",
48 "label": "Email Address",
49 "value": null
50 },
51 "shipper_id": {
52 "visibility": "visible",
53 "label": "Shipper Identifier (Optional)",
54 "value": ""
55 }
56 }
57 },
58 "credentials": {
59 "company_name": "",
60 "address_street": "",
61 "address_city": "",
62 "address_state": "",
63 "address_zip": "",
64 "phone": "",
65 "email": null,
66 "shipper_id": ""
67 },
68 "test_credentials": null
69 }
70]
Production OnlyThis call will only work with your Production API Key.
Retrieve a CarrierAccount
by its id
or reference
. It is recommended to use EasyPost's provided identifiers because we do not enforce a unique reference
.
1curl -X GET https://api.easypost.com/v2/carrier_accounts/ca_... \
2 -u "EASYPOST_API_KEY":
1{
2 "id": "ca_13e1617aec534a8bb7b5daee3d0e471c",
3 "object": "CarrierAccount",
4 "type": "DhlEcsAccount",
5 "clone": false,
6 "created_at": "2024-01-24T00:05:38Z",
7 "updated_at": "2024-01-24T00:05:38Z",
8 "description": "CA Location DHL eCommerce Solutions Account",
9 "reference": null,
10 "billing_type": "carrier",
11 "readable": "DHL eCommerce Solutions",
12 "logo": null,
13 "fields": {
14 "credentials": {
15 "client_id": {
16 "visibility": "visible",
17 "label": "DHL eCommerce Solutions client ID",
18 "value": "123456"
19 },
20 "client_secret": {
21 "visibility": "password",
22 "label": "DHL eCommerce Solutions client secret",
23 "value": "********"
24 },
25 "pickup_id": {
26 "visibility": "visible",
27 "label": "DHL eCommerce Solutions pickup ID",
28 "value": "123456"
29 },
30 "distribution_center": {
31 "visibility": "visible",
32 "label": "DHL eCommerce Solutions distribution center",
33 "value": "USLAX1"
34 }
35 },
36 "test_credentials": {
37 "client_id": {
38 "visibility": "visible",
39 "label": "Test DHL eCommerce Solutions client ID",
40 "value": "123456"
41 },
42 "client_secret": {
43 "visibility": "password",
44 "label": "Test DHL eCommerce Solutions client secret",
45 "value": "********"
46 },
47 "pickup_id": {
48 "visibility": "visible",
49 "label": "Test DHL eCommerce Solutions pickup ID",
50 "value": "123456"
51 },
52 "distribution_center": {
53 "visibility": "visible",
54 "label": "Test DHL eCommerce Solutions distribution center",
55 "value": "USLAX1"
56 }
57 }
58 },
59 "credentials": {
60 "client_id": "123456",
61 "client_secret": "********",
62 "pickup_id": "123456",
63 "distribution_center": "USLAX1"
64 },
65 "test_credentials": {
66 "client_id": "123456",
67 "client_secret": "********",
68 "pickup_id": "123456",
69 "distribution_center": "USLAX1"
70 }
71}
Production OnlyThis call will only work with your Production API Key.
Updates can be made to description
, reference
, and any fields
in credentials
or test_credentials
.
The CarrierType
of the CarrierAccount
should be consulted before attempting to updating an existing CarrierAccount
, as it will inform you of the field names expected by a certain carrier.
An update request for a CarrierAccount
is a partial update; only attributes specifically passed in will be altered.
1curl -X PATCH https://api.easypost.com/v2/carrier_accounts/ca_... \
2 -u "EASYPOST_API_KEY": \
3 -H 'Content-Type: application/json' \
4 -d '{
5 "carrier_account": {
6 "description": "FL Location DHL eCommerce Solutions Account",
7 "credentials": {
8 "pickup_id": "abc123",
9 }
10 }
11 }'
1{
2 "id": "ca_1f69b4afc44a480a8728e19381cb9b0f",
3 "object": "CarrierAccount",
4 "type": "DhlEcsAccount",
5 "clone": false,
6 "created_at": "2024-01-24T00:05:40Z",
7 "updated_at": "2024-01-24T00:05:40Z",
8 "description": "My custom description",
9 "reference": null,
10 "billing_type": "carrier",
11 "readable": "DHL eCommerce Solutions",
12 "logo": null,
13 "fields": {
14 "credentials": {
15 "client_id": {
16 "visibility": "visible",
17 "label": "DHL eCommerce Solutions client ID",
18 "value": "123456"
19 },
20 "client_secret": {
21 "visibility": "password",
22 "label": "DHL eCommerce Solutions client secret",
23 "value": "********"
24 },
25 "pickup_id": {
26 "visibility": "visible",
27 "label": "DHL eCommerce Solutions pickup ID",
28 "value": "123456"
29 },
30 "distribution_center": {
31 "visibility": "visible",
32 "label": "DHL eCommerce Solutions distribution center",
33 "value": "USLAX1"
34 }
35 },
36 "test_credentials": {
37 "client_id": {
38 "visibility": "visible",
39 "label": "Test DHL eCommerce Solutions client ID",
40 "value": "123456"
41 },
42 "client_secret": {
43 "visibility": "password",
44 "label": "Test DHL eCommerce Solutions client secret",
45 "value": "********"
46 },
47 "pickup_id": {
48 "visibility": "visible",
49 "label": "Test DHL eCommerce Solutions pickup ID",
50 "value": "123456"
51 },
52 "distribution_center": {
53 "visibility": "visible",
54 "label": "Test DHL eCommerce Solutions distribution center",
55 "value": "USLAX1"
56 }
57 }
58 },
59 "credentials": {
60 "client_id": "123456",
61 "client_secret": "********",
62 "pickup_id": "123456",
63 "distribution_center": "USLAX1"
64 },
65 "test_credentials": {
66 "client_id": "123456",
67 "client_secret": "********",
68 "pickup_id": "123456",
69 "distribution_center": "USLAX1"
70 }
71}
Production OnlyThis call will only work with your Production API Key.
CarrierAccount
objects may be removed from your account when they become out of date or no longer useful.
1curl -X DELETE https://api.easypost.com/v2/carrier_accounts/ca_... \
2 -u "EASYPOST_API_KEY":
1{}