Surfaces
Hosted checkout
We host the page. You put a Pay button on yours. Card data never sits on your server.
<form>
<script src="https://payment-web-sdk.payinvert.ai/v1/checkout"></script>
<button type="button" onclick="makePayment()">Pay</button>
</form>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.