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.
ValueDescriptionIncorporators RequiredLegal Name Required
STARTERStarter BusinessNoNo
SOLE_PROPRIETORSole Proprietor1Yes
PARTNERSHIPPartnership2Yes
CORPORATIONCorporationMinimum 3Yes

Usage Example

{
  "businessType": "STARTER"
}
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
Validation: System checks that exactly 1 incorporator is provided
Best for: Business partnerships, joint venturesRequirements:
  • 2 incorporators required
  • Legal name required
  • Registered address required
  • Partnership agreement documents
Validation: System checks that exactly 2 incorporators are provided
Best for: Registered corporationsRequirements:
  • Minimum 3 incorporators required
  • Legal name required
  • Registered address required
  • Corporate registration documents
Validation: System checks that at least 3 incorporators are provided

Mode of Payment

Specifies which payment channels the merchant wants to enable.
ValueDescriptionUse Case
TERMINALPhysical POS terminalsIn-store retail
ECOME-commerce integrationOnline checkout
PAYMENT_LINKShareable payment URLsInvoices, remote sales
QRPHQR Ph standardContactless payments
PAY_WITH_MAYAMaya walletE-wallet transactions

Usage Example

{
  "modeOfPayments": ["ECOM", "QRPH", "PAYMENT_LINK"]
}
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.
ValueDescription
PHPPhilippine Peso
USDUnited States Dollar

Usage Example

{
  "currency": "PHP"
}
Currently, only PHP and USD are supported. The default currency is PHP.

Bank Names

All supported banks for settlement accounts. Use these exact values for the bankName field.
ValueBank Name
AGRIBUSINESS_RURAL_BANK_INCAgribusiness Rural Bank
AL_AMANAH_ISLAMIC_BANKAl Amanah Islamic Bank
ALIPAY_PHILIPPINES_INCAlipay Philippines
ALLBANK_INCAllBank
ANZ_BANKANZ Bank
ASIA_UNITED_BANKAsia United Bank
BANANAPAY_FINTECH_SERVICES_CORPORATIONBananapay
BANGKO_KABAYANBangko Kabayan
BANGKO_MABUHAY_A_RURAL_BANK_INCBangko Mabuhay
BANGKO_NUESTRA_SENORA_DEL_PILARBangko Nuestra Senora del Pilar
BANGKOK_BANKBangkok Bank
BANK_OF_AMERICA_NABank of America
BANK_OF_CHINA_MANILABank of China
BANK_OF_COMMERCEBank of Commerce
BANK_OF_FLORIDABank of Florida
BANK_OF_MAKATIBank of Makati
BANK_OF_THE_PHILIPPINE_ISLANDS_BPIBPI
BAYANIHAN_BANK_INC_ATIMONANBayanihan Bank
BDO_NETWORK_BANKBDO Network Bank
BDO_UNIBANKBDO Unibank
BINAN_RURAL_BANK_INCBinan Rural Bank
BPI_DIRECT_BANKO_INC_A_SAVINGS_BANKBPI Direct Banko
CAMALIG_BANK_INC_A_RURAL_BANKCamalig Bank
CANTILAN_BANK_INCCantilan Bank
CARD_BANK_INCCard Bank
CARD_MRI_RIZAL_BANK_INCCard MRI Rizal Bank
CARD_SME_BANK_INC_A_THRIFT_BANKCard SME Bank
CATHAY_UNITED_BANK_CO_LTDCathay United Bank
CEBUANA_LHUILLIER_RURAL_BANK_INCCebuana Lhuillier Rural Bank
CHINA_BANKChina Banking Corporation
CHINA_BANK_SAVINGSChina Bank Savings
CIMBCIMB Bank Philippines
CIS_BAYAD_CENTER_INC_CBCICIS Bayad Center
CITIBANK_NACitibank
CITY_SAVINGS_BANKCity Savings Bank
COOPERATIVE_BANK_OF_QUEZON_PROVINCECooperative Bank of Quezon Province
COUNTRY_BUILDERS_BANKINGCountry Builders Bank
CTBC_BANKCTBC Bank
DCPAY_PHILIPPINES_INC_COINSPHDCPay Philippines
DEUTSCHE_BANKDeutsche Bank
DEVELOPMENT_BANK_OF_THE_PHILIPPINES_DBPDevelopment Bank of the Philippines
DM_BANKDM Bank
DUMAGUETE_CITY_DEVELOPMENT_BANK_INCDumaguete City Development Bank
DUNGGANUN_BANKDungganun Bank
EAST_WEST_RURAL_BANK_INCEast West Rural Bank
EASTWEST_BANKEastWest Bank
EASY_PAY_GLOBAL_EMI_CORPEasy Pay Global
ENTREPRENEUR_RURAL_BANK_INCEntrepreneur Rural Bank
EQUICOM_SAVINGS_BANKEquicom Savings Bank
FIRST_CONSOLIDATED_BANKFirst Consolidated Bank
GCASHG-Xchange
GM_BANK_OF_LUZON_INCGM Bank of Luzon
GOTYMEGoTyme Bank
GRABPAYGrabPay
GUAGUA_RURAL_BANK_INCGuagua Rural Bank
HONG_KONG_AND_SHANGHAI_BANK_HSBCHSBC
HSBC_SAVINGS_BANK_PHILSINCHSBC Savings Bank
INDUSTRIAL_BANK_OF_KOREA_MANILAIndustrial Bank of Korea
INDUSTRIAL_COMMERCIAL_BANK_OF_CHINAICBC
INFOSERVE_INCORPORATED_NATIONLINKInfoserve
ING_BANKING Bank
INNOVATIVE_BANKInnovative Bank
I-REMIT_INCI-Remit
ISLA_BANK_A_THRIFT_BANK_INCISLA Bank
JP_MORGAN_CHASE_BANK_MANILAJP Morgan Chase Bank
KOREA_EXCHANGE_BANKKEB Hana Bank
LAGUNA_PRESTIGE_BANKING_CORPORATIONLaguna Prestige Banking Corp
LAND_BANK_OF_THE_PHILIPPINESLand Bank of the Philippines
LEGAZPI_SAVINGS_BANK_INCLegazpi Savings Bank
LOLC_BANK_PHILIPPINES_INCLOLC Bank
LULU_FINANCIAL_SERVICES_PHILS_INCLulu Financial Services
LUZON_DEVELOPMENT_BANKLuzon Development Bank
MALARAYAT_RURAL_BANK_INCMalarayat Rural Bank
MALAYAN_BANK_SAVINGS_AND_MORTGAGE_BANK_INCMalayan Bank
MARCOPAY_INCMarcopay
MAYA_BANKMaya Bank
MAYBANK_PHILIPPINESMaybank Philippines
MEGA_INTERNATIONAL_COMMERCIAL_BANKICBC
METROPOLITAN_BANK_TRUST_CO_METROBANKMetrobank
MINDANAO_CONSOLIDATED_COOPERATIVE_BANKMindanao Consolidated Coop Bank
MIZUHO_BANKMizuho Bank
MONEY_MALL_RURAL_BANK_INCMoney Mall Rural Bank
MUFG_BANKMUFG Bank
MVSM_BANK_A_RURAL_BANK_INCMVSM Bank
NETBANK_A_RURAL_BANK_INCNetbank
NEW_RURAL_BANK_OF_SAN_LEONARDO_NUEVA_ECIJA_INCNew Rural Bank of San Leonardo
OMNIPAY_INCOmnipay
OWN_BANK_THE_RURAL_BANK_OF_CAVITE_CITY_INCOwn Bank

