Intents
Signed payment instructions composed of one or more claims (`transfer`, `issue`, `destroy`, `limit`) that progress through states — `pending` → `prepared` → `committed` → `completed` or `rejected`.
List intents
Authorization
BearerAuth LedgerHeader Access token obtained from POST /oauth/token
In: header
Handle of the target ledger (e.g. demo-co)
In: header
Query Parameters
Maximum records to return
25value <= 100Records to skip
0"pending" | "prepared" | "committed" | "completed" | "rejected"Response Body
application/json
application/json
curl -X GET "https://demo-co.ldg-stg.one/api/v2/intents?filter%5Bmeta.status%5D=completed&filter%5Bdata.claims.target.handle%5D=main%40comercio-ejemplo.com.co&filter%5Bdata.claims.source.handle%5D=svgs%3A10000001%40bancorojo.com.co&filter%5Bdata.schema%5D=payment"{
"data": [
{
"handle": "pay-breb-20260608-001",
"schema": "payment",
"claims": [
{
"action": "transfer",
"amount": 18500000,
"symbol": {
"handle": "cop"
},
"source": {
"handle": "svgs:10000001@bancorojo.com.co",
"custom": {
"name": "Juan Carlos Perez Gomez",
"person": "natural",
"scheme": "cc",
"number": "1023456789",
"country": "co"
}
},
"target": {
"handle": "svgs:10000001@bancorojo.com.co",
"custom": {
"name": "Juan Carlos Perez Gomez",
"person": "natural",
"scheme": "cc",
"number": "1023456789",
"country": "co"
}
},
"metric": "minBalance",
"wallet": {
"handle": "svgs:10000001@bancorojo.com.co",
"custom": {
"name": "Juan Carlos Perez Gomez",
"person": "natural",
"scheme": "cc",
"number": "1023456789",
"country": "co"
}
}
}
],
"config": {
"commit": "auto"
},
"custom": {
"reference": "qr:TERMINAL01@comercio-ejemplo.com.co",
"description": "QR payment at Comercio Ejemplo — 185,000.00 COP"
},
"access": [
{
"action": "any",
"record": "any",
"signer": {
"$circle": "owner"
},
"bearer": {
"$signer": {
"$circle": "services"
}
}
}
]
}
],
"meta": {
"total": 4,
"limit": 25,
"offset": 0
}
}{
"error": {
"code": "unauthorized",
"message": "Bearer token is missing or expired"
}
}Create intent
Authorization
BearerAuth LedgerHeader Access token obtained from POST /oauth/token
In: header
Handle of the target ledger (e.g. demo-co)
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://demo-co.ldg-stg.one/api/v2/intents" \ -H "Content-Type: application/json" \ -d '{ "data": { "handle": "pay-breb-20260608-001", "schema": "payment", "claims": [ { "action": "transfer", "amount": 18500000, "symbol": { "handle": "cop" }, "source": { "handle": "svgs:10000001@bancorojo.com.co", "custom": { "name": "Juan Carlos Perez Gomez", "person": "natural", "scheme": "cc", "number": "1023456789", "country": "co" } }, "target": { "handle": "svgs:99999999@bancoamarillo.com.co", "custom": { "name": "Hub Aggregate Account", "person": "legal", "scheme": "nit", "number": "900100001", "country": "co" } } } ], "config": { "commit": "auto" }, "custom": { "reference": "qr:TERMINAL01@comercio-ejemplo.com.co", "description": "QR payment at Comercio Ejemplo — $185,000.00 COP" } }, "hash": "d6e8f2a4b5c7...", "proofs": [ { "method": "ed25519-v2", "public": "MCowBQYDK2VdAyEAabc123...", "digest": "d6e8f2a4b5c7...", "result": "MEQCIB..." } ] }'{
"data": {
"handle": "pay-breb-20260608-001",
"schema": "payment",
"claims": [
{
"action": "transfer",
"amount": 18500000,
"symbol": {
"handle": "cop"
},
"source": {
"handle": "svgs:10000001@bancorojo.com.co"
},
"target": {
"handle": "svgs:99999999@bancoamarillo.com.co"
}
}
],
"config": {
"commit": "auto"
}
},
"meta": {
"status": "completed",
"created": "2026-06-08T14:30:00.000Z",
"updated": "2026-06-08T14:30:01.200Z"
}
}{
"error": {
"code": "schema-validation-failed",
"message": "Required field 'schema' is missing from data"
}
}{
"error": {
"code": "unauthorized",
"message": "Bearer token is missing or expired"
}
}Get intent
Authorization
BearerAuth LedgerHeader Access token obtained from POST /oauth/token
In: header
Handle of the target ledger (e.g. demo-co)
In: header
Path Parameters
Record handle
Response Body
application/json
application/json
curl -X GET "https://demo-co.ldg-stg.one/api/v2/intents/pay-20260608-001"{
"data": {
"handle": "pay-breb-20260608-001",
"schema": "payment",
"claims": [
{
"action": "transfer",
"amount": 18500000,
"symbol": {
"handle": "cop"
},
"source": {
"handle": "svgs:10000001@bancorojo.com.co"
},
"target": {
"handle": "svgs:99999999@bancoamarillo.com.co"
}
}
],
"config": {
"commit": "auto"
}
},
"meta": {
"status": "completed",
"created": "2026-06-08T14:30:00.000Z",
"updated": "2026-06-08T14:30:01.200Z"
}
}{
"error": {
"code": "not-found",
"message": "Wallet not found"
}
}Submit intent proof
Authorization
BearerAuth LedgerHeader Access token obtained from POST /oauth/token
In: header
Handle of the target ledger (e.g. demo-co)
In: header
Path Parameters
Record handle
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://demo-co.ldg-stg.one/api/v2/intents/pay-20260608-001/proofs" \ -H "Content-Type: application/json" \ -d '{ "method": "ed25519-v2", "public": "MCowBQYDK2VdAyEAabc123...", "digest": "f8a0b1c2d3e4...", "result": "MEQCIB...", "custom": { "moment": "2026-06-08T14:30:00.500Z", "handle": "deb_01u9RGCevt4rEkRMV", "status": "prepared", "coreId": "BREB-TXN-20260608-001" } }'{
"error": {
"code": "schema-validation-failed",
"message": "Required field 'schema' is missing from data"
}
}{
"error": {
"code": "not-found",
"message": "Wallet not found"
}
}Wallets
Ledger accounts identified by a handle (e.g. `svgs:10000001@bancorojo.com.co`), typed by schema and optionally bound to an external bank account via a bridge.
Anchors
External payment identifiers mapped to wallets — EMVCo QR v1.4 codes (`emvco-v14-co`) and Bre-B Llaves (`alias`) including `mailto:`, `tel:`, `nidn:`, `merchid:`, and dynamic `key:` types.