Access Key
Scopes, store binding, and create / list / rotate / revoke
An Access Key is a fine-grained credential under an app: bound to institution / merchant / store, with a scope that limits which payment methods it may call.
Admin methods
| method | Role |
|---|---|
access.key.create | Create; response secret appears once |
access.key.list | List; never returns secret |
access.key.rotate | Rotate; old secret dies immediately; new secret once |
access.key.revoke | Revoke; further use of that key fails |
These methods need only morph 1 RSA2.
Scopes
Set scope_id on create:
| scope | Typical use |
|---|---|
payments.read_write | Query / place order (often “clerk”) |
payments.refund | Refund-capable methods (often “manager”) |
Insufficient scope (e.g. clerk calling order.refund.submit) yields E07315 at the Access Key gate, not a business refund error.
On successful create, data.methods lists methods allowed for that scope.
Binding
institution_no / merchant_no / store_no on create are stored on the key.
Morph 2 requests must match that binding or you get E07314.
Secret handling
- Persist
secretonly from create / rotate responses - A
secretfield onlistis a server bug - After rotate, stop using the old secret; revoke is permanent for that
key_id
Recommended pattern
- Create a clerk (
payments.read_write) and a manager (payments.refund) with app RSA2 - Checkout / query with clerk; refunds with manager
- Rotate on a schedule; revoke on staff leave or leakage
Field examples: API Reference. Hands-on: Apifox.