Skip to content

Merchants API

Manage your merchant account and settings.

The Merchant Object

json
{
  "id": "merchant-550e8400-e29b-41d4-a716-446655440000",
  "name": "Your Business Name",
  "slug": "yourbusiness",
  "category": "retail",
  "email": "hello@yourbusiness.com",
  "phone": "+1-242-555-0123",
  "description": "A great business serving the Bahamas",
  "website": "https://yourbusiness.com",
  "logo_url": "https://yourbusiness.com/logo.png",
  "address": {
    "line1": "123 Bay Street",
    "line2": "Suite 100",
    "city": "Nassau",
    "state": "New Providence",
    "postal_code": "00000",
    "country": "BS"
  },
  "business_type": "company",
  "tax_id": "123456789",
  "is_active": true,
  "verification_status": "verified",
  "payout_schedule": "weekly",
  "created_at": "2026-01-15T10:00:00Z",
  "updated_at": "2026-03-19T14:30:00Z"
}

Attributes

AttributeTypeDescription
idstringUnique merchant identifier
namestringBusiness name
slugstringURL-friendly identifier (unique)
categorystringBusiness category (see categories below)
emailstringContact email
phonestringContact phone number
descriptionstringBusiness description
websitestringBusiness website URL
logo_urlstringURL to business logo
addressobjectBusiness address
business_typestringindividual or company
tax_idstringTax identification number
is_activebooleanAccount active status
verification_statusstringpending, verified, or rejected
payout_schedulestringdaily, weekly, or monthly
created_atstringISO 8601 timestamp
updated_atstringISO 8601 timestamp

Business Categories

retail, restaurant, grocery, gas_station, pharmacy, hotel,
professional_services, healthcare, education, entertainment,
transportation, utilities, nonprofit, other

Create a Merchant

Creates a new merchant account.

bash
POST /v1/merchants

Parameters

ParameterTypeRequiredDescription
namestringYesBusiness name
slugstringYesURL-friendly identifier (lowercase, alphanumeric, hyphens)
categorystringYesBusiness category
emailstringYesContact email
phonestringNoContact phone
descriptionstringNoBusiness description
websitestringNoBusiness website
addressobjectNoBusiness address
business_typestringNoDefault: company
tax_idstringNoTax ID (required for payouts)

Example Request

bash
curl -X POST https://api.dberi.com/v1/merchants \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Island Coffee Shop",
    "slug": "island-coffee",
    "category": "restaurant",
    "email": "hello@islandcoffee.bs",
    "phone": "+1-242-555-0100",
    "description": "Fresh Bahamian coffee and pastries",
    "website": "https://islandcoffee.bs",
    "address": {
      "line1": "456 Bay Street",
      "city": "Nassau",
      "state": "New Providence",
      "country": "BS"
    }
  }'

Example Response

json
{
  "id": "merchant-abc123",
  "name": "Island Coffee Shop",
  "slug": "island-coffee",
  "category": "restaurant",
  "email": "hello@islandcoffee.bs",
  "phone": "+1-242-555-0100",
  "description": "Fresh Bahamian coffee and pastries",
  "website": "https://islandcoffee.bs",
  "address": {
    "line1": "456 Bay Street",
    "city": "Nassau",
    "state": "New Providence",
    "country": "BS"
  },
  "business_type": "company",
  "is_active": true,
  "verification_status": "pending",
  "payout_schedule": "weekly",
  "created_at": "2026-03-19T10:00:00Z",
  "updated_at": "2026-03-19T10:00:00Z"
}

Retrieve a Merchant

Retrieves merchant details.

bash
GET /v1/merchants/:id

Parameters

ParameterTypeRequiredDescription
idstringYesMerchant ID

Example Request

bash
curl https://api.dberi.com/v1/merchants/merchant-abc123 \
  -H "Authorization: Bearer sk_live_your_api_key"

Example Response

