curl "https://sandbox.api.prava.space/v1/mandates/mdt_123" \
-H "Authorization: Bearer sk_test_..."
import requests
resp = requests.get(
"https://sandbox.api.prava.space/v1/mandates/mdt_123",
headers={"Authorization": "Bearer sk_test_..."},
)
const resp = await fetch("https://sandbox.api.prava.space/v1/mandates/mdt_123", {
headers: {
Authorization: "Bearer sk_test_...",
},
});
{
"id": "mdt_123",
"status": "active",
"approvedAmount": "40.00",
"currency": "USD",
"spent": "40.00",
"chargeCount": 1,
"charges": [
{ "transactionId": "txn_9", "amount": "40.00", "currency": "USD", "status": "completed", "reference": "invoice_2026_07", "createdAt": "2026-07-26T00:00:00Z" }
]
}
{
"error": { "code": "MANDATE_FORBIDDEN", "message": "Caller does not own this mandate" }
}
{
"error": { "code": "MANDATE_NOT_FOUND", "message": "No such mandate" }
}
Server-Side API
Get a Mandate
Retrieve one mandate with its balance and full charge history.
GET
/
v1
/
mandates
/
{id}
curl "https://sandbox.api.prava.space/v1/mandates/mdt_123" \
-H "Authorization: Bearer sk_test_..."
import requests
resp = requests.get(
"https://sandbox.api.prava.space/v1/mandates/mdt_123",
headers={"Authorization": "Bearer sk_test_..."},
)
const resp = await fetch("https://sandbox.api.prava.space/v1/mandates/mdt_123", {
headers: {
Authorization: "Bearer sk_test_...",
},
});
{
"id": "mdt_123",
"status": "active",
"approvedAmount": "40.00",
"currency": "USD",
"spent": "40.00",
"chargeCount": 1,
"charges": [
{ "transactionId": "txn_9", "amount": "40.00", "currency": "USD", "status": "completed", "reference": "invoice_2026_07", "createdAt": "2026-07-26T00:00:00Z" }
]
}
{
"error": { "code": "MANDATE_FORBIDDEN", "message": "Caller does not own this mandate" }
}
{
"error": { "code": "MANDATE_NOT_FOUND", "message": "No such mandate" }
}
Retrieve one mandate with its derived balance and full charge history.
GET /v1/mandates/{id} · Authenticated with your secret key.
Need to create a mandate? Mandate creation is part of the Session APIs — create a mandate with a mandate_setup block on Create Session.
Path parameters
string
required
The mandate id.
Response
Everything in the List Mandates mandate object, plus:string
Cumulative amount charged.
integer
object[]
Error responses
| Status | Code | Cause |
|---|---|---|
| 401 | AUTH_REQUIRED | Missing or invalid credentials |
| 403 | MANDATE_FORBIDDEN | Caller does not own this mandate |
| 404 | MANDATE_NOT_FOUND | No such mandate |
curl "https://sandbox.api.prava.space/v1/mandates/mdt_123" \
-H "Authorization: Bearer sk_test_..."
import requests
resp = requests.get(
"https://sandbox.api.prava.space/v1/mandates/mdt_123",
headers={"Authorization": "Bearer sk_test_..."},
)
const resp = await fetch("https://sandbox.api.prava.space/v1/mandates/mdt_123", {
headers: {
Authorization: "Bearer sk_test_...",
},
});
{
"id": "mdt_123",
"status": "active",
"approvedAmount": "40.00",
"currency": "USD",
"spent": "40.00",
"chargeCount": 1,
"charges": [
{ "transactionId": "txn_9", "amount": "40.00", "currency": "USD", "status": "completed", "reference": "invoice_2026_07", "createdAt": "2026-07-26T00:00:00Z" }
]
}
{
"error": { "code": "MANDATE_FORBIDDEN", "message": "Caller does not own this mandate" }
}
{
"error": { "code": "MANDATE_NOT_FOUND", "message": "No such mandate" }
}
Authorizations
Your secret key: sk_test_* (sandbox) or sk_live_* (production).
Path Parameters
The mandate id.
Response
The mandate detail view.
A standing spending authorization (list view).
Mandate id (mdt_…).
Display-derived usability.
Available options:
available, consumed, expired, paused, cancelled, pending Available options:
pending, active, paused, consumed, cancelled, expired Available options:
one_time, weekly, monthly, yearly Available options:
any, listed The authorized per-charge cap.
Remaining spend in the current window (indicative; the network enforces the real cap).
Next cycle boundary for recurring mandates.
Show child attributes
Show child attributes
Cumulative amount charged.
Show child attributes
Show child attributes