Skip to main content
POST
Onboard Merchant

Overview

This endpoint onboards a merchant to accept various payment methods. Before calling this API, you must upload all required documents using the File Upload API based on the business type.
Document verification required: The API verifies that all required documents have been uploaded for the selected business type. If documents are missing, the request will fail.

Prerequisites

1

Create Account

Create a merchant account using the Create Account API to obtain an Account ID
2

Upload Documents

Upload required KYC documents via File Upload API (requirements vary by business type)
3

Generate JWT Token

Create a JWT Bearer Token with the Account ID and email (see Authentication)
4

Submit Onboarding

Call this endpoint with complete merchant details

Authentication

This endpoint requires JWT Bearer Token authentication. See the Authentication Guide for details.

Business Type Examples

Starter businesses don’t require legalName, incorporators, or registered address.

Next Steps

Store Reference Number

Save the reference number for tracking and support requests

Enums Reference

All valid enum values for parameters

Error Handling

Handle onboarding errors properly

Authentication

JWT Bearer Token authentication guide

Authorizations

Authorization
string
header
required

JWT Bearer token authentication

Body

application/json
merchantName
string
required

Trading name or DBA (Doing Business As) name

Maximum string length: 500
modeOfPayments
enum<string>[]
required

List of accepted payment modes

Minimum array length: 1
Available options:
TERMINAL,
ECOM,
PAYMENT_LINK,
QRPH,
PAY_WITH_MAYA
currency
enum<string>
required

Currency. On create the service uses PHP regardless of this value.

Available options:
PHP,
USD
tin
string
required

Tax Identification Number

Maximum string length: 20
Pattern: ^\d+$
industry
string
required

Business industry category

Maximum string length: 200
serviceDescription
string
required

Description of services or products offered

isBrickAndMortarStore
boolean
required

Whether the business has a physical store location

address
object
required
representatives
object
required
banks
object[]
required

List of bank accounts for settlement

Required array length: 1 - 2 elements
businessType
string
required

Business type (see Enums Reference).

parentOnboardingRefNo
string
required

Reference number of the parent onboarding record.

isWantPackworksWallet
boolean
required

Whether the merchant wants a wallet.

isWantPayMayaWallet
boolean
required

Whether the merchant wants a Maya wallet.

isWantPayMayaBankAccount
boolean
required

Whether the merchant wants a Maya bank account.

Legal registered name of the business (required for non-STARTER types)

Maximum string length: 500
businessHandle
string

Unique business handle/slug for payment links (required for non-STARTER types)

Pattern: ^([A-Za-z]|[0-9]|_|-)+$
incorporators
object[]

List of business incorporators (for non-STARTER types)

Required array length: 1 - 5 elements
signatories
object[]

List of authorized signatories

Required array length: 1 - 5 elements
websites
object
aubPartnerId
string

Optional partner identifier.

estimatedMonthlyGrossTransaction
string

Optional estimated monthly gross transaction volume.

Response

Onboarding application submitted successfully

onboardingReferenceNumber
string<uuid>

Unique reference number for the onboarding record