Direct ProPay Account Provisioning
This integration guide demonstrates how to provision merchant accounts with ProPay (Global Payments) when you have all the necessary Subject Record data and want to execute the Account-Provisioning workflow directly.
This approach is ideal for automated merchant migrations, or headless API implementations where you're programmatically creating all entities without needing a prior Business-Application workflow.
Overview
ProPay account provisioning in Kompliant enables seamless integration with Global Payments by submitting complete merchant data for onboarding. The system uses an Account-Provisioning Workflow to manage the provisioning process.
A typical ProPay account provisioning workflow involves the following steps:
- Create Account Provisioning Workflow
- Add business details with registration type
- Add business owners (with SSN and DOB)
- Add bank accounts
- Add sales information
- Create ProPay provisioning entity
- Validate provisioning requirements
- Execute provisioning operations
- Monitor operation status
This guide walks you through the sequence of API calls needed to complete these steps.
Step 1: Create an Account Provisioning Workflow
The first step is to create a workflow of type ACCOUNT_PROVISIONING. This will automatically create a Subject Record for you. The Account ID is supplied to you when you receive your credentials.
Create a workflow of type ACCOUNT_PROVISIONING to serve as the container for all provisioning activities. The workflow must be in STARTED state for provisioning operations.
POST https://api.kompliant.com/workflow.create
Request Body:
{
"account_id": "your_account_id",
"workflow": {
"type": "ACCOUNT_PROVISIONING"
}
}
For more details on this API, see workflow.create.
Step 2: Add Business Information with Registration Type
Once you have the subject record ID from the previous step, you can add business details. Important: ProPay requires a valid registration type and does NOT require a Merchant ID (unlike MBTrust).
POST https://api.kompliant.com/business.create
Request Body:
{
"subject_record_id": "sr_from_previous_step",
"business": {
"legal_name": "Example Business LLC",
"operating_name": "Example Business",
"registration_type": "LLC_PRIVATE",
"tax_id": "123456789",
"phone_number": "(555) 123-4567",
"industry_category_codes": [
{
"type": "MCC",
"code": "5734",
"details": {
"mcc_details": {
"card_brand": "MASTERCARD"
}
}
}
],
"addresses": [
{
"type": "LEGAL",
"line1": "123 Business Street",
"city": "Businessville",
"state": "CA",
"postal_code": "90210",
"country": "US"
},
{
"type": "BUSINESS",
"line1": "123 Business Street",
"city": "Businessville",
"state": "CA",
"postal_code": "90210",
"country": "US"
}
]
}
}
Key ProPay Requirements:
registration_typeis required (must be one of: Corporation, LLC, Sole Proprietorship, Partnership, Government, Non-Profit)- Both LEGAL (primary) and BUSINESS (mailing) addresses are required
- No Merchant ID needed (unlike MBTrust)
For more details on this API, see business.create.
Step 3: Add Business Owners
ProPay requires at least one business owner with complete information including SSN, date of birth, and ownership percentage.
For each owner do the following:
3.1 Create the Person
Important: ProPay requires tax_id (SSN) and date_of_birth for all business owners.
POST https://api.kompliant.com/person.create
Request Body:
{
"subject_record_id": "sr_from_previous_step",
"person": {
"email": "[email protected]",
"first_name": "Jane",
"last_name": "Smith",
"date_of_birth": "1980-01-15",
"tax_id": "123456789",
"citizenship": "US",
"phone_number": "(555) 987-6543",
"addresses": [
{
"type": "PRIMARY_RESIDENCE",
"line1": "456 Controller Lane",
"city": "Businessville",
"state": "CA",
"postal_code": "90210",
"country": "US"
}
]
}
}
For more details on this API, see person.create.
3.2 Associate Person as Business Owner
Important: ProPay requires ownership_percentage for all business owners.
POST https://api.kompliant.com/business.addOwner
Request Body:
{
"business_id": "b_from_business_create",
"business_owner": {
"person_id": "p_from_person_create",
"ownership_type": "CONTROL_PRONG",
"ownership_percentage": 25,
"ownership_year_month": "2020-01",
"business_person_position": "PRESIDENT"
}
}
For more details on this API, see business.addOwner.
Repeat for Additional Owners
If the business has multiple owners, repeat steps 3.1 and 3.2 for each owner. Ensure the total ownership percentage adds up appropriately.
Step 4: Add Bank Accounts
ProPay requires a bank account with routing number, account number, and a valid account type.
4.1 Create the Bank Account
Important: Account type must be one of: SAVINGS, CHECKING, or GENERAL_LEDGER.
POST https://api.kompliant.com/bankAccount.create
Request Body:
{
"subject_record_id": "sr_from_workflow_create",
"bank_account": {
"bank_account_ownership_type": "BUSINESS",
"bank_account_type": "CHECKING",
"bank_routing_number": "021000021",
"bank_account_number": "1234567890123",
"bank_name": "Example Bank"
}
}
For more details on this API, see bankAccount.create.
4.2 Associate Bank Account with Business
POST https://api.kompliant.com/business.addBankAccount
Request Body:
{
"business_id": "b_from_business_create",
"business_bank_account": {
"bank_account_id": "ba_from_bank_account_create",
"bank_account_purposes": [
"PRIMARY",
"FEES",
"SETTLEMENT"
]
}
}
For more details on this API, see business.addBankAccount.
Step 5: Add Sales Information
ProPay requires sales information with monthly volume, average ticket, and highest ticket amounts.
POST https://api.kompliant.com/business.salesInfo.create
Request Body:
{
"business_id": "b_from_business_create",
"sales_info": {
"card_brands": [
"VISA",
"MASTERCARD",
"AMEX"
],
"sales_method": {
"retail": 25,
"telephone": 25,
"online": 25,
"keyed": 25
},
"sales_amount": [
{
"type": "AVERAGE_MONTHLY_CREDIT_SALES",
"value": 50000,
"currency": "USD"
},
{
"type": "AVERAGE_INDIVIDUAL_SALE",
"value": 150,
"currency": "USD"
},
{
"type": "HIGHEST_TICKET_SALE",
"value": 500,
"currency": "USD"
}
]
}
}
Key ProPay Requirements:
AVERAGE_MONTHLY_CREDIT_SALESis requiredAVERAGE_INDIVIDUAL_SALEis requiredHIGHEST_TICKET_SALEis required
For more details on this API, see business.salesInfo.create.
Step 6: Create ProPay Provisioning Entity
Once all entities are created and associated, create the ProPay account provisioning entity. This initiates the provisioning process with Global Payments.
POST https://api.kompliant.com/propay.create
Request Body:
{
"workflow_id": "w_from_workflow_create",
"provisioning_sponsor": "GLOBAL_PAYMENTS"
}
For more details on this API, see propay.create.
Step 7: Validate Provisioning Requirements
Before executing provisioning operations, validate that all requirements are met. This endpoint checks for missing or incomplete information.
POST https://api.kompliant.com/propay.canExecute
Request Body:
{
"propay_id": "ape_from_propay_create"
}
Response Example:
{
"meta": {
"status": "SUCCESS",
"trace_id": "trc_6zNzQZHSf26V83BO3uW6dS",
"version": "2025-03-24"
},
"data": {
"can_execute": true,
"missing_requirements": []
}
}
If can_execute is false, review the missing_requirements array and fix each issue before proceeding. See ProPay Validation Reference for detailed resolution steps.
For more details on this API, see propay.canExecute.
Step 8: Execute Provisioning Operations
Once validation confirms all requirements are met, execute the provisioning operations. This queues the operations for asynchronous processing.
POST https://api.kompliant.com/propay.execute
Request Body:
{
"propay_id": "ape_from_propay_create"
}
For more details on this API, see propay.execute.
Step 9: Monitor Operation Status
Monitor the status of provisioning operations using webhooks (recommended) or polling with the propay.get endpoint.
Webhook Notifications (Recommended)
When provisioning operations complete, the system sends webhook notifications with real-time status updates. Webhooks provide immediate notification when operations complete, eliminating the need for polling.
Webhook Configuration Required
To receive webhook notifications, you must contact the Kompliant team to configure your webhook endpoint. You cannot set up webhooks through the API directly.
For more information about webhooks, see Webhook Notifications.
Polling with propay.get (Alternative)
If webhooks are not configured or you need to check status on-demand, you can use the propay.get endpoint:
POST https://api.kompliant.com/propay.get
Request Body:
{
"propay_id": "ape_from_propay_create"
}
For more details on this API, see propay.get.
Complete Integration Flow
This diagram shows the complete end-to-end flow for ProPay provisioning:
workflow.create
↓
business.create (with registration_type, no MID needed)
↓
person.create (with SSN and DOB)
↓
business.addOwner (with ownership_percentage)
↓
[Repeat for additional owners if needed]
↓
bankAccount.create (with valid account_type)
↓
business.addBankAccount
↓
business.salesInfo.create (with all required amounts)
↓
propay.create
↓
propay.canExecute
↓
[If missing requirements, fix them and retry]
↓
propay.execute
↓
[Receive webhook notification of completed onboarding]
OR
propay.get
Best Practices
Follow these recommendations to ensure a smooth ProPay account provisioning experience:
-
Complete All Entity Setup First: Create and associate all required entities (business, person, bank account, sales info) before creating the ProPay provisioning entity. This ensures validation passes on the first attempt.
-
Include Registration Type: The business registration type is required for ProPay. Valid types include Corporation (private/public), LLC (private/public), Sole Proprietorship, Partnership (private/public), Government, or Non-Profit.
-
Collect SSN and DOB: ProPay requires SSN (
tax_id) and date of birth for all business owners. Ensure you collect this information before starting the provisioning process. -
Specify Ownership Percentage: Each business owner must have an
ownership_percentagespecified. This is required by ProPay for all owners. -
Use Valid Account Types: Bank account type must be one of:
SAVINGS,CHECKING, orGENERAL_LEDGER. Other account types will fail validation. -
Include All Sales Amounts: ProPay requires three specific sales amounts:
AVERAGE_MONTHLY_CREDIT_SALES,AVERAGE_INDIVIDUAL_SALE, andHIGHEST_TICKET_SALE. All three must be provided. -
Provide Both Addresses: Ensure both LEGAL (primary/physical) and BUSINESS (mailing) addresses are complete with all required fields (line1, city, state, postal_code).
-
Validate Before Executing: Always call
propay.canExecutebeforepropay.executeto catch missing requirements early. Address all items in themissing_requirementsarray before executing operations. -
Use Webhooks for Monitoring: Configure webhook notifications to receive real-time updates when operations complete. This is more efficient than polling and ensures immediate notification.
-
Handle Asynchronous Processing: Operations are processed asynchronously. Don't expect immediate completion after calling
propay.execute. Plan your integration to handle delays and status checking. -
Store Entity IDs: Save all entity IDs returned from API responses (
workflow_id,subject_record_id,business_id,person_id,propay_id, etc.). You'll need these for subsequent operations and troubleshooting. -
Handle Errors Gracefully: Check
meta.statusin all responses and handleERRORresponses appropriately. Refer to ProPay Validation Reference for detailed error handling guidance. -
Test in Sandbox First: Test your complete integration flow in the sandbox environment before moving to production. This allows you to verify your implementation without affecting real merchant accounts.
-
Verify Partner Configuration: Ensure ProPay is enabled for your account and that Tier Code is configured. Contact Kompliant support if you encounter
PROVISIONER_DISABLEDorTIER_CODE_REQUIREDerrors. -
Requirement Codes: Familiarize yourself with the PROPAY_MISSING_REQUIREMENTS enum to quickly identify and resolve validation errors.
Key Differences from MBTrust
ProPay provisioning has some important differences from MBTrust:
- No Merchant ID Required: ProPay does not require a Merchant ID (MID) in the business entity
- Registration Type Mandatory: Business registration type must be specified and valid for ProPay
- SSN and DOB Required: Business owner SSN and date of birth are mandatory (not optional)
- Ownership Percentage Required: Each business owner must have an ownership percentage
- Specific Account Types: Bank account type must be
SAVINGS,CHECKING, orGENERAL_LEDGER - Three Sales Amounts Required: Must provide monthly volume, average ticket, and highest ticket
- Single Operation: Currently, only ONBOARDING operation is supported (no separate document sync)
- Configuration Requirements: Tier Code must be pre-configured by Kompliant support
- Address Requirements: Both primary and business addresses must be complete