Skip to main content

Overview

This page lists all valid enumeration values accepted by the Onboarding API. Use these exact string values when submitting merchant onboarding requests.
All enum values are case-sensitive. Make sure to use the exact capitalization shown below.

Business Type

Determines the type of business entity and affects which fields are required during onboarding.

Usage Example

Best for: Small businesses, sole traders, freelancersRequirements:
  • Barangay Business Permit
  • No incorporators needed
  • No registered address needed
  • Legal name optional
Settlement accounts: Must provide at least one bank account
Best for: Individual business ownersRequirements:
  • 1 incorporator required
  • Legal name required
  • Registered address required
  • Additional KYC documents
Typically 1 incorporator. The schema itself accepts 1 to 5 incorporators; per-business-type counts are a guideline, not an API-enforced rule.
Best for: Business partnerships, joint venturesRequirements:
  • 2 incorporators required
  • Legal name required
  • Registered address required
  • Partnership agreement documents
Typically 2 incorporators. The schema accepts 1 to 5; the count is a guideline, not API-enforced.
Best for: Registered corporationsRequirements:
  • Minimum 3 incorporators required
  • Legal name required
  • Registered address required
  • Corporate registration documents
Typically 3 or more incorporators. The schema accepts 1 to 5; the count is a guideline, not API-enforced.

Mode of Payment

Specifies which payment channels the merchant wants to enable.

Usage Example

Merchants can enable multiple payment methods. Provide an array of values based on the merchant’s needs.

Currency

Three-letter ISO 4217 currency codes for customer transactions.

Usage Example

Currently, only PHP and USD are supported. The default currency is PHP.

Bank Names

bankName is free text (up to 500 characters) - the name of the bank holding the settlement account. There is no fixed enum on the v2 onboarding API; send the bank’s name as a plain string.

Usage Example

Bank Account Type

Account type for traditional bank accounts.

Usage Example

This field is required only when accountDepositType is "BANK".

Bank Account Deposit Type

Specifies the type of settlement account.

Usage Examples

Required fields:
  • accountType (SAVINGS or CHECKING_CURRENT)
  • bankName (the bank’s name, free text)
  • accountName
  • accountNumber
  • currency
Use for: Standard bank transfers and settlements
Required fields:
  • bankName (must be “GCASH”)
  • accountName
  • accountNumber (GCash mobile number)
Use for: GCash wallet settlements
The account number should be the GCash mobile number (e.g., “09123456789”)
Required fields:
  • bankName (must be “PAYMAYA”)
  • accountName
  • accountNumber (PayMaya mobile number)
Use for: PayMaya wallet settlements
Use for: Special cases where no settlement account is needed
Contact Modulus Labs before using NO_ACCOUNT to confirm it’s appropriate for your use case.

Gender

Gender options for incorporators and representatives.

Usage Example

Onboarding Status

Lifecycle states for merchant onboarding applications.

Status Flow

When: Initial merchant onboarding submissionMerchant Action: Wait for Modulus Labs reviewNext Steps: Status will change to either APPROVED or DECLINED
When: Merchant passes KYC verificationMerchant Action: Can start accepting paymentsNote: Approved merchants can be declined later if compliance issues are discovered
When: Merchant fails KYC verification or documents are incompleteMerchant Action: Review decline reason, update information, and resubmitNext Steps: Resubmitting will change status to PENDING
When: Merchant has updated information after being declinedMerchant Action: Wait for re-review by Modulus LabsNext Steps: Status will change to either APPROVED or DECLINED

Validation Quick Reference

Use this table for quick validation during implementation:

Common Mistakes

Avoid these common enum-related errors:
Wrong: "businessType": "starter" or "GCASH" as bankName for bank typeCorrect: "businessType": "STARTER" and proper account deposit typeSolution: Always use uppercase for enum values
Wrong:
Correct:
Solution: Match bankName with accountDepositType
The schema accepts 1 to 5 incorporators. Sending zero or more than five is rejected. The per-business-type counts above (1 for sole proprietor, 3+ for a corporation) are a guideline for approval, not an API validation - your application can submit with a different count and be reviewed on its merits.
Wrong: "modeOfPayments": ["E-COMMERCE"]Correct: "modeOfPayments": ["ECOM"]Solution: Use exact enum values from this documentation

Next Steps

Onboard Merchant API

Use these enums in your onboarding requests

Authentication

Set up JWT authentication

Introduction

Back to Onboarding API overview

Error Handling

Handle validation errors