Erase wallet passes by credential uuid or email (GDPR erasure)
Deletes the wallet passes (AccessGrid cards, Google pass rows) for the given uuids and emails in both wallet workers and blocks re-issuance. Requires dual admin auth under JWT_AUTH_MODE=enforce; audited.
curl -X POST "https://api.spkey.co/admin/wallet-erasures" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"keyUuids": [
"example_string"
],
"emails": [
"user@example.com"
]
}'
import requests
import json
url = "https://api.spkey.co/admin/wallet-erasures"
headers = {
"Content-Type": "application/json",
"X-API-Key": "YOUR_API_KEY",
"Authorization": "Bearer YOUR_API_TOKEN"
}
data = {
"keyUuids": [
"example_string"
],
"emails": [
"user@example.com"
]
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://api.spkey.co/admin/wallet-erasures", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "YOUR_API_KEY",
"Authorization": "Bearer YOUR_API_TOKEN"
},
body: JSON.stringify({
"keyUuids": [
"example_string"
],
"emails": [
"user@example.com"
]
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"keyUuids": [
"example_string"
],
"emails": [
"user@example.com"
]
}`)
req, err := http.NewRequest("POST", "https://api.spkey.co/admin/wallet-erasures", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-API-Key", "YOUR_API_KEY")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://api.spkey.co/admin/wallet-erasures')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Content-Type'] = 'application/json'
request['X-API-Key'] = 'YOUR_API_KEY'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
request.body = '{
"keyUuids": [
"example_string"
],
"emails": [
"user@example.com"
]
}'
response = http.request(request)
puts response.body
{
"erasureId": "example_string",
"google": {
"erasedPasses": 3.14,
"deletedCards": 3.14,
"processorPurgePending": 3.14
},
"apple": {
"erasedPasses": 3.14,
"deletedCards": 3.14,
"processorPurgePending": 3.14
},
"processorPurgePending": 3.14
}
{
"error": "Unauthorized",
"message": "Authentication required. Please provide a valid API token",
"code": 401
}
{
"error": "Forbidden",
"message": "You don't have permission to access this resource",
"code": 403
}
{
"error": "Error",
"message": "WALLET_ERASE_FAILED",
"code": 502
}
{
"error": "Service Unavailable",
"message": "The service is temporarily unavailable. Please try again later",
"code": 503
}
POST
/admin/wallet-erasures
POST
Base URLstring
Target server for requests. Edit to use your own host.
⚠️Authentication configuration error - security schemes not found
Content-Typestring
RequiredThe media type of the request body
Options: application/json
Request Preview
Response
Response will appear here after sending the request
Responses
erasureIdstring
Requiredgoogleobject
Requiredappleobject
RequiredprocessorPurgePendingnumber
RequiredWas this page helpful?