Surfaces

Hosted checkout

We host the page. You put a Pay button on yours. Card data never sits on your server.

html
<form>
  <script src="https://payment-web-sdk.payinvert.ai/v1/checkout"></script>
  <button type="button" onclick="makePayment()">Pay</button>
</form>
javascript
const makePayment = () => {
  const Checkout = new window.CheckoutNS.PaymentCheckout({
    firstName: "Kemi",
    lastName: "Adeyemi",
    mobile: "+2348158200000",
    country: "NG",
    email: "kemi@northline.ng",
    currency: "NGN",
    amount: 18500,
    reference: "NLM-88421",
    merchantReference: "NLM-88421",
    description: "Northline stall 12",
    apiKey: "PGW-PUBLICKEY-TEST-...",
    encryptionKey: "YOUR-ENCRYPTION-KEY",
    onCompleted: (data) => {},
    onClose: () => {},
    onError: (error) => {},
  });
  Checkout.init();
};
PCI

Checkout Standard keeps PAN off your servers. Direct card APIs need PCI DSS Level 1.

Still verify

onCompleted is a UX signal. Fulfil after webhook or verify.