Skip to Content
CheckoutAPI ReferenceSettingsDeclare the SubscriptionManager pause authority

Declare the SubscriptionManager pause authority

POST/settings/pauser

Declare the merchant-held address that may pause and unpause your SubscriptionManager. Required before the manager is deployed, and immutable afterwards. Prove control by signing the declaration_message from GET /settings/pauser with that address — an EOA signature is recovered directly, and a contract account (e.g. a Safe) is verified on-chain against every chain your business supports. Declaring the same address as your merchant_signer is permitted only with acknowledge_shared_pauser_risk, because a stolen signer key would then also be able to lift an incident freeze. Declaring the Exodus pauser address is refused, because the Guardian must never be able to unpause a manager it halted.

Headers

HeaderDescriptionRequired
AuthorizationBearer token with your secret API keyyes

Request Body

FieldTypeRequiredDescription
merchant_pauserstringyes
signaturestringyes
acknowledge_shared_pauser_riskboolean—

Example Request

Request

const response = await fetch('https://checkout-api.exodus.com/settings/pauser', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer sk_live_xxxxxxxxxxxxxxxx',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "merchant_pauser": "0x9876fedc9876fedc9876fedc9876fedc9876fedc",
    "signature": "0xababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab"
  }),
});

Responses

StatusDescription
201The declared pause authority.
400Validation error
401Missing or invalid authentication
403API key lacks the required scope
422Control of the address was not proven (pauser_control_unproven), the address matches the merchant signer without an acknowledgment (shared_pauser_risk_unacknowledged), the address is the Exodus pauser (pauser_is_exodus_pauser), or a manager is already deployed (pauser_locked_by_deployment).

Response body

FieldTypeRequiredDescription
objectenum: merchant_pauseryes
merchant_pauserstring | nullyes
shared_pauser_risk_acknowledgedbooleanyes
declaration_messagestringyes
locked_by_chainstring | nullyes

Example Response

{
  "object": "merchant_pauser",
  "merchant_pauser": "0x9876fedc9876fedc9876fedc9876fedc9876fedc",
  "shared_pauser_risk_acknowledged": false,
  "declaration_message": "Exodus Checkout: declare SubscriptionManager pause authority\nbusiness: biz_1234567890abcdef\nchain family: evm",
  "locked_by_chain": null
}

Error Response

Error (e.g. 400)

{
  "error": {
    "type": "validation_error",
    "message": "amount must be a positive number",
    "param": "amount"
  }
}

Start building

XO

Request Demo

Schedule a call with our team

Select a product
Arrow right

Start building
Grateful

Contact Us

We're here to help