Altering a campaign
Contents
- Overview
- Version-specific information
- Permissions and authentication
- HTTP parameters
- Headers
- Sample request
- Sample response
- Possible error responses
Overview
| Property | Value |
|---|---|
| Call name | alter-campaign |
| Endpoint URL | https://api0.spaaza.com/internal/alter-campaign |
| Request methods | POST, PUT |
| Request Content-Type | application/json, application/x-www-form-urlencoded |
| Response Content-Type | application/json |
| Auth required | yes |
The alter-campaign endpoint is used to update an existing campaign. It accepts the same campaign fields as add-campaign, with the addition of a mandatory campaign_id parameter to identify the campaign to update. For a detailed breakdown of campaign types and fields, see the Campaign types and fields page.
Version-specific information
There is currently no version-specific information for this endpoint.
Permissions and authentication
The performing user needs to be logged in and have write access to the entity (business or chain) to which the campaign is connected. The user must have permissions_business_chain_campaign set to true in the permissions table.
HTTP parameters
The following HTTP parameters can be passed to the API:
| Parameter | Description |
|---|---|
| campaign_id | (integer, mandatory) The ID of the campaign to update. |
| is_default | (boolean, optional) For loyalty, wallet, and points_wallet campaign types, this flag marks the campaign as the default for its chain. For loyalty campaigns, only one active default loyalty campaign is allowed per chain. Attempting to set a second active loyalty campaign as default will return a parameter_invalid error. |
All other campaign fields that can be passed to the add-campaign endpoint can also be passed to this endpoint to update the campaign. For a detailed breakdown of campaign types and fields see the Campaign types and fields page.
Headers
The following headers can/must be passed to the API call:
| Parameter | Description |
|---|---|
| N/A | N/A |
Sample request
Example curl request to update a loyalty campaign and set it as the default:
curl -X PUT https://api0.spaaza.com/internal/alter-campaign \
-H "X-Spaaza-Session-User-Id: 1548854" \
-H "X-Spaaza-Session-Key: 564e5b4faa7f639dacf1983f1dae62155d5734b789b06b5986c43bfe2542854e" \
-H "Content-Type: application/json" \
-d '{
"campaign_id": 1234,
"title": "ACME Loyalty Programme",
"is_default": true
}'
Sample response
Returns an OK code and a JSON representation of the updated campaign:
{
"result": {
"code": 1,
"status": "ok"
},
"results": {
"campaign": {
"id": 1234,
"chain_id": 1,
"title": "ACME Loyalty Programme",
"description": "ACME loyalty programme with multiple membership levels",
"active": true,
"active_time_from": null,
"active_time_until": null,
"active_weekdays": null,
"operator_type": "or",
"created_date": "2025-11-15T10:30:00+00:00",
"last_modified_date": "2026-03-22T11:00:00+00:00",
"rounding_strategy": "neutral",
"rounding_precision": 2,
"created_voucher_claimed_by_default": false,
"voucher_expiry_days": 365,
"excludes_assignment_matches": false,
"recipient_reward_method": "voucher",
"recipient_reward_amount": 5,
"recipient_reward_discount_ratio": 0,
"currency": {
"currency_id": 2,
"currency_code": "EUR",
"currency_name_en": "Euro",
"currency_symbol": "\u20ac"
},
"is_active": true,
"is_deleted": false,
"is_default": true,
"excludes_referred_users": false,
"visible_to_all_user_segments": true,
"type": "loyalty",
"minimum_basket_total_value_earn": 0,
"maximum_basket_total_value_earn": null,
"minimum_basket_total_value_spend": null,
"maximum_basket_total_value_spend": null,
"redemption_grace_period": 0,
"last_updated_date": "2026-03-22T11:00:00+00:00",
"field_localisations": null,
"assignment_count": 0,
"parameters": [],
"image_filename": null,
"image_url": null,
"image_link": null,
"image_dimension_x": null,
"image_dimension_y": null,
"supports_contribution": false,
"is_contributor": false,
"recipient_campaign_id": null,
"supports_user_segments": true,
"user_segment_id": null,
"excluded_user_segment_id": null,
"voucher_title": null,
"voucher_description": null,
"voucher_notes": null,
"voucher_text": null,
"voucher_image_url": null
},
"result_type": "alter-campaign"
}
}
Possible error responses
The following represents a list of possible error responses for the alter-campaign endpoint:
| Code | Name and Description | HTTP Status Code |
|---|---|---|
| 6 | no_valid_session The user needs to be logged in and a valid session key needs to be sent | 401 |
| 68 | permission_denied_or_non_existent This user has insufficient permissions for this object or the object does not exist. | 403 |
| 244 | campaign_id_invalid The campaign_id passed must be an integer | 400 |
| 245 | campaign_id_not_present The campaign_id must be passed as a parameter | 400 |
| 246 | campaign_id_not_found The campaign_id supplied could not be found. | 404 |
| 419 | parameter_invalid One of the parameters is invalid and should be in a different format. | 400 |