Skip to content
jovvie.com

Build your own Jovvie Checkout integration

Jovvie Checkout adds in-person card payments to any app, website, or platform. If your platform does not have a ready-made Jovvie integration, you can build your own with the Jovvie PHP SDKs. This section is for developers and agencies doing that work for a merchant.

Anyone can build an integration. The ready-made integrations for WooCommerce, GiveWP, Gravity Forms, and Event Tickets work the same way as the one you will build.

Your integration runs on your server and lets the merchant’s staff take a card payment on a card reader from inside your app. For example, you can add in-person payments to:

  • A booking or appointment system
  • A membership, class, or club platform
  • An event check-in or ticketing app
  • A custom online store that also sells in person

With the SDKs, your integration can:

  • Create one-time payments and send staff to the Jovvie payment page to take them.
  • Create recurring payments (Stripe only).
  • Give staff access to the merchant’s card readers (Stripe only).
  • Send a payment straight to a registered NMI terminal (NMI only).
  • Check a payment’s status and receive webhooks when it changes.

Refunds are not available in the SDKs yet. SDK support for refunds is planned. Merchants refund in their Stripe Dashboard or in the NMI portal. See Refunds.

A typical payment goes like this:

  1. A staff member starts a checkout in your app.
  2. Your server creates a payment with the SDK. You give the amount, currency, description, and the addresses to send the browser back to afterward. Jovvie returns the payment with its ID and a checkout link.
  3. Your server saves the payment ID with your order.
  4. Your app sends the staff member’s browser to the checkout link. This opens the Jovvie payment page.
  5. On the payment page, staff choose a card reader. The customer taps, inserts, or swipes their card on the reader.
  6. After checkout, the payment page sends the browser to your return URL. If staff click ← Back while the payment is still pending, Jovvie marks it cancelled. ← Back then goes to your cancel URL when the payment is cancelled, and to your return URL for any other status. Closing the browser tab does not redirect the browser.
  7. Your server confirms the result. It fetches the payment with the SDK and checks its status, and it listens for webhooks about later changes.
  8. Your app marks the order as paid.

For what staff see in step 5, see Take a payment on the Jovvie payment page.

The payment page only lists the merchant’s card readers on a device that is allowed to use them. With the Stripe SDK, your server can create an authorization link that unlocks the readers in a staff member’s browser. Only give these links to the merchant’s staff, never to customers or anonymous visitors. See Unlock card readers for staff.

Jovvie has one SDK for each payment processor. Use the one that matches the merchant’s account. The ready-made Checkout plugins are Stripe only, but your own integration can use either processor.

Stripe NMI
Composer package bizswoop/jovvie-payments bizswoop/jovvie-payments-gateway
Client class JovviePayments\JovviePaymentsClient JovviePaymentsGateway\JovviePaymentsGatewayClient
Platform provider ID Required Not used
Test mode Yes No. Every payment is real
One-time payments Yes Yes
Recurring payments Yes No
Authorization links for staff Yes No
Register and list terminals No Yes
Webhook event names start with jovvie. jovvie-gateway.
Refunds In the Stripe Dashboard In the NMI portal

For the merchant-facing differences, see Stripe and NMI: what’s different.

  • A platform provider ID from Jovvie support (Stripe SDK only). Your integration must pass it explicitly. Without the right ID, an integration can work in test mode and fail in live mode.
  • A merchant account with Stripe or NMI connected.
  • A server application in the merchant’s Payments Dashboard, with its public key, secret key, and webhook key.
  • A server that runs PHP 7.4 or later with Composer.
  • An HTTPS address on your server to receive webhooks.

Get started walks you through each of these.

  1. Get started
  2. Install the SDK
  3. Create a payment (Stripe)
  4. Unlock card readers for staff
  5. Take payments with NMI
  6. Handle webhooks
  7. Check a payment’s status
  8. Recurring payments
  9. Refunds
  10. Test your integration
  11. Handle errors

To get a platform provider ID or ask about your integration, contact Jovvie support.