Get a replenishment
curl --request GET \
--url https://api.cubbo.com/v1/replenishments/{replenishment_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.cubbo.com/v1/replenishments/{replenishment_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.cubbo.com/v1/replenishments/{replenishment_id}', 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.cubbo.com/v1/replenishments/{replenishment_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.cubbo.com/v1/replenishments/{replenishment_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.cubbo.com/v1/replenishments/{replenishment_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cubbo.com/v1/replenishments/{replenishment_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": 55001,
"status": "PROCESSING",
"store_id": 1234,
"notes": "Pallet 2 contains fragile items",
"created_at": "2026-10-12T14:03:11.512Z",
"expected_arrived_at": "2026-11-02T15:00:00.000Z",
"sell_ahead": false,
"declared_value": null,
"is_return": false,
"completed_at": null,
"supplier_invoices": [
{
"invoice_number": "F-111"
},
{
"invoice_number": "F-222"
}
],
"supplier_invoice_files": [
{
"url": "https://files.example.com/replenishments/55001/factura.pdf?signature=fake",
"filename": "factura.pdf",
"content_type": "application/pdf",
"byte_size": 48213,
"expires_at": "2026-10-12T14:18:11Z"
}
],
"return": null,
"replenishment_products": [
{
"product_id": 9001,
"expected_quantity": 100,
"unit_value": "12.5",
"product": {
"id": 9001,
"name": "Red T-shirt M",
"bar_code": "7501234567890",
"is_scannable": true,
"product_codes": [
{
"id": 31001,
"sku": "SKU-RED-M"
}
]
},
"received_quantity": 80,
"received_by_invoice": [
{
"invoice_number": "F-111",
"quantity": 50
},
{
"invoice_number": "F-222",
"quantity": 20
},
{
"invoice_number": null,
"quantity": 10
}
]
},
{
"product_id": 9002,
"expected_quantity": 48,
"unit_value": null,
"product": {
"id": 9002,
"name": "Blue box",
"bar_code": "7501234567891",
"is_scannable": true,
"product_codes": [
{
"id": 31002,
"sku": "SKU-BOX-BLUE"
}
]
},
"received_quantity": 0,
"received_by_invoice": []
}
]
}Replenishments
Get a replenishment
Returns a replenishment with its lines, the quantities received so far, the supplier invoice numbers captured at reception and the documents uploaded during receiving.
replenishment_products[].received_quantitycounts units physically received for the line (counted at the dock, stored, or reserved), so it is0until receiving starts and excludes sell-ahead units that have not arrived.replenishment_products[].received_by_invoicesplitsreceived_quantityby the supplier invoice (factura) number each unit was stamped with at reception. Units received without a captured invoice fall into theinvoice_number: nullbucket, which is listed last. The buckets always add up toreceived_quantity. Supplier invoice capture must be enabled for the warehouse or the store by Cubbo support; otherwise everything lands in thenullbucket.supplier_invoiceslists the distinct supplier invoice numbers captured for this replenishment (the fiscal record, kept even after the units are put away).supplier_invoice_fileslists the documents uploaded during receiving as short-lived download links (valid for 15 minutes).returnis filled only when the replenishment is the reception of a return (is_return: true).
GET
/
replenishments
/
{replenishment_id}
Get a replenishment
curl --request GET \
--url https://api.cubbo.com/v1/replenishments/{replenishment_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.cubbo.com/v1/replenishments/{replenishment_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.cubbo.com/v1/replenishments/{replenishment_id}', 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.cubbo.com/v1/replenishments/{replenishment_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.cubbo.com/v1/replenishments/{replenishment_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.cubbo.com/v1/replenishments/{replenishment_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cubbo.com/v1/replenishments/{replenishment_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": 55001,
"status": "PROCESSING",
"store_id": 1234,
"notes": "Pallet 2 contains fragile items",
"created_at": "2026-10-12T14:03:11.512Z",
"expected_arrived_at": "2026-11-02T15:00:00.000Z",
"sell_ahead": false,
"declared_value": null,
"is_return": false,
"completed_at": null,
"supplier_invoices": [
{
"invoice_number": "F-111"
},
{
"invoice_number": "F-222"
}
],
"supplier_invoice_files": [
{
"url": "https://files.example.com/replenishments/55001/factura.pdf?signature=fake",
"filename": "factura.pdf",
"content_type": "application/pdf",
"byte_size": 48213,
"expires_at": "2026-10-12T14:18:11Z"
}
],
"return": null,
"replenishment_products": [
{
"product_id": 9001,
"expected_quantity": 100,
"unit_value": "12.5",
"product": {
"id": 9001,
"name": "Red T-shirt M",
"bar_code": "7501234567890",
"is_scannable": true,
"product_codes": [
{
"id": 31001,
"sku": "SKU-RED-M"
}
]
},
"received_quantity": 80,
"received_by_invoice": [
{
"invoice_number": "F-111",
"quantity": 50
},
{
"invoice_number": "F-222",
"quantity": 20
},
{
"invoice_number": null,
"quantity": 10
}
]
},
{
"product_id": 9002,
"expected_quantity": 48,
"unit_value": null,
"product": {
"id": 9002,
"name": "Blue box",
"bar_code": "7501234567891",
"is_scannable": true,
"product_codes": [
{
"id": 31002,
"sku": "SKU-BOX-BLUE"
}
]
},
"received_quantity": 0,
"received_by_invoice": []
}
]
}Authorizations
Response
The replenishment
Replenishment as returned by GET, including reception progress and supplier invoices.
Lifecycle status of a replenishment.
WITHOUT_SCHEDULING: created at a warehouse that books receiving appointments natively, but no appointment has been scheduled yet.PENDING: registered but not yet requested to the warehouse (pre-arrival).REQUESTED: announced to the warehouse and awaiting arrival; the initial status at warehouses without native appointment scheduling, and the status after an appointment is booked.IN_TRANSIT: the shipment is on its way to the warehouse.RECEIVED: the shipment was recorded at the dock; counting has not started.PROCESSING: the warehouse is receiving and counting the units (stock has arrived).IN_PUTAWAY: received units are being placed in storage locations.COMPLETED: receiving and putaway finished;completed_atis set.CANCELED: the replenishment was canceled; it no longer counts for external-reference uniqueness.
Available options:
WITHOUT_SCHEDULING, PENDING, REQUESTED, IN_TRANSIT, RECEIVED, PROCESSING, IN_PUTAWAY, COMPLETED, CANCELED Example:
"REQUESTED"