Skip to content

Approve a trade account request

POST
/trade-applications/{id}/approve
curl --request POST \
--url https://example.com/trade-applications/019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f/approve \
--header 'Content-Type: application/json' \
--cookie bottle.session_token=<bottle.session_token> \
--data '{ "customerId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "create": true, "paymentTerms": "on_account", "paymentTermsDays": 1 }'

CustomerId joins the shopper to an existing trade customer; create: true makes a trade customer from the request (its name, phone, email and address, with the company and VAT numbers and other contacts in its notes), on paymentTerms when given. The shopper joins as a manager, is emailed, and sees trade prices from then on. Each contact on the request is invited to their own sign-in with their role (invited lists them), skipping the shopper and anybody already on the customer.

id
required

UUID v7

string format: uuid
Example
019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f

UUID v7

Media typeapplication/json
object
customerId

UUID v7

string format: uuid
Example
019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f
create
boolean
paymentTerms
string
Allowed values: on_account cash_on_delivery prepaid
paymentTermsDays
integer
<= 365

Approved, with the colleagues invited

Media typeapplication/json
object
id
required

UUID v7

string format: uuid
status
required
string
Allowed values: pending approved declined
businessName
required
string
phone
required
string
companyNumber
required
string | null
vatNumber
required
string | null
contacts
required
Array<object> | null
object
name
required
string
role
required
string
Allowed values: buyer accounts
email
string
phone
string
address
required
object
line1
string
<= 120 characters
line2
string
<= 120 characters
city
string
<= 80 characters
postcode
string
<= 10 characters
notes
required
string | null
account
required
object
id
required

UUID v7

string format: uuid
email
required
string
name
required
string
customerId
required

UUID v7

string | null format: uuid
reason
required
string | null
decidedAt
required
string | null format: date-time
createdAt
required
string format: date-time
invited
required
Array<object>
object
email
required
string
role
required
string
Allowed values: buyer accounts
Example
{
"id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"status": "pending",
"contacts": [
{
"role": "buyer"
}
],
"account": {
"id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f"
},
"customerId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"invited": [
{
"role": "buyer"
}
]
}

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 request, customer or sign-in

Media typeapplication/json
object
error
required
string
message
required
string
Example
{
"error": "not_found",
"message": "Customer not found"
}

Already answered, or the customer is a household

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"
}
]
}