Skip to main content

Merchants API

Manage merchant profile, settings, API keys, and webhooks.

Profile & Settings

getProfile

const profile = await zenpays.merchants.getProfile()

updateSettings

await zenpays.merchants.updateSettings({
webhookUrl: 'https://example.com/webhooks',
autoSettlement: true,
})

getLimits

const limits = await zenpays.merchants.getLimits()

API Keys

listApiKeys

const keys = await zenpays.merchants.listApiKeys()

createApiKey

const key = await zenpays.merchants.createApiKey({
name: 'Production Key',
environment: 'production',
})
// Store key.key securely - shown only once!

revokeApiKey

await zenpays.merchants.revokeApiKey('key_xxx')

Webhooks

listWebhooks

const webhooks = await zenpays.merchants.listWebhooks()

createWebhook

const webhook = await zenpays.merchants.createWebhook({
url: 'https://example.com/webhooks',
events: ['payment.intent.succeeded', 'refund.completed'],
})

updateWebhook

await zenpays.merchants.updateWebhook('wh_xxx', {
events: ['payment.intent.succeeded'],
})

deleteWebhook

await zenpays.merchants.deleteWebhook('wh_xxx')

testWebhook

const result = await zenpays.merchants.testWebhook('wh_xxx', 'payment.intent.succeeded')

Bank Accounts

listBankAccounts

const accounts = await zenpays.merchants.listBankAccounts()

addBankAccount

const account = await zenpays.merchants.addBankAccount({
bankName: 'Chase',
accountName: 'Acme Inc',
accountNumber: '123456789',
accountType: 'checking',
routingNumber: '021000021',
currency: 'USD',
})

IP Whitelist

listWhitelistedIPs

const ips = await zenpays.merchants.listWhitelistedIPs()

addIPToWhitelist

await zenpays.merchants.addIPToWhitelist('192.168.1.1', 'Office IP')

removeIPFromWhitelist

await zenpays.merchants.removeIPFromWhitelist('ip_xxx')