Payments & Subscriptions > Initialize & Verify Payments
Payments & Subscriptions > Initialize & Verify PaymentsKroxt BaaS SDK v1.0.5

Initialize & Verify Payments

Initialize checkout sessions and verify payment completion using the Kroxt SDK.

1. Initialize Payment Transaction

Call baas.payment.initializeTransaction(options) to generate a Paystack checkout authorization URL and reference:

initialize-payment.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const checkout = await baas.payment.initializeTransaction({
  amount: 500000, // Amount in minor units (5,000 NGN = 500000 kobo)
  email: "customer@example.com",
  currency: "NGN", // Optional, defaults to NGN
  callbackUrl: "https://myapp.com/payment/callback",
  metadata: {
    orderId: "ORD-8912",
    customNote: "Order payment for digital item",
  },
});

console.log("Authorization URL:", checkout.authorizationUrl);
console.log("Transaction Reference:", checkout.reference);

// Redirect user to Paystack checkout URL
window.location.href = checkout.authorizationUrl;
Option ParameterTypeDescription
amountnumberAmount in minor currency units (e.g. kobo for NGN, cents for USD). Required.
emailstringCustomer email address. Required.
currencystringCurrency code (defaults to "NGN").
referencestringUnique transaction reference. Auto-generated by Kroxt if omitted.
callbackUrlstringURL to redirect user after checkout completes.
planCodestringPaystack plan code (\`PLN_xxx\`) for initiating subscription payments.
metadataRecord<string, any>Custom key-value metadata stored alongside the transaction.

2. Verify Payment Transaction

Call baas.payment.verifyTransaction(reference) on your return/callback page to verify payment completion and update database status:

verify-payment.ts
1
2
3
4
5
6
7
8
9
10
// Verify transaction by reference
const verification = await baas.payment.verifyTransaction("kroxt_1723648123_a9b1c");

if (verification.verification.gatewayStatus === "success") {
  console.log("Payment Verified Successfully!");
  console.log("Customer:", verification.verification.customer.email);
  console.log("Paid Amount:", verification.verification.amount / 100);
} else {
  console.warn("Payment status:", verification.verification.gatewayStatus);
}

3. Query Transaction Logs

Call baas.payment.listTransactions(query) to retrieve past transactions with optional email or status filters:

list-transactions.ts
1
2
3
4
5
6
7
8
9
const logs = await baas.payment.listTransactions({
  status: "success",
  email: "customer@example.com",
  page: 1,
  limit: 20,
});

console.log("Total successful transactions:", logs.total);
console.log("Transactions page 1:", logs.transactions);