curl --request PATCH \
--url https://api.voucher-staging.allride.io/partner/v1/partner/settings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ipAllowlistEnforcement": "api-keys"
}
'const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({ipAllowlistEnforcement: 'api-keys'})
};
fetch('https://api.voucher-staging.allride.io/partner/v1/partner/settings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.voucher-staging.allride.io/partner/v1/partner/settings"
payload = { "ipAllowlistEnforcement": "api-keys" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)HttpResponse<String> response = Unirest.patch("https://api.voucher-staging.allride.io/partner/v1/partner/settings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"ipAllowlistEnforcement\": \"api-keys\"\n}")
.asString();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.voucher-staging.allride.io/partner/v1/partner/settings"
payload := strings.NewReader("{\n \"ipAllowlistEnforcement\": \"api-keys\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.voucher-staging.allride.io/partner/v1/partner/settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'ipAllowlistEnforcement' => 'api-keys'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"data": {
"id": 1069,
"resource": "partner",
"slug": "example-transit",
"name": "Example Transit",
"legalName": "Example Transit GmbH",
"isProvider": false,
"isConsumer": true,
"status": "active",
"apiAccessStatus": "active",
"apiAccessRequestedBy": {
"type": "partner-user",
"id": 4069,
"label": "ops@example.com"
},
"apiAccessRequestedAt": "2026-10-20T09:30:00Z",
"apiAccessDecidedBy": {
"type": "admin-user",
"id": null,
"label": "AllRide"
},
"apiAccessDecidedAt": "2026-10-20T11:02:15Z",
"apiAccessDecisionReason": null,
"defaultLocale": "de",
"timezone": "Europe/Berlin",
"country": "DE",
"contacts": {
"technicalEmail": "dev@example.com",
"operationsEmail": "ops@example.com",
"billingEmail": "billing@example.com"
},
"settings": {
"mfaRequired": true,
"ipAllowlistEnforcement": "api-keys",
"emailOtpLinksEnabled": false,
"defaultLandingDomainId": null
},
"activatedAt": "2026-10-20T09:00:00Z",
"suspendedAt": null,
"suspensionReason": null,
"createdAt": "2026-10-19T14:02:11.418Z",
"updatedAt": "2026-10-22T07:44:09.120Z",
"_links": {
"self": {
"href": "https://api.voucher.allride.io/partner/v1/partner",
"type": "application/json"
},
"workspaceBranding": {
"href": "https://api.voucher.allride.io/partner/v1/branding/workspace",
"type": "application/json"
}
}
}
}Update security settings
Changes MFA policy, IP allowlist enforcement and (consumers) the default landing domain. Add IP allowlist entries before enabling enforcement. Effects reach every API instance within 60 seconds. See IP allowlist.
Required permissions: manage-settings · API keys: not allowed · Recent sign-in: required for dashboard users (15 minutes)
curl --request PATCH \
--url https://api.voucher-staging.allride.io/partner/v1/partner/settings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ipAllowlistEnforcement": "api-keys"
}
'const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({ipAllowlistEnforcement: 'api-keys'})
};
fetch('https://api.voucher-staging.allride.io/partner/v1/partner/settings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.voucher-staging.allride.io/partner/v1/partner/settings"
payload = { "ipAllowlistEnforcement": "api-keys" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)HttpResponse<String> response = Unirest.patch("https://api.voucher-staging.allride.io/partner/v1/partner/settings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"ipAllowlistEnforcement\": \"api-keys\"\n}")
.asString();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.voucher-staging.allride.io/partner/v1/partner/settings"
payload := strings.NewReader("{\n \"ipAllowlistEnforcement\": \"api-keys\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.voucher-staging.allride.io/partner/v1/partner/settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'ipAllowlistEnforcement' => 'api-keys'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"data": {
"id": 1069,
"resource": "partner",
"slug": "example-transit",
"name": "Example Transit",
"legalName": "Example Transit GmbH",
"isProvider": false,
"isConsumer": true,
"status": "active",
"apiAccessStatus": "active",
"apiAccessRequestedBy": {
"type": "partner-user",
"id": 4069,
"label": "ops@example.com"
},
"apiAccessRequestedAt": "2026-10-20T09:30:00Z",
"apiAccessDecidedBy": {
"type": "admin-user",
"id": null,
"label": "AllRide"
},
"apiAccessDecidedAt": "2026-10-20T11:02:15Z",
"apiAccessDecisionReason": null,
"defaultLocale": "de",
"timezone": "Europe/Berlin",
"country": "DE",
"contacts": {
"technicalEmail": "dev@example.com",
"operationsEmail": "ops@example.com",
"billingEmail": "billing@example.com"
},
"settings": {
"mfaRequired": true,
"ipAllowlistEnforcement": "api-keys",
"emailOtpLinksEnabled": false,
"defaultLandingDomainId": null
},
"activatedAt": "2026-10-20T09:00:00Z",
"suspendedAt": null,
"suspensionReason": null,
"createdAt": "2026-10-19T14:02:11.418Z",
"updatedAt": "2026-10-22T07:44:09.120Z",
"_links": {
"self": {
"href": "https://api.voucher.allride.io/partner/v1/partner",
"type": "application/json"
},
"workspaceBranding": {
"href": "https://api.voucher.allride.io/partner/v1/branding/workspace",
"type": "application/json"
}
}
}
}Authorizations
Your API key in Authorization: Bearer <key>. Use vk_test_… keys against the sandbox and vk_live_… keys against production.
Body
Merge patch over settings. emailOtpLinksEnabled is not writable here.
Require a second factor for dashboard users.
IP allowlist enforcement. Treat as an open set: new values may be added.
off, api-keys, api-keys-and-users Your own active custom domain for landing pages; null clears.
0 <= x <= 18446744073709552000Response
OK
Single-object envelope around a Partner.
Your partner record.
Show child attributes
Show child attributes