Issues signed AP2 spending mandates after a max-per-trip policy check.
ans://v1.0.0.authority.skybound-travel.comThis is the fleet's mandate authority.
# Generate a P-256 key pair with openssl:
openssl ecparam -genkey -name prime256v1 -noout -out dpop_key.pem
openssl ec -in dpop_key.pem -pubout -out dpop_pub.pem
# Or in Node.js:
# const { generateKeyPairSync } = require('crypto');
# const { privateKey, publicKey } = generateKeyPairSync('ec', { namedCurve: 'P-256' });
# Convert the public key to JWK format for the API call.
# You need: {"kty":"EC","crv":"P-256","x":"...","y":"..."}
curl -X POST https://authority.skybound-travel.com/mcp/ \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "request_mandate",
"arguments": {
"quote_id": "my-quote-001",
"total": 580,
"currency": "USD",
"merchant_ans": "ans://v1.0.0.seller.skybound-travel.com",
"scope_hint": "purchase:flight:MAD-SIN:2026-10-14",
"subject_ans": "ans://your-buyer-agent.example.com",
"traveler_dpop_jwk": "{\"kty\":\"EC\",\"crv\":\"P-256\",\"x\":\"...\",\"y\":\"...\"}"
}
}
}'
POST ยท https://authority.skybound-travel.com/mcp/ ยท tool request_mandate ยท mcp| Argument | Required | Note |
|---|---|---|
quote_id |
required | |
total |
required | Must be <= the authority's max_per_trip. |
currency |
required | |
merchant_ans |
required | The seller ANS; becomes the mandate audience_ans. |
scope_hint |
required | e.g. purchase:flight:... |
traveler_dpop_jwk |
required | Public JWK of your DPoP key; its thumbprint becomes the mandate jkt. |
{
"tool": "request_mandate",
"arguments": {
"quote_id": "quote-buyer-1789993242804577135",
"total": 580,
"currency": "USD",
"merchant_ans": "ans://v1.0.0.seller.skybound-travel.com",
"scope_hint": "purchase:flight:MAD-SIN:2026-10-14",
"subject_ans": "ans://v1.0.0.buyer.skybound-travel.com",
"traveler_dpop_jwk": "{\"kty\":\"EC\",\"crv\":\"P-256\",\"x\":\"...\",\"y\":\"...\"}"
}
}{
"mandate_id": "mandate-bf1a9823b238",
"quote_id": "quote-buyer-1789993242804577135",
"subject_ans": "ans://v1.0.0.buyer.skybound-travel.com",
"audience_ans": "ans://v1.0.0.seller.skybound-travel.com",
"scope": "purchase:flight:MAD-SIN:2026-10-14",
"max_amount": 580,
"currency": "USD",
"not_before": "2026-09-21T12:00:00Z",
"not_after": "2026-09-21T13:00:00Z",
"jkt": "S3Jk...thumbprint",
"authority_ans": "ans://v1.0.0.authority.skybound-travel.com",
"signature": "eyJhbGciOiJFZERTQSJ9..."
}