Onboarding Troubleshooting
Diagnose and resolve common issues during merchant onboarding
This guide helps you diagnose and resolve common issues that occur during merchant onboarding. For an overview of the onboarding process, see Merchant Onboarding.
Status-Specific Issues
Each connection status indicates where the merchant is in the onboarding journey. When a merchant appears stuck, use the status to guide your troubleshooting.
Stuck in "Requirements"
The Requirements status means one or more required fields are missing. This is the most common pre-submission issue.
How to identify missing fields:
Via API:
GET /v1/merchants/:merchantId/requirementThe response includes a missingRequiredData array for each connection:
{
"connections": [
{
"processor": "Payrix",
"status": "Requirements",
"missingRequiredData": [
"owners[0].ssn",
"owners[0].dob",
"banking[0].routing",
"banking[0].account"
]
}
]
}Via Dashboard:
- Navigate to Merchants → select the merchant
- View the Merchant Vault panel
- Each section shows a count of missing requirements in parentheses
- Click into each connection tab to see the specific missing fields
Common missing fields by category:
| Category | Commonly Missing | Solution |
|---|---|---|
| Business | tin, mcc, annualSaleVolume | Update merchant via API or Dashboard |
| Owners | ssn, dob, ownershipPercent | Add or update owner record |
| Banking | routing, account, accountType | Add bank account to merchant |
| Connection | tosDate, tosVersion, tosIp | Update connection with terms acceptance data |
Resolution steps:
- Query the requirements endpoint to get the exact missing fields
- Collect the missing data from the merchant
- Submit via API or have the merchant complete a boarding form
- Re-query requirements to confirm all fields are satisfied
- Status will automatically transition to
Readywhen complete
See Onboarding Data Requirements for detailed field path explanations.
Stuck in "Ready" After Form Completion
A common question: "The merchant completed the form, but the connection is still in Ready status—why wasn't the merchant onboarded?"
This is typically caused by one of two issues:
1. Auto-transmit is not enabled
The form template does not have autoTransmitMerchantData set to true. Without this setting, completing a boarding form only collects and saves the merchant data—it does not automatically initiate onboarding.
Solution: Either enable autoTransmitMerchantData on the form template for future forms, or manually initiate onboarding:
- Via Dashboard (most common): Navigate to the merchant, select the connection, and click the onboard action
- Via API:
POST /v1/merchants/:merchantId/connections/:connectionId/onboard
2. The merchant didn't submit the form
The autoTransmitMerchantData feature is only triggered when the merchant clicks Submit on the final page of the form. It's possible the merchant completed all the required fields but then abandoned the form without submitting.
How to verify:
- Check the form status via API:
GET /v1/merchants/:merchantId/forms - A form with
status: completedwas submitted; a form withstatus: pendingorstatus: expiredwas not
Solution: If the merchant data appears complete and the connection is Ready, the platform can choose to initiate onboarding manually via Dashboard or API.
Abandoned FormsPreczn does not automatically onboard merchants who fill out form fields but don't submit. There is no way to distinguish between a merchant who abandoned the form versus one who intentionally chose not to submit. If the platform wants to proceed with onboarding, it is their decision to initiate manually.
Stuck in "Queued" or "Sent"
These statuses indicate the onboarding request has been submitted but the processor hasn't responded yet.
| Status | Meaning |
|---|---|
Queued | Submission initiated, awaiting Preczn processing |
Sent | Data transmitted to processor, awaiting response |
Normal processing times:
Processing times vary by connection and can range from minutes to several business days depending on the processor's review queue.
What to check:
- Verify submission completed - Confirm the onboard API call returned a success response
- Check for silent failures - Some processors may not send status updates for all failure modes
- Review webhook delivery - Ensure your webhook endpoint is receiving events
When to escalate:
Queuedfor more than 1 hour: May indicate a Preczn processing issue—contact supportSentfor more than 3 business days: May need processor escalation—contact support with the merchant ID and connection
Webhook MonitoringSubscribe to
merchant.updatedwebhooks to receive real-time status updates. If you're not receiving updates, check your webhook configuration and endpoint health.
RFI (Request for Information)
The RFI status means the processor is requesting additional information before completing underwriting.
Finding RFI details:
RFI requests typically arrive through:
- Processor-specific portals
- Email notifications from the processor
- Dashboard notifications (when available)
Common RFI types:
| Request Type | Description | Resolution |
|---|---|---|
| Document verification | Processor needs supporting documents | Upload attachments via API or Dashboard |
| Information clarification | Processor needs to verify submitted data | Update merchant data and resubmit |
| Additional owner info | Processor needs more ownership details | Add or update owner records |
| Banking verification | Processor needs bank account verification | Provide voided check or bank statement |
Resolution steps:
- Identify what information the processor is requesting
- Collect the required information or documentation
- Submit the information:
- For data updates: Use the appropriate PATCH endpoint
- For documents: Use the Add Attachment endpoint
- Re-initiate onboarding:
- Via Dashboard (most common): Navigate to the merchant, select the connection, and click the onboard action
- Via API:
POST /v1/merchants/:merchantId/connections/:connectionId/onboard
- Monitor for status change via webhooks or polling
RFI Response WindowProcessors may have time limits for RFI responses. Respond promptly to avoid application expiration.
Error Status
The Error status indicates the processor returned an error during the onboarding process. This error originates from the connection you're attempting to board to—not from Preczn.
Retrieving the error:
The error message is available via the connections API:
GET /v1/merchants/:merchantIdCheck the connection object for error details. Note that error messages are often programmatic in nature (processor-specific codes or technical messages) and may require interpretation.
Common error causes:
| Cause | Description | Resolution |
|---|---|---|
| Data validation failure | Processor rejected data format or values | Review error details, correct the specific fields |
| Duplicate application | Merchant already exists at processor | Contact support to resolve duplicate |
| Credential issues | Connection credentials are invalid or expired | Verify connection configuration |
| Processor business rules | Data violates processor-specific requirements | Review processor documentation or contact support |
| Processor outage | Temporary processor system issue | Retry after waiting period |
Resolution steps:
- Retrieve the error message from the connection object via API or Dashboard
- Thoroughly review the error for clues on how to remediate—look for field names, validation messages, or error codes
- Correct the underlying issue if identifiable:
- For data issues: Update the merchant record with corrected values
- For credential issues: Verify connection configuration in Command Center
- For processor issues: Wait and retry
- Re-initiate onboarding after making corrections:
- Via Dashboard (most common): Navigate to the merchant, select the connection, and click the onboard action
- Via API:
POST /v1/merchants/:merchantId/connections/:connectionId/onboard
Error RecoveryThe onboard endpoint accepts connections in
Errorstatus, allowing you to retry after resolving the underlying issue.
When you can't resolve the error:
If the error message is unclear or you cannot determine the cause, contact Preczn support with the merchant ID, connection ID, and the exact error message. Preczn will investigate the error and work to implement a solution to prevent the issue for future merchants.
NoteRemediations may take time to implement and some processor-specific errors may require manual resolution or coordination with the processor directly.
Rejected Applications
The Rejected status means the processor has declined the merchant application.
Understanding rejection reasons:
Rejection reasons vary by processor and may include:
- High-risk business type or industry
- Negative credit history
- Incomplete or inconsistent information
- Failed identity verification
- Prohibited business activity
Which rejections are correctable?
| Type | Correctable | Action |
|---|---|---|
| Data errors | Yes | Correct data and resubmit |
| Missing information | Yes | Add information and resubmit |
| Business type restriction | Rarely | May need different processor |
| Credit/risk decision | Rarely | Contact processor for appeal process |
| Prohibited activity | No | Business is not eligible |
Resolution steps:
- Review the rejection reason (available in Dashboard or via processor communication)
- If correctable:
- Update the merchant data to address the issue
- Re-initiate onboarding to resubmit
- If not correctable:
- Consider alternative processors
- Contact the processor for appeal options (if available)
Processor AppealsSome processors offer appeal processes for rejected applications. Contact your processor representative for specific appeal procedures.
Unconfigured Status
The Unconfigured status indicates the connection lacks valid credentials—this is a configuration issue, not a data issue.
Resolution:
- Navigate to Command Center → Connections
- Select the connection
- Verify credentials are entered and valid
- If credentials are correct, test the connection
- Once configured, the status will change to
RequirementsorReady
Data Issues
Validation Errors on Submission
If the onboard endpoint returns a 400 error, the request failed validation.
Example error response:
{
"statusCode": 400,
"message": "The connection must have a status of 'Ready', 'RFI' or 'Error' in order to initiate onboarding.",
"error": "Bad Request"
}Common validation failures:
| Error | Cause | Solution |
|---|---|---|
| Connection not Ready | Missing required fields | Check missingRequiredData and collect missing data |
| Invalid connection ID | Wrong connection identifier | Verify connection ID from merchant record |
| Merchant not found | Wrong merchant ID | Verify merchant ID |
| Connection already submitted | Duplicate submission | Wait for current submission to complete |
Field format requirements:
| Field | Required Format | Example |
|---|---|---|
| Phone | E.164 without separators | 15551234567 |
| SSN | 9 digits, no dashes | 123456789 |
| TIN/EIN | 9 digits, no dashes | 123456789 |
| Country | ISO 3166-1 alpha-3 | USA, CAN |
| Date | ISO 8601 | 1985-03-15 |
| Monetary values | Cents (integer) | 50000 for $500.00 |
See Onboarding API Reference for complete field specifications.
Data Not Appearing After Form Completion
If merchant data doesn't appear after a boarding form is completed:
Check these items:
-
Form status - Verify the form was actually completed (not abandoned)
GET /v1/merchants/:merchantId/formsCheck for forms with
status: completed -
Webhook delivery - Confirm your webhook endpoint received the
form.completedevent -
Merchant record - Query the merchant directly to see if data was saved:
GET /v1/merchants/:merchantId -
Form expiration - Forms expire after the configured duration. If expired, generate a new form link
Resolution:
- If form shows incomplete: Merchant needs to finish the form
- If form expired: Generate a new form link
- If data is present but requirements not satisfied: Check
missingRequiredDatafor remaining fields
Webhook Delivery Issues
If you're not receiving expected webhooks:
Troubleshooting steps:
- Verify endpoint configuration - Check webhook URL in Command Center
- Test endpoint accessibility - Ensure endpoint is publicly accessible and returns 2xx
- Check endpoint health - Review your server logs for incoming requests
- Verify event subscription - Confirm you're subscribed to
merchant.updatedevents
Manual status check:
If webhooks aren't working, poll the merchant endpoint:
GET /v1/merchants/:merchantIdThe response includes current connection statuses and missingRequiredData arrays.
Quick Reference
| Symptom | Likely Cause | First Step |
|---|---|---|
| Stuck in Requirements | Missing data fields | Query requirements endpoint |
| Stuck in Queued | Processing delay | Wait, then check webhook delivery |
| Stuck in Sent | Processor processing | Wait up to 3 business days |
| RFI status | Processor needs info | Check for RFI details, respond promptly |
| Error status | Submission problem | Review error details, fix and resubmit |
| Rejected status | Underwriting declined | Review reason, correct if possible |
| 400 on onboard call | Validation failure | Check error message and fix data |
| No webhooks received | Delivery issue | Verify endpoint configuration |
Getting Help
If you've followed this guide and still can't resolve the issue:
-
Gather information:
- Merchant ID (
mid_...) - Connection ID (
midCon_...) - Current status
- Error messages (if any)
- Timestamp of when issue started
- Merchant ID (
-
Contact support with the above details for assistance
Related Pages
- Merchant Onboarding - Complete onboarding journey overview
- Onboarding Data Requirements - Understanding requirements and field paths
- Onboarding API Reference - API endpoints for programmatic onboarding
- Boarding Forms - Preczn-hosted data collection
Updated 20 minutes ago
