curl --request POST \
--url https://api.atlast.co/v1/collections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"shipmentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"bookingId": "<string>",
"test": true,
"sendEmail": false
}
'import requests
url = "https://api.atlast.co/v1/collections"
payload = {
"shipmentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"bookingId": "<string>",
"test": True,
"sendEmail": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
shipmentId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
bookingId: '<string>',
test: true,
sendEmail: false
})
};
fetch('https://api.atlast.co/v1/collections', 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.atlast.co/v1/collections",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'shipmentId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'bookingId' => '<string>',
'test' => true,
'sendEmail' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.atlast.co/v1/collections"
payload := strings.NewReader("{\n \"shipmentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"bookingId\": \"<string>\",\n \"test\": true,\n \"sendEmail\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.post("https://api.atlast.co/v1/collections")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"shipmentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"bookingId\": \"<string>\",\n \"test\": true,\n \"sendEmail\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.atlast.co/v1/collections")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"shipmentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"bookingId\": \"<string>\",\n \"test\": true,\n \"sendEmail\": false\n}"
response = http.request(request)
puts response.read_body{
"shipmentId": "<string>",
"collectionState": "<string>",
"collection": {
"bookedTimeSlot": {
"date": "<string>",
"time": "<string>"
},
"rebooked": true,
"externalId": "<string>"
},
"failureReason": "<string>",
"requestedTimeSlot": {
"date": "<string>",
"time": "<string>"
}
}Create shipment collection
curl --request POST \
--url https://api.atlast.co/v1/collections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"shipmentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"bookingId": "<string>",
"test": true,
"sendEmail": false
}
'import requests
url = "https://api.atlast.co/v1/collections"
payload = {
"shipmentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"bookingId": "<string>",
"test": True,
"sendEmail": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
shipmentId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
bookingId: '<string>',
test: true,
sendEmail: false
})
};
fetch('https://api.atlast.co/v1/collections', 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.atlast.co/v1/collections",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'shipmentId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'bookingId' => '<string>',
'test' => true,
'sendEmail' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.atlast.co/v1/collections"
payload := strings.NewReader("{\n \"shipmentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"bookingId\": \"<string>\",\n \"test\": true,\n \"sendEmail\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.post("https://api.atlast.co/v1/collections")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"shipmentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"bookingId\": \"<string>\",\n \"test\": true,\n \"sendEmail\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.atlast.co/v1/collections")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"shipmentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"bookingId\": \"<string>\",\n \"test\": true,\n \"sendEmail\": false\n}"
response = http.request(request)
puts response.read_body{
"shipmentId": "<string>",
"collectionState": "<string>",
"collection": {
"bookedTimeSlot": {
"date": "<string>",
"time": "<string>"
},
"rebooked": true,
"externalId": "<string>"
},
"failureReason": "<string>",
"requestedTimeSlot": {
"date": "<string>",
"time": "<string>"
}
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Body
Home collection details
The id of the shipment created with the return or simple shipment endpoints.
Specify the booking id if given by the shipment collection timeslot endpoint. Not mandatory as if needed the system will try to resolve it as part of the collection process. Used only for Royal Mail Home Collections
The timeslot you would like to book this home collection. if not provided, system will try to book at earliest available time, that will usually be next day.
Show child attributes
Show child attributes
Set this flag to true if you're testing this endpoint, omitting or setting to false will make the system try to book a collection with the carrier. Depending on the carrier this might be difficult to cancel and it will automatically incur costs!
Send customer email communications flag. Setting this to true will make At Last send any collection related emails to the end user. This only impact collection creation emails when using the API. Email communication are conditional on the Carrier. This flag defaults to false.