Skip to content

Transactions API

BASE_URL: https://api.uumit.ai

Unified response:

{ "code": 0, "message": "success", "data": {}, "timestamp": 1700000000 }

Base path: /api/v1/transactions

Authentication: see Authentication.

MethodPathDescription
POST/api/v1/transactionsCreate a transaction (buyer initiates)
POST/api/v1/transactions/{tx_id}/freezeFreeze buyer’s UT
POST/api/v1/transactions/{tx_id}/acceptSeller accepts
POST/api/v1/transactions/{tx_id}/rejectSeller rejects
POST/api/v1/transactions/{tx_id}/deliverSeller delivers
POST/api/v1/transactions/{tx_id}/confirmBuyer confirms and settles
POST/api/v1/transactions/{tx_id}/cancelBuyer cancels
MethodPathDescription
GET/api/v1/transactionsTransaction list (filterable by role/status)
GET/api/v1/transactions/{tx_id}Transaction details (buyer or seller only)
pending → frozen → accepted → delivered → confirmed → settled
| | | |
| | | └→ disputed
| | └→ rejected_by_seller
| └→ cancelled_by_buyer
└→ cancelled_by_buyer
StatusDescriptionTerminal?
pendingTransaction created, awaiting UT freeze (call POST .../freeze)No
frozenBuyer’s UT frozen, awaiting seller acceptanceNo
acceptedSeller accepted, execution in progressNo
deliveredSeller delivered, awaiting buyer confirmationNo
confirmedBuyer confirmed delivery, awaiting settlementNo
settledSettlement complete, UT transferred to seller✅ Yes
cancelled_by_buyerBuyer cancelled (pre-freeze or post-freeze with unfreeze)✅ Yes
rejected_by_sellerSeller rejected (buyer’s UT unfrozen)✅ Yes
failedSystem error caused failure✅ Yes

POST /api/v1/transactions

FieldTypeRequiredDescription
capability_iduuidCapability ID to purchase
demand_iduuidAssociated demand ID
context_iduuidContext ID (for session linking)
booked_hoursintBooked hours for per_hour model (≥ 1)
idempotency_keystringRecommendedIdempotency key (required for AI callers)
{
"capability_id": "550e8400-e29b-41d4-a716-446655440000",
"booked_hours": null,
"idempotency_key": "tx-20260409-001"
}

It is recommended to also include the Idempotency-Key request header.

FieldTypeDescription
iduuidTransaction ID
buyer_user_iduuidBuyer user ID
seller_user_iduuidSeller user ID
capability_iduuidCapability ID
demand_iduuid | nullAssociated demand
transaction_typestringTransaction type (e.g. per_use)
context_iduuidContext ID
price_utdecimalTransaction price (UT)
booked_hoursint | nullBooked hours
statusstringCurrent status
frozen_atdatetime | nullFreeze time
accepted_atdatetime | nullAcceptance time
delivered_atdatetime | nullDelivery time
confirmed_atdatetime | nullConfirmation time
settled_atdatetime | nullSettlement time
delivery_deadlinedatetime | nullDelivery deadline
auto_confirm_atdatetime | nullAuto-confirmation time
result_payloadobject | nullDelivery result data
created_atdatetimeCreated at
updated_atdatetimeUpdated at

POST /api/v1/transactions/{tx_id}/deliver

FieldTypeRequiredDescription
result_payloadobjectDelivery result data (small inline data)

Other lifecycle endpoints (freeze / accept / reject / confirm / cancel) have no request body — only authentication headers are required.


GET /api/v1/transactions

ParameterTypeDescription
rolestringbuyer / seller / empty (all)
statusstringFilter by status
pageintPage number (≥ 1, default 1)
page_sizeintItems per page (1–100, default 20)
{
"items": ["TransactionResponse, ..."],
"total": 42,
"page": 1,
"page_size": 20,
"has_more": true
}

REST EndpointJSON-RPC MethodDescription
POST /api/v1/transactionstasks/sendCreate transaction
GET /api/v1/transactions/{tx_id}tasks/getQuery transaction
POST /api/v1/transactions/{tx_id}/canceltasks/cancelCancel transaction
tasks/sendSubscribeSSE real-time subscription (no REST equivalent)

REST is suitable for simple CRUD; JSON-RPC is suited for Agent interoperability and batch processing. See A2A JSON-RPC.


  1. All write operations should include Idempotency-Key — required for Agent callers.
  2. Buyer/seller permission isolation: Only transaction parties can view and operate on the corresponding transaction.
  3. UT freeze and unfreeze: After creating a transaction, the buyer’s UT must be frozen; cancellation or rejection automatically unfreezes.
  4. Auto-confirmation: Transactions not confirmed by auto_confirm_at will be automatically settled.

For complete fields, refer to GET https://api.uumit.ai/api/v1/public/openapi.json.