Partner Onboarding Runbook

Step-by-step procedure for onboarding a new partner from creation to go-live.

Prerequisites

Before starting the onboarding process, confirm you have:

  • Admin access to the JoPay admin portal
  • The partner's business name and desired URL slug
  • The partner's preferred display currency (from the 28 supported currencies)
  • The partner's preferred blockchain (Polygon, Base, Ethereum, Optimism, or Arbitrum)
  • The partner's preferred payment asset (USDC or EURC)
  • The partner's branding assets (logo, primary color) if applicable
  • A technical contact at the partner who will configure webhooks

Onboarding steps

Create partner in admin portal

Navigate to the admin portal and create a new partner record with the following fields:

FieldDescriptionExample
nameBusiness display nameAcme Payments
slugURL-safe identifier (lowercase, hyphens only)acme-payments
display_currencyDefault fiat currency for displayUSD
chainDefault blockchain networkpolygon
assetPayment stablecoinUSDC
min_fiat_per_requestMinimum payment amount in display currency (in cents)100 (= $1.00)
brandingLogo URL and primary color hex code#2563EB
The slug must be unique across all partners and cannot be changed after creation. Double-check spelling before saving.

Generate API credentials

After the partner record is created:

  1. Generate an API key pair in the admin portal for the new partner.
  2. Record the partner_id and api_key.
  3. Securely deliver the credentials to the partner's technical contact. Use an encrypted channel (e.g., a one-time secret sharing service). Never send credentials via plain email.

Configure webhook

Work with the partner's technical team to set up webhooks:

  1. The partner provides their webhook endpoint URL (must be HTTPS).
  2. Enter the URL in the admin portal under the partner's webhook settings.
  3. The system generates a webhook signing secret. Deliver this to the partner securely.
  4. Advise the partner to implement HMAC-SHA256 signature verification using the code examples in the Webhook events reference.

Create first merchant invite

Create a test merchant invite to verify the onboarding flow:

  1. In the admin portal, create a merchant invite for a test email address controlled by the partner.
  2. Verify the invite email is delivered successfully.
  3. Have the partner's technical contact accept the invite and complete the merchant setup flow.
  4. Confirm the merchant appears in the partner's merchant list in the admin portal.

Test payment flow

Run a complete end-to-end payment test:

  1. Log in as the test merchant and create a payment request for a small amount (e.g., $1.00).
  2. Open the payment link in a separate browser or incognito window.
  3. Send the exact USDC amount from a test wallet to the merchant's address on the configured chain.
  4. Wait for the Trails engine to verify the payment. The dashboard should update to show the payment as verified.
  5. Confirm the payment receipt is generated and accessible.
Use Polygon or Base for test payments to minimize gas costs. A test payment on Polygon costs less than $0.01 in gas.

Verify webhook delivery

Confirm webhooks are working end-to-end:

  1. After the test payment is verified, check the WebhookDelivery table for the partner.
  2. Confirm a payment.proof_attached event was delivered and received a 200 response.
  3. Confirm a payment.proof_verified event was delivered and received a 200 response.
  4. Ask the partner to confirm they received both events and that signature verification passed on their end.
  5. If deliveries failed, troubleshoot using the webhook delivery failing procedure in the Admin Playbook.

Go live

Once all tests pass, the partner is ready for production:

  1. Remove or disable the test merchant if it was only for testing.
  2. Confirm the partner's production webhook URL is configured (it may differ from the test URL).
  3. Verify FX rates are loading correctly for the partner's display currency.
  4. Confirm rate limits are appropriate for the partner's expected traffic volume.
  5. Provide the partner with links to relevant documentation: Webhook events, Error codes, Rate limits.
  6. Add the partner to the monitoring dashboard for ongoing health checks.

Post-onboarding checklist

ItemStatus
Partner record created with correct slug, currency, chain, asset_____
API credentials generated and securely delivered_____
Webhook URL configured and test delivery succeeded_____
Webhook signing secret delivered securely_____
Test merchant invite created and accepted_____
End-to-end test payment done and verified_____
Both webhook events (proof_attached, proof_verified) received by partner_____
FX rates loading for partner's currency_____
Rate limits reviewed and verified_____
Partner added to monitoring dashboard_____
Documentation links shared with partner_____

Common issues during onboarding

IssueCauseResolution
Invite email not deliveredEmail provider blocked the inviteCheck spam folder. Verify the sending domain is not blocklisted. Resend the invite.
Webhook test delivery failsPartner endpoint not reachable or returning errorsSee the Admin Playbook "Webhook delivery failing" procedure.
Test payment not verifyingWrong chain, amount, or recipient addressVerify the transaction on the block explorer. Check that the chain, amount, and recipient match exactly.
FX rates showing $0.00Currency not configured or FX provider issueVerify the display currency is in the supported list. Try a manual FX refresh.