Usage Example

{
  "banks": [
    {
      "accountDepositType": "BANK",
      "bankName": "BDO_UNIBANK",
      "accountType": "SAVINGS",
      "accountName": "Business Corporation",
      "accountNumber": "1234567890",
      "currency": "PHP"
    }
  ]
}

Bank Account Type

Account type for traditional bank accounts.
ValueDescription
SAVINGSSavings Account
CHECKING_CURRENTChecking/Current Account

Usage Example

{
  "accountType": "SAVINGS"
}
This field is required only when accountDepositType is "BANK".

Bank Account Deposit Type

Specifies the type of settlement account.
ValueDescriptionWhen to Use
BANKTraditional bank accountFor standard bank settlements
GCASHGCash e-walletFor GCash settlements
PAYMAYAPayMaya e-walletFor PayMaya settlements
NO_ACCOUNTNo settlement accountSpecial cases only

Usage Examples

{
  "accountDepositType": "BANK",
  "accountType": "SAVINGS",
  "bankName": "BDO_UNIBANK",
  "accountName": "Business Corp",
  "accountNumber": "1234567890",
  "currency": "PHP"
}
Required fields:
  • accountType (SAVINGS or CHECKING_CURRENT)
  • bankName (from supported banks list)
  • 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.

Source of Funds

Indicates the source of funds for incorporators.
ValueDescription
EMPLOYMENT_INCOMEEmployment Income
BUSINESS_INCOMEBusiness Income
SAVINGS_PERSONAL_FUNDSSavings/Personal Funds
INVESTMENT_INCOMEInvestment Income
INHERITANCE_OR_GIFTSInheritance or Gifts
LOAN_PROCEEDSLoan Proceeds
OTHERSOthers

Usage Example

{
  "incorporators": [
    {
      "firstName": "John",
      "lastName": "Doe",
      "sourceOfFunds": "BUSINESS_INCOME",
      ...
    }
  ]
}

Gender

Gender options for incorporators and representatives.
ValueDescription
MALEMale gender
FEMALEFemale gender

Usage Example

{
  "gender": "MALE"
}

Onboarding Status

Lifecycle states for merchant onboarding applications.
ValueDescriptionNext Possible States
NEWInitial submission, awaiting approvalAPPROVED, DECLINED
APPROVEDMerchant approvedDECLINED (if issues found)
DECLINEDMerchant declinedPENDING (after update)
PENDINGResubmitted after decline, awaiting re-approvalAPPROVED, DECLINED

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:
FieldTypeFormatNotes
businessTypeEnumStringUse exact enum value
legalNameString1-500 charsRequired for non-STARTER
merchantNameString1-500 charsAlways required
tinString9-12 digitsNumbers only
currencyEnum3 charsUsually “PHP”
industryString1-200 charsBrief description
contactNumberString1-30 digitsNumbers only
postalCodeString4-10 digitsNumbers only
emailAddressString1-100 charsValid email format
dateOfBirthStringISO 8601YYYY-MM-DDTHH:mm:ss.sssZ

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:
{
  "accountDepositType": "BANK",
  "bankName": "GCASH"
}
Correct:
{
  "accountDepositType": "GCASH",
  "bankName": "GCASH"
}
Solution: Match bankName with accountDepositType
Wrong: CORPORATION with only 1 incorporatorCorrect: CORPORATION with at least 3 incorporatorsSolution: Check business type requirements in the table above
Wrong: "modeOfPayments": ["E-COMMERCE"]Correct: "modeOfPayments": ["ECOM"]Solution: Use exact enum values from this documentation

Next Steps