Geo Compliance
Evaluates the account's most recent Sonar session and returns the current geocompliance status. Use this endpoint to check whether an account holder is currently in a restricted territory before initiating a transaction. Returns the current geocompliance status for the account, including the block reason and matched geofence if applicable.
The Geo Compliance object
Attributes
ID of the Sonar session used for evaluation
ID of the geo compliance decision record
ISO8601 timestamp of when the evaluation occurred
'clear' — location is not within any restricted territory. 'blocked' — location is within a restricted territory or a VPN was detected. 'unknown' — no location data is available. One of clear, blocked, or unknown.
Present when status is 'blocked' or 'unknown'. 'restricted_territory' — account holder's location falls within a geofenced region. 'vpn_detected' — a VPN was detected on the session. 'no_location_data' — no Sonar session or location data available. One of restricted_territory, vpn_detected, or no_location_data.
The matched geofence. Present only when reason is 'restricted_territory'.
{
"sonar_session_id": null,
"decision_id": null,
"evaluated_at": null,
"status": "clear",
"reason": "restricted_territory",
"geofence": {
"id": null,
"name": null
}
}
Get account geo compliance status
Evaluates the account's most recent Sonar session and returns the current geocompliance status. Use this endpoint to check whether an account holder is currently in a restricted territory before initiating a transaction. Returns the current geocompliance status for the account, including the block reason and matched geofence if applicable.
Path parameters
Account ID
Returns
Clear — location is not within any restricted territory
curl --request GET \
--url https://api.framepayments.com/v1/accounts/a70cd72f-e74a-40f2-96a2-3f60714aac4a/geo_compliance \
--header 'Authorization: Bearer API_KEY'
{
"decision_id": "1e11162d-3849-4f9a-b5e6-ccd5ddff7cc0",
"sonar_session_id": "9edc3d97-1a54-4178-9960-0fc1552234c4",
"evaluated_at": "2026-06-10T18:24:37Z",
"status": "clear",
"reason": "no_location_data"
}
List geofences
Returns all active geofences for your platform, including Frame's predefined platform-level geofences and any custom geofences configured for your account. Geofences define the geographic boundaries where restrictions apply. frameOS provides a set of predefined platform-level geofences for common regulatory use cases — including prohibited states for gaming and other regulated industries — which apply automatically to all accounts with the geo_compliance capability. Returns a 422 error if geocompliance is not enabled for your platform.
Parameters
No parameters.
Returns
A dictionary with a data property containing an array of geofence objects
curl --request GET \
--url https://api.framepayments.com/v1/geofences \
--header 'Authorization: Bearer API_KEY'
{
"data": [
{
"id": "9c1e215b-4800-46b4-b12e-34df1e224b66",
"object": "geofence",
"name": "California",
"description": null,
"geofence_type": "polygon",
"active": true,
"metadata": {},
"locked": false,
"geofence_rules": []
}
]
}