API Reference

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

GET
/intents

Authorization

BearerAuth LedgerHeader
AuthorizationBearer <token>

Access token obtained from POST /oauth/token

In: header

x-ledger<token>

Handle of the target ledger (e.g. demo-co)

In: header

Query Parameters

limit?integer

Maximum records to return

Default25
Rangevalue <= 100
offset?integer

Records to skip

Default0
filter[meta.status]?string
Value in"pending" | "prepared" | "committed" | "completed" | "rejected"
filter[data.claims.target.handle]?string
filter[data.claims.source.handle]?string
filter[data.schema]?string

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

POST
/intents

Authorization

BearerAuth LedgerHeader
AuthorizationBearer <token>

Access token obtained from POST /oauth/token

In: header

x-ledger<token>

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

GET
/intents/{handle}

Authorization

BearerAuth LedgerHeader
AuthorizationBearer <token>

Access token obtained from POST /oauth/token

In: header

x-ledger<token>

Handle of the target ledger (e.g. demo-co)

In: header

Path Parameters

handle*string

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

POST
/intents/{handle}/proofs

Authorization

BearerAuth LedgerHeader
AuthorizationBearer <token>

Access token obtained from POST /oauth/token

In: header

x-ledger<token>

Handle of the target ledger (e.g. demo-co)

In: header

Path Parameters

handle*string

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"    }  }'
Empty
{
  "error": {
    "code": "schema-validation-failed",
    "message": "Required field 'schema' is missing from data"
  }
}
{
  "error": {
    "code": "not-found",
    "message": "Wallet not found"
  }
}

On this page

No Headings