json
{
  "id": "merchant-abc123",
  "name": "Island Coffee Shop",
  "slug": "island-coffee",
  "category": "restaurant",
  "email": "hello@islandcoffee.bs",
  "verification_status": "verified",
  "created_at": "2026-03-19T10:00:00Z"
}

Update a Merchant

Updates merchant information.

bash
PATCH /v1/merchants/:id

Parameters

All parameters from creation are available, all optional.

Example Request

bash
curl -X PATCH https://api.dberi.com/v1/merchants/merchant-abc123 \
  -H "Authorization: Bearer sk_live_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Award-winning Bahamian coffee and pastries",
    "payout_schedule": "daily"
  }'

Example Response

json
{
  "id": "merchant-abc123",
  "name": "Island Coffee Shop",
  "description": "Award-winning Bahamian coffee and pastries",
  "payout_schedule": "daily",
  "updated_at": "2026-03-19T15:30:00Z"
}

List All Merchants

Retrieves a list of all merchants (admin only).

bash
GET /v1/merchants

Query Parameters

ParameterTypeDescription
limitintegerNumber of results (default: 20, max: 100)
offsetintegerPagination offset
categorystringFilter by category
verification_statusstringFilter by verification status

Example Request

bash
curl "https://api.dberi.com/v1/merchants?limit=10&category=restaurant" \
  -H "Authorization: Bearer sk_live_your_api_key"

Example Response

json
{
  "merchants": [
    {
      "id": "merchant-abc123",
      "name": "Island Coffee Shop",
      "slug": "island-coffee",
      "category": "restaurant"
    }
  ],
  "total": 1,
  "limit": 10,
  "offset": 0
}

Delete a Merchant

Deactivates a merchant account.

bash
DELETE /v1/merchants/:id

Destructive Action

This deactivates the account but preserves transaction history. Contact support to permanently delete.

Example Request

bash
curl -X DELETE https://api.dberi.com/v1/merchants/merchant-abc123 \
  -H "Authorization: Bearer sk_live_your_api_key"

Example Response

json
{
  "id": "merchant-abc123",
  "is_active": false,
  "deleted_at": "2026-03-19T16:00:00Z"
}

Get Merchant Balance

Retrieves current wallet balance.

bash
GET /v1/merchants/:id/balance

Example Request

bash
curl https://api.dberi.com/v1/merchants/merchant-abc123/balance \
  -H "Authorization: Bearer sk_live_your_api_key"

Example Response

json
{
  "available": 92000,
  "pending": 15000,
  "reserved": 5000,
  "total": 112000,
  "currency": "BSD"
}

Amounts in cents:

  • Available: $920.00
  • Pending: $150.00
  • Reserved: $50.00
  • Total: $1,120.00

Verification

New merchants must complete verification to receive payouts.

Verification Requirements

Business TypeRequirements
Individual• Government ID
• Proof of address
• Tax ID
Company• Business registration
• Tax ID (EIN)
• Business address
• Owner ID

Verification Status

StatusDescription
pendingVerification not started or in review
verifiedAccount verified, can receive payouts
rejectedVerification failed (see rejection reason)

Submit Verification Documents

bash
POST /v1/merchants/:id/verification
bash
curl -X POST https://api.dberi.com/v1/merchants/merchant-abc123/verification \
  -H "Authorization: Bearer sk_live_your_api_key" \
  -F "government_id=@passport.pdf" \
  -F "proof_of_address=@utility_bill.pdf" \
  -F "business_registration=@registration.pdf"

Errors

CodeDescription
MERCHANT_NOT_FOUNDMerchant ID doesn't exist
SLUG_TAKENSlug already in use
INVALID_CATEGORYInvalid business category
VERIFICATION_REQUIREDAction requires verified account
INACTIVE_MERCHANTMerchant account is deactivated

Webhooks

Subscribe to merchant events:

merchant.created
merchant.updated
merchant.verified
merchant.deactivated

See Webhooks API for details.

Next Steps

Built for the Bahamas, powered by innovation