Contents
On this page
Renew Membership - Plugixa Car Wash
POST /plugixa-carwash/v1/memberships/{id}/renew
Start the next period of a membership sold at the desk, after the customer has paid for it.
Needs Plugixa Car Wash Pro with the Memberships app on, and the plugixa_carwash_edit capability.
Request
POST https://your-site.example/wp-json/plugixa-carwash/v1/memberships/14/renew
Path parameters
| Name | Type | Description |
|---|---|---|
id |
integer |
The membership’s id |
Request body
Content type: application/json
No body. The new period starts the day after the current one ends, or today when it has already ended. The membership becomes active and stops being set to end with the period.
Responses
200 OK. data is the renewed membership.
{
"success": true,
"data": {
"id": 14,
"customer_id": 25,
"plan_id": 2,
"status": "active",
"current_period_start": "2026-12-01",
"current_period_end": "2026-12-31",
"cancel_at_period_end": false,
"provider": "manual",
"provider_ref": "",
"provider_customer": "",
"notes": "",
"created_by": 1,
"modified_by": 1,
"created_at": "2026-11-10 08:15:00",
"modified_at": "2026-11-12 10:30:00",
"deleted_at": null,
"customer_name": "Lucas Bernard",
"customer_email": "lucas@example.com",
"plan_name": "Unlimited Monthly",
"plan_color": "#6366F1",
"washes": 0,
"used": 3
}
}
| Field | Type | Meaning |
|---|---|---|
data.current_period_start |
string |
New first day |
data.current_period_end |
string |
New last day |
data.status |
string |
active |
Errors
| Status | Code | When |
|---|---|---|
404 |
plugixa_carwash_not_found |
No membership with that id, or it is in the trash. |
409 |
plugixa_carwash_billed_online |
A stripe membership: it renews itself. |
Plus the errors every endpoint can return.
Examples
curl -s -X POST "https://your-site.example/wp-json/plugixa-carwash/v1/memberships/14/renew" \
-u "admin:$WP_APP_PASSWORD"
<?php
$ch = curl_init('https://your-site.example/wp-json/plugixa-carwash/v1/memberships/14/renew');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_USERPWD => 'admin:' . getenv('WP_APP_PASSWORD'),
]);
$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/memberships/14/renew', {
method: 'POST',
headers: {
'Authorization': `Basic ${auth}`,
},
});
const { data } = await response.json();
Quick Links
Share