Report a problem with a cylinder
const url = 'https://example.com/storefront/sites/northgate.shop.getbottle.app/account/cylinders/reports';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"customerId":"019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f","productId":"019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f","quantity":1,"problem":"lost","note":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/storefront/sites/northgate.shop.getbottle.app/account/cylinders/reports \ --header 'Content-Type: application/json' \ --data '{ "customerId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "productId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "quantity": 1, "problem": "lost", "note": "example" }'Deliberately without a staff session: a shopper on the business’s own shop. Lost, stolen, damaged, or moved to another supplier, with an optional note. Only a notice to the business, told in the office and by email: the cylinder stays on the customer’s account, marked as reported, and rent goes on, until the business writes it off, invoices for it or dismisses the report. No deposit is refunded by it. The customer can withdraw it until then. Never more than they hold less what is already reported (409 more_than_held). Only a consumer, or a manager of a trade customer, may report (403 not_manager).
Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Example
northgate.shop.getbottle.appRequest Bodyrequired
Section titled “Request Bodyrequired”object
UUID v7
Example
019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8fUUID v7
Example
019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8fWhat the customer said happened: lost, stolen, damaged, or moved to another supplier.
Responses
Section titled “Responses”Reported
object
UUID v7
UUID v7
What the customer said happened: lost, stolen, damaged, or moved to another supplier.
Pending: waiting for the business. written_off: the holding ended, with no charge. invoiced: the holding ended and the customer was invoiced. dismissed: closed with nothing changed. withdrawn: the customer took it back first.
Example
{ "id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "productId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "problem": "lost", "status": "pending"}Refused: the message says why
object
Example
{ "error": "not_found", "message": "Customer not found"}Not signed in
object
Example
{ "error": "not_found", "message": "Customer not found"}Not from the shop itself, or the email is not confirmed yet
object
Example
{ "error": "not_found", "message": "Customer not found"}Not a shop. No body.
More than they hold, or the shop is not selling now
object
Example
{ "error": "not_found", "message": "Customer not found"}Validation failed
object
object
Example
{ "error": "validation", "issues": [ { "path": "email", "message": "Invalid email" } ]}Too many tries
object
Example
{ "error": "not_found", "message": "Customer not found"}