Declare the SubscriptionManager pause authority
POST/settings/pauserDeclare 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.
Headers
| Header | Description | Required |
|---|---|---|
| Authorization | Bearer token with your secret API key | yes |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| merchant_pauser | string | yes | |
| signature | string | yes | |
| acknowledge_shared_pauser_risk | boolean | — |
Example Request
Request
const response = await fetch('https://checkout-api.exodus-int.com/settings/pauser', {
method: 'POST',
headers: {
Authorization: 'Bearer sk_live_xxxxxxxxxxxxxxxx',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"merchant_pauser": "0x9876fedc9876fedc9876fedc9876fedc9876fedc",
"signature": "0xababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab"
}),
});Responses
| Status | Description |
|---|---|
| 201 | The declared pause authority. |
| 400 | Validation error |
| 401 | Missing or invalid authentication |
| 403 | API key lacks the required scope |
| 422 | Control of the address was not proven, the address matches the merchant signer without an acknowledgment, or a manager is already deployed. |
Response body
| Field | Type | Required | Description |
|---|---|---|---|
| object | enum: merchant_pauser | yes | |
| merchant_pauser | string | null | yes | |
| shared_pauser_risk_acknowledged | boolean | yes | |
| declaration_message | string | yes | |
| locked_by_chain | string | null | yes |
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"
}
}