https://api-staging.attesso.com with an att_test_ key for the free test
environment. Use https://api.attesso.com with an att_live_ key for live.
Keys are server-side credentials and cannot be used across environments. Test
does not require billing; live-key creation requires server-verified Stripe
entitlement.
Required loop
- Create an immutable Mandate with an integrator subject reference, an external reference, structured policy, approval deadline, and validity window.
- Send the authenticated End User through one short-lived hosted approval session.
- Wait for
ACTIVEorSCHEDULED. A browser return is not approval evidence. - Submit the exact Proposed Action and a stable external reference.
- Execute only when
can_executeis exactlytrue, beforeexecute_before. - Send the accepted action to the executor with its own stable idempotency key.
- Commit only after definite acceptance; cancel only after definite non-acceptance.
- Reconcile ambiguous executor results before committing or canceling. See the reconciliation decision table for the exact action per outcome.
- Verify and retain the Attesso evidence bundle under the integrator’s own retention policy. See verify evidence to check a bundle yourself.
Binding rules
The executor request must be derived from the same immutable object that was sent to/authorizations. Do not authorize one amount, destination, account, or item
and then rebuild a different executor request from mutable UI or agent state.
Use separate identifiers for separate boundaries:
Retries must reuse the same key only when the operation and bytes are logically
the same. Never turn a changed operation into a retry.
Decision handling
can_execute: true: reserve and execute beforeexecute_before.can_execute: false: do not call the executor.- network error, timeout, invalid response, or unknown state: fail closed and do not call the executor.
- commit after the executor accepted the action;
- cancel after definite non-acceptance;
- reconcile first after an ambiguous result.
ALLOW against your own payment provider, see
bind an authorization to your PSP. For the exact decision
table on ambiguous outcomes, see reconcile authorization outcomes.
Secrets and data
Keep Attesso keys and executor credentials only on the integrator’s server. Do not send payment credentials, provider secrets, identity-signing private keys, or passkey material to Attesso. Evidence may contain references and policy facts, so avoid putting credentials or unnecessary personal data in free-form references.Test before live
The free test environment must cover allow, deny, expired approval, executor rejection, executor timeout/reconciliation, duplicate retry, commit replay, and cancel replay. Move to live only after billing is linked and the same integrator executor path has passed those cases. Only the first live transition fromPENDING_APPROVAL to ACTIVE or
SCHEDULED costs $0.35 USD. Applicable taxes are additional. There is no Attesso
base fee, minimum, tier, or discount. Failed, rejected, cancelled, expired,
duplicate, retried, and test activity is free. A sub-minimum Stripe invoice may
carry forward. A Checkout return is never proof of active billing.
Attesso does not execute payments or other external actions, issue cards, hold
payment credentials, or connect to the integrator’s payment account. Public support is
available only at info@attesso.com.
