ForhoppPay Connect - Merchant Dashboard Guide
Overview
This guide covers everything a merchant needs to know about managing their ForhoppPay Connect integration from the merchant dashboard.
Getting Started
1. Enable Connect
- Log in to your ForhoppPay account
- Navigate to Settings > Connect
- Fill in your business profile:
- Business Name (required)
- Business URL
- Support Email (required)
- Support Phone
- Logo URL (displayed on checkout pages)
- Brand Color (hex code, e.g.,
#4F46E5) - Statement Descriptor (max 22 characters, appears on customer statements)
- Click "Enable Connect"
2. Configure Payout Settings
| Setting | Options | Description |
|---|---|---|
| Payout Schedule | Daily, Weekly, Monthly | When payouts are processed |
| Default Currency | USD, EUR, GBP, CAD, AUD, JPY, CHF | Currency for payouts |
| Payout Threshold | $25 minimum | Minimum balance for payout |
Payout timing:
- Daily: 00:00 UTC every day
- Weekly: Monday 00:00 UTC
- Monthly: 1st of month 00:00 UTC
3. Generate API Keys
- Go to Connect > API Keys
- Click "Create New Key"
- Enter a name (e.g., "Production Key")
- Select environment: Live or Test
- Copy and securely store the secret key (shown only once)
You can have up to 10 active API keys.
API Key Management
Key Types
| Key | Format | Purpose |
|---|---|---|
| Live Publishable | pk_live_[32 chars] |
Client-side code (safe to expose) |
| Live Secret | sk_live_[32 chars] |
Server-side API calls |
| Test Publishable | pk_test_[32 chars] |
Client-side testing |
| Test Secret | sk_test_[32 chars] |
Server-side testing |
Key Permissions
Default permissions for all keys:
charges:write- Create and manage chargescharges:read- View charge detailswebhooks:write- Create and manage webhookswebhooks:read- View webhook details
Revoking Keys
- Go to Connect > API Keys
- Find the key to revoke
- Click "Revoke"
- Confirm revocation
Revoked keys immediately stop working. The key record is preserved for audit purposes.
Key Rotation Best Practice
- Create a new key pair
- Update your application to use the new keys
- Verify the new keys work correctly
- Revoke the old keys
Transaction Management
Viewing Charges
The dashboard shows all charges with:
- Charge ID (ch_xxx)
- Amount and currency
- Status (pending, authorized, captured, refunded, etc.)
- Payment method
- Creation date
- Fee and net amounts
Charge Statuses
| Status | Meaning | Actions Available |
|---|---|---|
| Pending | Awaiting customer payment | Cancel |
| Authorized | Payment authorized | Capture, Void |
| Captured | Payment captured | Refund (full or partial) |
| Failed | Payment failed | None |
| Voided | Cancelled before capture | None |
| Refunded | Fully refunded | None |
| Partially Refunded | Partially refunded | Refund remaining |
| Expired | Checkout session expired (24h) | None |
| Disputed | Customer disputed charge | Submit evidence |
Issuing Refunds
- Find the charge in the dashboard
- Click "Refund"
- Enter amount (leave blank for full refund)
- Enter reason (optional)
- Confirm refund
Multiple partial refunds are allowed until the charge is fully refunded.
Webhook Management
Creating Webhooks
- Go to Connect > Webhooks
- Click "Add Endpoint"
- Enter your endpoint URL (must be HTTPS)
- Select events to subscribe to
- Add a description (optional)
- Copy the signing secret (shown only once)
Maximum 10 webhook endpoints per account.
Available Events
| Event | Description |
|---|---|
charge.created |
New charge created |
charge.completed |
Payment successful |
charge.failed |
Payment failed |
charge.refunded |
Charge refunded (full or partial) |
charge.disputed |
Customer disputed charge |
payout.created |
Payout initiated |
payout.completed |
Payout successful |
payout.failed |
Payout failed |
Webhook Health
The dashboard shows webhook endpoint health:
- Status: Enabled / Disabled / Failing
- Consecutive failures count
- Failing since timestamp
After 5 consecutive failures, the endpoint is marked as "failing". Fix the issue and the endpoint will recover automatically on the next successful delivery.
Delivery Logs
View delivery history for each webhook endpoint:
- Event type and ID
- Delivery status (delivered, failed, pending)
- HTTP status code
- Response body (truncated)
- Attempt count
- Timestamps
Logs are retained for 30 days.
Payout History
Viewing Payouts
The dashboard shows all payouts with:
- Payout ID (po_xxx)
- Amount, fees, and net amount
- Status (pending, in_transit, paid, failed)
- Payout method
- Expected arrival date
- Creation date
Payout Statuses
| Status | Meaning |
|---|---|
| Pending | Payout scheduled |
| In Transit | Funds being transferred |
| Paid | Payout completed |
| Failed | Payout failed (see failure reason) |
| Canceled | Payout cancelled |
Payout Calculation
Payout Amount = Captured Charges - Platform Fees - Refunds - Disputed Amounts
The minimum payout threshold is $25. If your balance is below this, the payout is deferred to the next cycle.
Dispute Management
When a Dispute Occurs
- Customer disputes a charge with their bank
- ForhoppPay creates a dispute record
charge.disputedwebhook is sent- Disputed amount is held from payouts
- You have a window to submit evidence
Dispute Statuses
| Status | Meaning |
|---|---|
| Open | Dispute opened, evidence needed |
| Under Review | Evidence submitted, being reviewed |
| Won | Resolved in your favor (funds released) |
| Lost | Resolved in customer's favor |
Submitting Evidence
- Go to the dispute in your dashboard
- Upload supporting documents:
- Proof of delivery
- Customer communication
- Terms of service
- Product descriptions
- Submit evidence before the deadline
Dispute Fees
- $15 dispute fee charged when dispute is opened
- Fee is refunded if you win the dispute
Sandbox / Test Mode
Switching to Test Mode
Toggle "Test Mode" in the dashboard to view test data separately from production.
Test Card Numbers
| Card | Result |
|---|---|
4242424242424242 |
Success |
4000000000000002 |
Declined |
4000000000009995 |
Insufficient funds |
4000000000000069 |
Expired card |
4000000000000127 |
Incorrect CVC |
4000000000000119 |
Processing error |
Test PayPal Accounts
| Result | |
|---|---|
test-success@sandbox.paypal.com |
Success |
test-decline@sandbox.paypal.com |
Declined |
Sandbox Behavior
- No real payments processed
- Webhooks delivered to test endpoints
- Data isolated from production
- Lower rate limits (25 req/sec vs 100)
Fee Structure
Transaction Fees
| Fee Type | Amount |
|---|---|
| Transaction Fee | 2.9% + $0.30 per charge |
| Currency Conversion | 1% above mid-market rate |
| Dispute Fee | $15 (refunded if won) |
Fee Example
Charge: $100.00 (10000 cents)
Percentage fee: 10000 × 0.029 = 290 cents ($2.90)
Fixed fee: 30 cents ($0.30)
Total fee: 320 cents ($3.20)
Net to you: 9680 cents ($96.80)
Monthly Statements
Fee statements are generated monthly and available in the dashboard under Connect > Statements.
Rate Limits & Quotas
| Resource | Limit |
|---|---|
| API Keys | 10 per merchant |
| Webhook Endpoints | 10 per merchant |
| Live API Requests | 100/second |
| Test API Requests | 25/second |
| Maximum Charge | $999,999.99 |
| Checkout Session | 24 hours |
| Authorized Hold | 7 days |
| Minimum Charge | $0.50 |
| Minimum Payout | $25.00 |
Supported Currencies
| Currency | Code | Min Charge | Symbol |
|---|---|---|---|
| US Dollar | USD | $0.50 | $ |
| Euro | EUR | €0.50 | € |
| British Pound | GBP | £0.50 | £ |
| Canadian Dollar | CAD | CA$0.50 | CA$ |
| Australian Dollar | AUD | A$0.50 | A$ |
| Japanese Yen | JPY | ¥50 | ¥ |
| Swiss Franc | CHF | CHF 0.50 | CHF |
Support
- Documentation: https://docs.forhopp.com
- API Status: https://status.forhopp.com
- Support Email: support@forhopp.com
- Developer Discord: https://discord.gg/forhopppay
Last Updated: March 2026
