Reference
API
The endpoint
POST /v1/invoke takes a JSON object. The key in the Authorization header decides the workspace. A health check answers on GET /healthz on the same listener.
POST /v1/invoke
Authorization: Bearer trk_...
Content-Type: application/json
{
"capability": "ticket6:readLedger",
"program": "partner-2027",
"relationship": "relationship:partner-2027:creator-1",
"payload": {}
}The envelope
These are the fields the handler reads. Everything a capability needs beyond them goes inside payload.
| Field | What it does |
|---|---|
| capability | The capability id to run. |
| payload | A JSON object. The capability reads its own fields. |
| program | Program scope for the call. |
| relationship | Partner Relationship scope for the call. |
| subject | Subject scope for the call. |
| workspace | Refused when it differs from the key workspace. |
Refusals
A refusal returns one machine readable code and no message. The same code comes back on the CLI and over MCP, so one name covers all three surfaces. The runtime maps 246 codes to a status.
HTTP/1.1 403 Forbidden
Content-Type: application/json
{ "error": "WORKSPACE_REFUSED" }400 (95)
AMBIGUOUS_TEMPORAL_EVIDENCE, API_KEY_INVALID, API_KEY_PAYLOAD_INVALID, API_KEY_PEPPER_INVALID, API_KEY_PRINCIPAL_MISMATCH, APPROVAL_CLI_USAGE, APPROVAL_INPUT_INVALID, APPROVAL_SECRET_REFUSED, APPROVAL_TARGET_INVALID, BACKGROUND_JOB_INVALID, BARRIER_INVALID, BODY_INVALID_JSON, BODY_TOO_LARGE, CAMPAIGN_CREDENTIAL_REFUSED, CAMPAIGN_PAYLOAD_INVALID, CLAIM_LINKAGE_INVALID, CLICK_CONTEXT_INVALID, CLICK_PAYLOAD_INVALID, CLICK_SCOPE_INVALID, CLOSE_EVENT_ID_INVALID, CLOSE_INPUT_INVALID, COMMISSION_CAP_NOT_APPLIED, COMMISSION_OUT_OF_RANGE, CONTRACT_REFERENCE_BASIS_NEGATIVE, CONTRACT_REFERENCE_INPUT_INVALID, CONTRACT_REFERENCE_NO_CUSTOMER, CONTRACT_REFERENCE_OUT_OF_RANGE, CRISPY_EMBED_PAYLOAD_INVALID, CUSTOMER_ID_INVALID, ENVELOPE_INVALID, HELD_CLI_USAGE, INGESTED_AT_INVALID, INVALID_PROGRAM_POLICY, LINK_BASE_URL_MALFORMED, LINK_BASE_URL_MISSING, LINK_BASE_URL_NOT_HTTPS, LINK_TARGET_INVALID, LINK_TOKEN_MALFORMED, PARTNER_ACCESS_PAYLOAD_INVALID, PARTNER_GRANT_INVALID, PARTNER_GUARDRAIL_INVALID, PARTNER_OVERRIDE_CREDIT_REFUSED, PARTNER_OVERRIDE_FIELD_REFUSED, PARTNER_SCOPE_INVALID, PAYLOAD_INVALID, PAYMENT_FACT_DISCOUNT_EXCEEDS_SUBTOTAL, PAYMENT_FACT_TAX_EXCEEDS_PAID, PAYOUT_SELECTION_INVALID, QUERY_INVALID, RECONCILIATION_PAYLOAD_INVALID, RECONCILIATION_SCOPE_INVALID, REFERRAL_CODE_INVALID, REFERRAL_CODE_MALFORMED, REFERRAL_CODE_MISSING, REFERRAL_CODE_NOT_CARRIED, REFERRAL_CODE_SCOPE_INVALID, REFERRAL_PAYLOAD_INVALID, REFERRAL_SCOPE_INVALID, REPLAY_EVENT_ID_INVALID, RULEBOOK_APPROVAL_MODE_INVALID, RULEBOOK_CREDIT_PROGRAM_KIND_REQUIRED, RULEBOOK_CURRENCY_REQUIRED, RULEBOOK_MATURITY_DAYS_INVALID, RULEBOOK_PAYOUT_TERM_INVALID, RUNTIME_CONFIG_INVALID, RUNTIME_CONFIG_MISSING, RUNTIME_CURSOR_INVALID, STATEMENT_FORMAT_INVALID, STATEMENT_ID_INVALID, STATEMENT_PAYMENT_DATE_MISSING, STATEMENT_PERIOD_INVALID, STRIPE_CALL_INVALID, STRIPE_EVENT_INVALID, STRIPE_EVENT_NOT_LIVE, STRIPE_EVENT_SHAPE_UNSUPPORTED, STRIPE_EVENT_UNMAPPED, STRIPE_EVENT_VERSION_UNSUPPORTED, STRIPE_HTTP_ERROR, STRIPE_NETWORK_ERROR, STRIPE_RENDER_VERSION_MISMATCH, STRIPE_RESPONSE_INVALID, TAX_INTAKE_IDENTIFIER_REFUSED, TAX_INTAKE_INPUT_INVALID, TICKET4_PAYLOAD_INVALID, UNDETERMINED_DISCOUNT, UNDETERMINED_OUT_OF_BAND, UNDETERMINED_PAID_AT, UNDETERMINED_PROCESSING_FEE, UNDETERMINED_REFUND_LINKAGE, UNDETERMINED_REFUND_PRINCIPAL, UNDETERMINED_TAX_INCLUSION, UNRECOGNIZED_ISSUED_EVIDENCE, UNUSABLE_CUSTOMER_IDENTITY, WORKSPACE_INVALID, WORKSPACE_PAYLOAD_INVALID
401 (1)
AUTH_FAILED
403 (60)
ACCESS_REFUSED, API_KEY_ACCESS_REFUSED, API_KEY_HUMAN_REFUSED, APPROVAL_ACCESS_REFUSED, APPROVAL_CONSENT_PARTNER_REQUIRED, APPROVAL_HUMAN_REQUIRED, APPROVAL_NOT_REQUESTER, APPROVAL_OF_APPROVE_REFUSED, APPROVAL_PATH_MISSING, CAMPAIGN_ACCESS_DENIED, CAMPAIGN_SURFACE_NOT_ALLOWED, CLAIM_ROLE_REFUSED, CLICK_ACCESS_REFUSED, CLICK_STORE_ACCESS_REFUSED, CLOSE_HUMAN_REQUIRED, COMMISSION_NOT_WHOLE_MINOR_UNITS, COMMISSION_POLICY_MISSING, COMMISSION_TERMS_NOT_EFFECTIVE, CONTRACT_REFERENCE_NO_TERMS, CONTRACT_REFERENCE_NOT_WHOLE_MINOR_UNITS, CONTRACT_REFERENCE_RULE_UNSUPPORTED, CRISPY_EMBED_ACCESS_REFUSED, CRISPY_EMBED_SCOPE_REFUSED, CRISPY_FIXTURE_SCOPE_MISMATCH, ENVELOPE_SCOPE, HELD_LIST_REFUSED, LINK_SCOPE_MISMATCH, LINK_TOKEN_REVOKED, PARTNER_ACCESS_REFUSED, PARTNER_CAPABILITY_REFUSED, PARTNER_GRANT_REFUSED, PARTNER_OVERRIDE_NOT_CUSTOMER_REFERRAL, PARTNER_RATE_CAPPED, PROGRAM_SCOPE_REQUIRED, RECONCILIATION_ACCESS_REFUSED, RECONCILIATION_FAILED, RECONCILIATION_RED, REFERRAL_ACCESS_REFUSED, REFERRAL_CODE_OTHER_PROGRAM, REFERRAL_CODE_REVOKED, REFERRAL_STORE_ACCESS_REFUSED, REPLAY_HUMAN_REQUIRED, RUNTIME_CURSOR_ROLE_REFUSED, SCOPE_MISMATCH, SCOPE_REQUIRED, SELF_REFERRAL_REFUSED, SHADOW_HOLD, SHADOW_MODE_REQUIRED, STATEMENT_NOT_OWN_RELATIONSHIP, STATEMENT_PARTNER_READ_DISABLED, STRIPE_READ_EXCLUDED, STRIPE_REQUEST_REFUSED, STRIPE_WRITE_REFUSED, TAX_INTAKE_ACCESS_DENIED, TAX_INTAKE_SURFACE_NOT_ALLOWED, TICKET4_ACCESS_REFUSED, TICKET4_ACTIVATION_REFUSED, WORKSPACE_OPERATOR_POOL_REQUIRED, WORKSPACE_REFUSED, ZERO_WRITERS
404 (24)
API_KEY_NOT_FOUND, APPROVAL_NOT_FOUND, APPROVAL_OPERATOR_UNKNOWN, BACKGROUND_JOB_MISSING, CAMPAIGN_ADAPTER_NOT_FOUND, CAMPAIGN_NOT_FOUND, CAPABILITY_UNKNOWN, CLICK_LINK_MISSING, CLOSE_NOT_HELD, COMMISSION_ENTRY_NOT_FOUND, CONTRACT_REFERENCE_NO_PAYMENT_FACT, CRISPY_FIXTURE_NOT_FOUND, LINK_TOKEN_UNKNOWN, NOT_FOUND, PARTNER_GRANT_NOT_FOUND, PARTNER_GROUP_NOT_FOUND, PAYOUT_COMMISSION_NOT_FOUND, RECORD_NOT_FOUND, REFERRAL_CODE_UNKNOWN, REPLAY_EVENT_NOT_FOUND, REPLAY_NOT_HELD, RUNTIME_OPERATOR_UNKNOWN, TICKET4_NOT_FOUND, WORKSPACE_NOT_FOUND
409 (65)
API_KEY_CONFLICT, APPROVAL_IMMUTABLE_FIELD, APPROVAL_NOT_PENDING, APPROVAL_REQUEST_EXPIRED, APPROVAL_REQUESTS_UNAVAILABLE, BACKGROUND_JOB_EXISTS, BARRIER_LOCAL, BARRIER_TIMEOUT, CAMPAIGN_ADAPTER_EXISTS, CAMPAIGN_ADAPTER_MISMATCH, CAMPAIGN_EXISTS, CAMPAIGN_NOT_APPROVED, CAMPAIGN_NOT_PENDING, CARRIED_DEBT_NOT_PAID_EXTERNALLY, CARRIED_DEBT_OVER_RECOVERY, CARRIED_DEBT_RECOVERY_CURRENCY_MISMATCH, CARRIED_DEBT_RECOVERY_IN_FUTURE, CARRIED_DEBT_RECOVERY_REFERENCE_CONFLICT, CLICK_DUPLICATE, CLOCK_ORIGIN_MISSING, CLOSE_EVENT_LEDGERED, COMMISSION_ALREADY_APPROVED, COMMISSION_ALREADY_PAID, COMMISSION_ALREADY_REJECTED, COMMISSION_NOT_REJECTABLE, COMMISSION_REJECTED, COMMISSION_REQUALIFICATION_CONFLICT, CONTRACT_REFERENCE_CURRENCY_MISMATCH, CUSTOMER_IDENTITY_AMBIGUOUS, CUSTOMER_IDENTITY_UNMAPPED, CUTOVER_CONFLICT, CUTOVER_MISMATCH, LINK_REGISTRATION_CONFLICT, PARTNER_GRANT_CONFLICT, PARTNER_GROUP_EXISTS, PARTNER_OVERRIDE_VERSION_EXISTS, PAYOUT_AMOUNT_MISMATCH, PAYOUT_BEFORE_PRIOR_EVENT, PAYOUT_CURRENCY_MISMATCH, PAYOUT_LEDGER_INVARIANT, PAYOUT_LINE_NOT_PAYABLE, PAYOUT_LINE_NOTHING_OWED, PAYOUT_NOTHING_PAYABLE, PAYOUT_REFERENCE_CONFLICT, PRODUCTION_STORE_BINDING_MISMATCH, PRODUCTION_STORE_DUPLICATE, PRODUCTION_STORE_REGISTRY_SEALED, PRODUCTION_STORE_SET_MISMATCH, REFERRAL_CODE_AMBIGUOUS, REFERRAL_CODE_CONFLICT, REFERRER_ALREADY_BOUND, REFUND_FAILED_AFTER_REVERSAL, REFUND_NOT_SUCCEEDED, REJECT_INSTANT_IN_FUTURE, RULEBOOK_ORPHANED_OVERRIDE, RUNTIME_INGEST_REFUSED, RUNTIME_REPLAY_UNSUPPORTED, SOURCE_CLAIM_NOT_EXCLUSIVE, SOURCE_EVENT_ALREADY_OWNED, SOURCE_EVENT_REPLAY_CONFLICT, STATE_CONFLICT, STRIPE_CURSOR_EXPIRED, TICKET4_CONFLICT, UNREGISTERED_PRODUCTION_STORE, WORKSPACE_ALREADY_EXISTS
500 (1)
INTERNAL_ERROR
Capabilities on the api surface
92 capabilities declare the api surface. A row marked as a human gate refuses an agent and creates an approval request instead. A row that is not served is declared in the code and not exposed by the runtime yet.
Generated from shyftai/trumpet at cbc30f1 by scripts/gen-reference.mjs.
approvals
6 capabilities
| Capability | Access | Who runs it | Surfaces | Served |
|---|---|---|---|---|
| approvals:approveRequest | Writes | Human gate | api cli web | No |
| approvals:getApprovalRequest | Reads | Agent | api cli mcp | Yes |
| approvals:listApprovalRequests | Reads | Agent | api cli mcp | Yes |
| approvals:rejectRequest | Writes | Human gate | api cli web | No |
| approvals:requestApproval | Writes | Agent | api cli mcp | Yes |
| approvals:withdrawRequest | Writes | Agent | api cli mcp | Yes |
campaigns
7 capabilities
| Capability | Access | Who runs it | Surfaces | Served |
|---|---|---|---|---|
| campaigns:approveCampaign | Writes | Human gate | api cli mcp web | Yes |
| campaigns:draftCampaign | Writes | Agent | api cli mcp | Yes |
| campaigns:getAdapter | Reads | Agent | api cli mcp | Yes |
| campaigns:getCampaign | Reads | Agent | api cli mcp | Yes |
| campaigns:launchCampaign | Writes | Human gate | api cli mcp web | Yes |
| campaigns:listCampaigns | Reads | Agent | api cli mcp | Yes |
| campaigns:setupAdapter | Writes | Human gate | api cli mcp web | Yes |
discovery
3 capabilities
| Capability | Access | Who runs it | Surfaces | Served |
|---|---|---|---|---|
| discovery:getResultPage | Reads | Agent | api cli mcp | No |
| discovery:listCreatorRecords | Reads | Agent | api cli mcp | No |
| discovery:listRuns | Reads | Agent | api cli mcp | No |
partners
3 capabilities
| Capability | Access | Who runs it | Surfaces | Served |
|---|---|---|---|---|
| partners:grantAccess | Writes | Human gate | api cli mcp | Yes |
| partners:revokeGrant | Writes | Agent | api cli mcp | Yes |
| partners:setGuardrail | Writes | Agent | api cli mcp | Yes |
runtime
3 capabilities
| Capability | Access | Who runs it | Surfaces | Served |
|---|---|---|---|---|
| runtime:closeHeldEvent | Writes | Human gate | api cli mcp | Yes |
| runtime:listHeldEvents | Reads | Agent | api cli mcp | Yes |
| runtime:replayHeldEvent | Writes | Human gate | api cli mcp | Yes |
ticket1
1 capability
| Capability | Access | Who runs it | Surfaces | Served |
|---|---|---|---|---|
| ticket1:getWorkspaceConfig | Reads | Agent | api cli mcp | Yes |
ticket10
3 capabilities
| Capability | Access | Who runs it | Surfaces | Served |
|---|---|---|---|---|
| ticket10:ingestStripeEvent | Writes | Agent | api cli mcp | Yes |
| ticket10:invokeStripe | Writes | Agent | api cli mcp | Yes |
| ticket10:queryIngestionState | Reads | Agent | api cli mcp read | Yes |
ticket11
1 capability
| Capability | Access | Who runs it | Surfaces | Served |
|---|---|---|---|---|
| ticket11:queryPartnerBalance | Reads | Agent | api cli mcp read | Yes |
ticket12
1 capability
| Capability | Access | Who runs it | Surfaces | Served |
|---|---|---|---|---|
| ticket12:queryReconciliationReport | Reads | Agent | api cli mcp read | Yes |
ticket13
2 capabilities
| Capability | Access | Who runs it | Surfaces | Served |
|---|---|---|---|---|
| ticket13:commitCutover | Writes | Human gate | api cli mcp | Yes |
| ticket13:queryCutoverState | Reads | Agent | api cli mcp read | Yes |
ticket15
5 capabilities
| Capability | Access | Who runs it | Surfaces | Served |
|---|---|---|---|---|
| ticket15:assignReferralCode | Writes | Human gate | api cli mcp | Yes |
| ticket15:publishReferralLink | Writes | Agent | api cli mcp | Yes |
| ticket15:queryReferralClicks | Reads | Agent | api cli mcp read | Yes |
| ticket15:resolveAndRecordClick | Writes | Agent | api cli mcp | Yes |
| ticket15:revokeReferralLink | Writes | Agent | api cli mcp | Yes |
ticket16
3 capabilities
| Capability | Access | Who runs it | Surfaces | Served |
|---|---|---|---|---|
| ticket16:createApiKey | Writes | Human gate | api cli web | Yes |
| ticket16:listApiKeys | Reads | Agent | api cli mcp read | Yes |
| ticket16:revokeApiKey | Writes | Agent | api cli mcp | Yes |
ticket17
2 capabilities
| Capability | Access | Who runs it | Surfaces | Served |
|---|---|---|---|---|
| ticket17:invitePartnerFromCrispy | Writes | Agent | api cli mcp | Yes |
| ticket17:readPartnerEarnings | Reads | Agent | api cli mcp | Yes |
ticket18
3 capabilities
| Capability | Access | Who runs it | Surfaces | Served |
|---|---|---|---|---|
| ticket18:getWorkspace | Reads | Agent | api cli mcp read | Yes |
| ticket18:issueWorkspaceKey | Writes | Human gate | api cli web | Yes |
| ticket18:listWorkspaces | Reads | Agent | api cli mcp read | Yes |
ticket19
8 capabilities
| Capability | Access | Who runs it | Surfaces | Served |
|---|---|---|---|---|
| ticket19:bindReferrer | Writes | Agent | api cli mcp | Yes |
| ticket19:compareShadowCredits | Reads | Agent | api cli mcp read | Yes |
| ticket19:issueCustomerCode | Writes | Agent | api cli mcp | Yes |
| ticket19:queryReferralState | Reads | Agent | api cli mcp read | Yes |
| ticket19:recordCustomerIdentity | Writes | Agent | api cli mcp | Yes |
| ticket19:recordCustomerPayment | Writes | Agent | api cli mcp | Yes |
| ticket19:recordCustomerRefund | Writes | Agent | api cli mcp | Yes |
| ticket19:recordInvoicePaymentLink | Writes | Agent | api cli mcp | Yes |
ticket4
7 capabilities
| Capability | Access | Who runs it | Surfaces | Served |
|---|---|---|---|---|
| ticket4:acceptStandardTerms | Writes | Human gate | api cli mcp web | Yes |
| ticket4:completeOnboarding | Writes | Agent | api cli mcp | Yes |
| ticket4:configureProgram | Writes | Agent | api cli mcp | Yes |
| ticket4:createProgram | Writes | Agent | api cli mcp | Yes |
| ticket4:getProgram | Reads | Agent | api cli mcp | Yes |
| ticket4:getRelationship | Reads | Agent | api cli mcp | Yes |
| ticket4:invitePartner | Writes | Agent | api cli mcp | Yes |
ticket5
6 capabilities
| Capability | Access | Who runs it | Surfaces | Served |
|---|---|---|---|---|
| ticket5:evaluateAttribution | Reads | Agent | api cli mcp | Yes |
| ticket5:issueCoupon | Writes | Agent | api cli mcp | Yes |
| ticket5:issueReferralLink | Writes | Agent | api cli mcp | Yes |
| ticket5:queryCoupon | Reads | Agent | api cli mcp | Yes |
| ticket5:queryReferralLink | Reads | Agent | api cli mcp | Yes |
| ticket5:readReferralProjection | Reads | Agent | api cli mcp read | Yes |
ticket6
20 capabilities
| Capability | Access | Who runs it | Surfaces | Served |
|---|---|---|---|---|
| ticket6:activatePartnerOverride | Writes | Human gate | api cli mcp web | No |
| ticket6:activateRulebookVersion | Writes | Human gate | api cli mcp web | Yes |
| ticket6:applyPartnerGroupTerms | Writes | Agent | api cli mcp | No |
| ticket6:approveCommission | Writes | Human gate | api cli mcp web | Yes |
| ticket6:approveCommissions | Writes | Human gate | api cli mcp web | Yes |
| ticket6:changePartnerGroupMembers | Writes | Agent | api cli mcp | No |
| ticket6:configureCommissionPolicy | Writes | Human gate | api cli mcp web | Yes |
| ticket6:createPartnerGroup | Writes | Agent | api cli mcp | No |
| ticket6:draftPartnerOverride | Writes | Agent | api cli mcp | No |
| ticket6:draftRulebookVersion | Writes | Agent | api cli mcp | Yes |
| ticket6:ingestSourceEvent | Writes | Agent | api cli mcp | Yes |
| ticket6:queryCommissionPolicies | Reads | Agent | api cli mcp read | Yes |
| ticket6:queryPartnerGroups | Reads | Agent | api cli mcp read | No |
| ticket6:queryPartnerOverride | Reads | Agent | api cli mcp read | No |
| ticket6:queryPendingAccruals | Reads | Agent | api cli mcp read | Yes |
| ticket6:queryRulebook | Reads | Agent | api cli mcp read | Yes |
| ticket6:readLedger | Reads | Agent | api cli mcp read | Yes |
| ticket6:readPartnerProgress | Reads | Agent | api cli mcp read | No |
| ticket6:rejectCommission | Writes | Human gate | api cli mcp web | Yes |
| ticket6:rejectCommissions | Writes | Human gate | api cli mcp web | Yes |
ticket7
8 capabilities
| Capability | Access | Who runs it | Surfaces | Served |
|---|---|---|---|---|
| ticket7:createManualCorrection | Writes | Human gate | api cli mcp web | Yes |
| ticket7:explainEntries | Reads | Agent | api cli mcp read | Yes |
| ticket7:queryBalances | Reads | Agent | api cli mcp read | Yes |
| ticket7:queryPayoutStatement | Reads | Agent | api cli mcp read | Yes |
| ticket7:recordCarriedDebtRecovery | Writes | Human gate | api cli mcp web | Yes |
| ticket7:recordDisputeTransition | Writes | Human gate | api cli mcp web | Yes |
| ticket7:recordPayoutReceipt | Writes | Human gate | api cli mcp web | Yes |
| ticket7:recordStatementPayout | Writes | Human gate | api cli mcp web | Yes |
Notes
- A request body larger than 1 MiB is refused.
- Every response carries cache-control: no-store.
- A wrong method on the endpoint returns 405 with an Allow header.