Contents
On this page

Create Fleet Account - Plugixa Car Wash

POST /plugixa-carwash/v1/fleet-accounts

Create a company account.

Needs Plugixa Car Wash Pro with the Fleet accounts app on, and the plugixa_carwash_create capability.

Request

POST https://your-site.example/wp-json/plugixa-carwash/v1/fleet-accounts

Request body

Content type: application/json

Field Type Required Description
name string Yes The company, at most 190 characters.
contact_name string No At most 190 characters. Defaults to empty.
email string No Billing address for statements. Valid when given. Defaults to empty.
phone string No At most 50 characters. Defaults to empty.
address string No Billing address, at most 1000 characters. Line breaks are kept. Defaults to empty.
tax_id string No At most 60 characters. Defaults to empty.
discount number No Percent, 0 to 100. Defaults to 0.
credit_limit number No 0 to 10000000. Defaults to 0.
terms_days integer No 0 to 365. Defaults to 30.
notes string No At most 5000 characters. Defaults to empty.
color string No A hex colour, or empty. Defaults to empty.
status string No published or unpublished. Defaults to published.

Link drivers to it with Add Fleet Member. Statements and charges are handled in the admin: see Company accounts.

{
  "name": "Acme Deliveries",
  "contact_name": "Sarah Jones",
  "email": "accounts@acme.example",
  "discount": 15,
  "credit_limit": 2000
}

Responses

201 Created. data is the new company account.

{
  "success": true,
  "data": {
    "id": 6,
    "name": "Acme Deliveries",
    "contact_name": "Sarah Jones",
    "email": "accounts@acme.example",
    "phone": "+1 217 555 0170",
    "address": "1 Depot Lane\nSpringfield",
    "tax_id": "US123456789",
    "discount": 15.0,
    "credit_limit": 2000.0,
    "terms_days": 30,
    "notes": "",
    "color": "#14B8A6",
    "status": "published",
    "created_by": 1,
    "modified_by": 1,
    "created_at": "2026-11-10 08:15:00",
    "modified_at": "2026-11-12 09:30:00",
    "deleted_at": null,
    "members": 4,
    "unbilled": 240.5,
    "outstanding": 610.0,
    "balance": 850.5
  }
}
Field Type Meaning
data.id integer The company account’s id
data.discount number Percent off its drivers’ bookings
data.credit_limit number Most it may owe. 0 means no limit
data.terms_days integer Days it has to pay a statement
data.members integer Customers linked to it
data.unbilled number Charges not on a statement yet
data.outstanding number Charges on statements issued and not paid
data.balance number unbilled plus outstanding
data.created_at string UTC datetime
data.modified_at string UTC datetime of the last change. Send it back on an update to be warned about a conflicting edit
data.deleted_at string|null null unless the record is in the trash

Errors

Status Code When
422 plugixa_carwash_missing_name name is missing or empty.
422 plugixa_carwash_too_long_{field} A text field is too long. The code names the field.
422 plugixa_carwash_too_small_{field} / too_large_{field} A number is outside its range. The code names the field.
422 plugixa_carwash_invalid_{field} A choice field has a value that is not one of its choices. The code names the field.
422 plugixa_carwash_invalid_email email is not a valid address.

Plus the errors every endpoint can return.

Examples

curl -s -X POST "https://your-site.example/wp-json/plugixa-carwash/v1/fleet-accounts" \
  -u "admin:$WP_APP_PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{"name":"Acme Deliveries","contact_name":"Sarah Jones","email":"accounts@acme.example","discount":15,"credit_limit":2000}'
<?php
$ch = curl_init('https://your-site.example/wp-json/plugixa-carwash/v1/fleet-accounts');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST  => 'POST',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_USERPWD        => 'admin:' . getenv('WP_APP_PASSWORD'),
    CURLOPT_HTTPHEADER     => [
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS     => json_encode([
        'name'         => 'Acme Deliveries',
        'contact_name' => 'Sarah Jones',
        'email'        => 'accounts@acme.example',
        'discount'     => 15,
        'credit_limit' => 2000,
    ]),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
const auth = Buffer.from(`admin:${process.env.WP_APP_PASSWORD}`).toString('base64');
const response = await fetch('https://your-site.example/wp-json/plugixa-carwash/v1/fleet-accounts', {
  method: 'POST',
  headers: {
    'Authorization': `Basic ${auth}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Acme Deliveries',
    contact_name: 'Sarah Jones',
    email: 'accounts@acme.example',
    discount: 15,
    credit_limit: 2000,
  }),
});
const { data } = await response.json();

Quick Links

Share