curl --request POST \
--url https://api.platform.dakota.xyz/payment-agents/{payment_agent_id}/revoke \
--header 'x-api-key: <api-key>'const options = {method: 'POST', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.platform.dakota.xyz/payment-agents/{payment_agent_id}/revoke', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.platform.dakota.xyz/payment-agents/{payment_agent_id}/revoke"
headers = {"x-api-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.platform.dakota.xyz/payment-agents/{payment_agent_id}/revoke"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"id": "2vWxAgent0000000000000000000",
"name": "My Bill Pay",
"customer_id": "2vWxCustomer0000000000000000",
"hosted": true,
"signer_id": "2vWxSigner000000000000000000",
"signer_public_key": "BHkExampleKeyQm",
"wallet_ids": [],
"state": "revoked"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Not Found",
"status": 404,
"detail": "agent not found"
}Revoke a hosted agent (BETA)
Beta — early access.
Revokes an agent: it can no longer be used, and its signing key is destroyed in the isolated signer service (best-effort — the revoked state is authoritative). Idempotent.
curl --request POST \
--url https://api.platform.dakota.xyz/payment-agents/{payment_agent_id}/revoke \
--header 'x-api-key: <api-key>'const options = {method: 'POST', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.platform.dakota.xyz/payment-agents/{payment_agent_id}/revoke', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.platform.dakota.xyz/payment-agents/{payment_agent_id}/revoke"
headers = {"x-api-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.platform.dakota.xyz/payment-agents/{payment_agent_id}/revoke"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"id": "2vWxAgent0000000000000000000",
"name": "My Bill Pay",
"customer_id": "2vWxCustomer0000000000000000",
"hosted": true,
"signer_id": "2vWxSigner000000000000000000",
"signer_public_key": "BHkExampleKeyQm",
"wallet_ids": [],
"state": "revoked"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Not Found",
"status": 404,
"detail": "agent not found"
}Authorizations
Path Parameters
Response
Agent revoked
base64 P-256 SPKI
DERIVED - wallets whose attached signer groups contain the agent's signer. Empty until the customer's endorsed attaches land.
pending is DERIVED - a non-revoked agent recognized on no wallet. It cannot accept instructions until a wallet attach is endorsed.
pending, active, revoked Present on revoke: the signer groups the (now-revoked) agent's signer still belongs to. A revoked signer can't sign, but its group membership lingers — remove signer_id from each (DELETE /signer-groups/{signer_group_id}/signers/{signer_id}) to finish de-provisioning. Absent when there is nothing to clean up.
Show child attributes
Show child attributes
Was this page helpful?

