Skip to Content
CheckoutAPI ReferenceSettingsRegister a merchant signer and settlement address

Register a merchant signer and settlement address

POST/settings

Register the merchant signer and settlement address for a chain family, activating signed-request verification for that chain.

Headers

HeaderDescriptionRequired
AuthorizationBearer token with your secret API keyyes

Request Body

FieldTypeRequiredDescription
merchant_signerstringyes
chain_familyenum: evm | solana—
settlement_addressstringyes
genesis_settlement_signaturestring—

Example Request

Request

const response = await fetch('https://checkout-api.exodus.com/settings', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer sk_live_xxxxxxxxxxxxxxxx',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "merchant_signer": "0x1234abcd1234abcd1234abcd1234abcd1234abcd",
    "chain_family": "evm",
    "settlement_address": "0xabcd1234abcd1234abcd1234abcd1234abcd1234"
  }),
});

Responses

StatusDescription
201The updated merchant settings.
400Validation error
401Missing or invalid authentication
403API key lacks the required scope

Response body

FieldTypeRequiredDescription
business_idstringyes
business_namestringyes
display_namestring | nullyes
background_colorstring | nullyes
primary_colorstring | nullyes
is_testbooleanyes
settlement_typeenum: CRYPTO | FIATyes
currencystring | nullyes
settlement_providerstring | nullyes
settlement_provider_idstring | nullyes
chain_configsobject[]yes
can_generate_keybooleanyes
webhook_urlstring | nullyes
merchant_idstringyesThe merchant id bound into your PaymentFactory and SubscriptionManager contracts: keccak256 of merchant:<business_id>.
subscription_managersobject[]yesYour SubscriptionManager contract addresses, one entry per chain where one is deployed, each with its CAIP-2 chain id.

chain_configs

FieldTypeRequiredDescription
chain_familyenum: evm | solanayes
signer_statusenum: not_configured | pending_activation | activeyes
merchant_signerstring | nullyes
settlement_addressstring | nullyes
factory_addressstring | nullyes

subscription_managers

FieldTypeRequiredDescription
chainstringyes
addressstringyes

Example Response

{
  "business_id": "biz_1234567890abcdef",
  "business_name": "Acme Store",
  "display_name": null,
  "background_color": null,
  "primary_color": null,
  "is_test": false,
  "settlement_type": "CRYPTO",
  "currency": null,
  "settlement_provider": null,
  "settlement_provider_id": null,
  "chain_configs": [
    {
      "chain_family": "evm",
      "signer_status": "active",
      "merchant_signer": "0x1234abcd1234abcd1234abcd1234abcd1234abcd",
      "settlement_address": "0xabcd1234abcd1234abcd1234abcd1234abcd1234",
      "factory_address": "0xfaceb00cfaceb00cfaceb00cfaceb00cfaceb00c"
    },
    {
      "chain_family": "solana",
      "signer_status": "active",
      "merchant_signer": "9xQeWvG816bUx9EPjHmaT23yvVM2ZWbrrpZb9PusVFin",
      "settlement_address": "5tzFkiKscXHK5ZXCGbXZxdw7gTjjD1mBwuoFbhUvuAi9",
      "factory_address": null
    }
  ],
  "can_generate_key": false,
  "webhook_url": "https://yoursite.com/webhooks/exodus",
  "merchant_id": "0x7b5a3e1f9c2d4b6a8e0f1c3d5b7a9e2f4c6d8b0a1e3f5c7d9b2a4e6f8c0d1b3a",
  "subscription_managers": [
    {
      "chain": "eip155:42161",
      "address": "0x9a1b2c3d4e5f60718293a4b5c6d7e8f901234567"
    }
  ]
}

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