How the allowlist works
- Your partner has up to 100 CIDR entries, each with a label.
-
The setting
ipAllowlistEnforcementdecides what is checked: -
The address checked is your client’s public source address, which is your outbound NAT or proxy address, not a private address inside your network. The API hosts are served through Cloudflare, and AllRide takes the address from the connection Cloudflare received from you (Cloudflare’s
CF-Connecting-IP), not from Cloudflare’s own addresses. Headers such asX-Forwarded-For,X-Client-IPorCF-Connecting-IPthat you send yourself are ignored or overwritten. -
A request from outside the allowlist is refused with
403ip-not-allowed. The response does not echo the address. The denial is recorded in your audit log assecurity.ip-denied(at most once per key or member per minute). - Changes take effect on every server within 60 seconds.
Add your IP ranges
Add entries in IP allowlist in the developer dashboard, or withPOST /partner/v1/ip-allowlist from a dashboard session. Changing the allowlist needs manage-ip-allowlist and a recent sign-in; it is not available to API keys, so a leaked key cannot widen its own access. Reading it (GET /partner/v1/ip-allowlist) needs view-ip-allowlist and works with API keys.
cidr:
- canonical form with the host bits set to zero (
203.0.113.0/24, not203.0.113.7/24); a single address is/32(IPv4) or/128(IPv6); - IPv4 prefixes of
/8or longer, IPv6 prefixes of/32or longer; - no private, loopback or link-local ranges (such as the RFC 1918 private ranges or IPv6 link-local addresses) in production.
400 data-failed-validation and the constraint invalid-cidr. Adding a CIDR that already exists answers 409 ip-allowlist-entry-exists; a 101st entry answers 422 ip-allowlist-limit-reached. To change a range, delete the entry and add a new one; only the label can be edited.
Enable enforcement
- Add all the ranges your systems call from (IPv4 and IPv6, every region and every fallback NAT) before you enable enforcement.
- Set
ipAllowlistEnforcementtoapi-keysin your partner’s security settings in the dashboard. This needsmanage-settingsand is not available to API keys. - Watch your integration and the audit log for
security.ip-deniedfor a while. - Optionally switch to
api-keys-and-usersto restrict dashboard access too.
- Enforcement cannot be switched on while the allowlist is empty, and the last entry cannot be deleted while enforcement is on: both answer
409ip-allowlist-required. Switch enforcementofffirst. - With
api-keys-and-users, a change that would exclude your own current address is refused with422ip-allowlist-would-lock-out.
IPv6
api.voucher.allride.io and api.voucher-staging.allride.io resolve to both IPv4 and IPv6 addresses. If your servers have IPv6 connectivity, they may connect over IPv6, and the address checked is then your IPv6 egress address. Either add your IPv6 egress range (for example 2001:db8:1200::/48), or force your HTTP client to use IPv4. IPv4-mapped IPv6 addresses (::ffff:203.0.113.7) are matched against your IPv4 entries.
Troubleshooting
To find the address AllRide sees, call any endpoint from the host in question with enforcement off, then check
lastUsedIp of the key in the developer dashboard.