Skip to content

Choose a price list’s deposit or rent on each gas type

PUT
/rate-sets/{id}/cylinder-charges
curl --request PUT \
--url https://example.com/rate-sets/019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f/cylinder-charges \
--header 'Content-Type: application/json' \
--cookie __Host-bottle.session_token=<__Host-bottle.session_token> \
--data '{ "charges": [ { "gasTypeId": null, "sizeId": null, "choice": "usual", "amount": null } ] }'

For each gas type (or size with a charge of its own) sent, what the list charges its members: usual (each pays the deposit or rent they are set to), deposit (the deposit, never rent), rent (the rent, never a deposit) or none. amount is the list’s own amount for the one chosen; null is the usual amount. One left out stays as it is. Saved as the list’s rows on those deposits and rents, which GET /rate-sets/{id} shows in prices and, read back per gas type, in cylinderCharges. A gas type or size with no charge, or a choice of a charge it does not have, is a 422 unknown_charge. Where a gas type (or a size) has both a deposit and rent, a list charges one of them or neither, never both: an amount on one needs the other notCharged (422 charges_both otherwise). The one chosen with no row of its own is charged at the usual amount, whoever usually pays it. A customer’s own deposit-or-rent choice, set on their record, still beats the list’s.

id
required

UUID v7

string format: uuid

Example

019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f

UUID v7

Media typeapplication/json
object
charges
required
Array<object>
<= 500 items
object
gasTypeId

UUID v7

string | null format: uuid

Example

019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f
sizeId

UUID v7

string | null format: uuid

Example

019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f
choice
required

What a price list charges its members on one gas type (or size). usual: each member pays the deposit or rent they are set to, at the usual amount. deposit: the deposit and never rent. rent: the rent and never a deposit. none: neither.

string
Allowed values: usual deposit rent none
amount

The list’s amount for the charge chosen. Null: the usual amount. Only with deposit or rent.

object
unitPrice
required
integer
<= 100000000
priceIncludesVat
required
boolean

The list with its charges

Media typeapplication/json
object
id
required

UUID v7

string format: uuid
name
required
string
colour
required
string | null
notes
required
string | null
memberCount
required
integer
priceCount
required
integer
archivedAt
required
string | null format: date-time
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
prices
required
Array<object>
object
productId
required

UUID v7

string format: uuid
unitPrice
required
integer
<= 100000000
priceIncludesVat
required
boolean
notCharged
required
boolean
cylinderCharges
required
Array<object>
object
gasTypeId
required

UUID v7

string | null format: uuid
sizeId
required

UUID v7

string | null format: uuid
name
required
string
depositId
required

UUID v7

string | null format: uuid
rentId
required

UUID v7

string | null format: uuid
choice
required

What a price list charges its members on one gas type (or size). usual: each member pays the deposit or rent they are set to, at the usual amount. deposit: the deposit and never rent. rent: the rent and never a deposit. none: neither.

string
Allowed values: usual deposit rent none
amount
required
object
unitPrice
required
integer
<= 100000000
priceIncludesVat
required
boolean

Example

{
"id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"prices": [
{
"productId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f"
}
],
"cylinderCharges": [
{
"gasTypeId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"sizeId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"depositId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"rentId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"choice": "usual"
}
]
}

Not signed in

Media typeapplication/json
object
error
required
string
message
required
string

Example

{
"error": "not_found",
"message": "Customer not found"
}

Not a member, or without the permission this needs

Media typeapplication/json
object
error
required
string
message
required
string

Example

{
"error": "not_found",
"message": "Customer not found"
}

No such price list

Media typeapplication/json
object
error
required
string
message
required
string

Example

{
"error": "not_found",
"message": "Customer not found"
}

Validation failed

Media typeapplication/json
object
error
required
string
Allowed values: validation
message
required
string
issues
required
Array<object>
object
path
required
string
message
required
string

Example

{
"error": "validation",
"issues": [
{
"path": "email",
"message": "Invalid email"
}
]
}