Developers

Build with the Onalys execution layer.

Create scoped mandates, best-card execution intents, subscription-switch intents, action blueprints, compliance flags, and rail attempts through one API surface.

Execution path

1Create mandate
2Create execution intent
3Review compliance flags
4Convert to blueprint
5Attempt rail execution
6Record receipt or blocker

API endpoints

POST/v1/mandates

Create the user's bounded execution authority.

POST/v1/agentic-payment-plans

Create a best-card payment execution intent.

POST/v1/subscription-switch-plans

Create a subscription card-on-file switch intent.

GET/v1/agentic-execution-intents

List recent execution intents.

POST/v1/agentic-execution-intents/:id/blueprint

Convert an intent into an action blueprint.

POST/v1/rail-executions

Attempt execution through configured rails.

Sandbox

Execution intents, not suggestions.

These examples show the contract developers build against. The selected card decision, blockers, compliance flags, and next execution step are returned together.

Agentic payment intent

{
  "mandate_id": "11111111-1111-4111-8111-111111111111",
  "action_type": "agentic_payment",
  "merchant_reference": "merchant:no-frills:toronto",
  "amount_cents": 6425,
  "currency": "CAD",
  "mcc": "5411",
  "proposed_rail": "agentic_rail",
  "candidate_cards": [
    {
      "card_id": "22222222-2222-4222-8222-222222222222",
      "label": "PC World Elite MC",
      "network": "mastercard",
      "last_four": "4289",
      "reward_score": 3000,
      "utilization_state": "ok",
      "freshness_state": "fresh"
    }
  ]
}

Subscription switch intent

{
  "mandate_id": "11111111-1111-4111-8111-111111111111",
  "subscription_reference": "sub:netflix:primary",
  "merchant_reference": "merchant:netflix",
  "current_card_id": "33333333-3333-4333-8333-333333333333",
  "expected_amount_cents": 2299,
  "currency": "CAD",
  "available_rails": [
    "merchant_biller",
    "browser_computer_use"
  ],
  "preferred_rail": "merchant_biller",
  "candidate_cards": [
    {
      "card_id": "22222222-2222-4222-8222-222222222222",
      "label": "Cobalt",
      "network": "amex",
      "last_four": "1007",
      "reward_score": 5000,
      "utilization_state": "ok",
      "freshness_state": "fresh"
    }
  ]
}

Example response

{
  "plan": {
    "intent_type": "agentic_payment",
    "status": "ready_for_blueprint",
    "selected_card_id": "22222222-2222-4222-8222-222222222222",
    "selected_rail": "merchant_biller",
    "step_up_required": false,
    "compliance_review_required": true,
    "compliance_flags": [
      {
        "code": "PAYMENT_RAIL_PROVIDER_REQUIRED",
        "status": "partner_required",
        "message": "Agentic payment execution requires configured PSP, gateway, issuer, network, vault, or merchant rail."
      }
    ],
    "next_step": "Create an action blueprint, then execute only if provider and rail gates pass."
  }
}

Scoped mandates

Every execution path starts with user-approved limits for card, merchant, rail, amount, category, and expiry.

Best-card decision

Candidate cards are ranked with reward, freshness, utilization, merchant, and mandate data before an intent is created.

Compliance flags

Unresolved provider, payment, privacy, security, or rail gates are returned with the intent instead of being hidden.

Developer status

The API contract supports execution intents, persisted audit records, compliance flags, intent listing, blueprint conversion, and rail attempts. Production rail execution depends on configured providers and active mandates.