Skip to Content

Payments

End‑to‑end flows for collecting payments with Paystack using the SDK.

Transaction Flow (Available)

Use the hosted checkout flow for secure payment collection:

final transaction = await MindPaystack.instance.transaction.initialize( InitializeTransactionOptions( amount: Money.fromCents(150000, Currency.ngn), // ₦1,500.00 email: 'user@example.com', ), ); // Open transaction.data.authorizationUrl in browser/webview

Direct Card Charging (Available)

Direct card charging with multiple API approaches:

// Individual Parameters - Simple and direct final charge = await MindPaystack.instance.charge.chargeCard( email: 'user@example.com', amount: '150000', // ₦1,500.00 in kobo card: Card( number: '4084084084084081', cvv: '408', expiryMonth: '12', expiryYear: '2030', ), ); // Option Objects - Clean parameter grouping final cardOptions = CardOptions( email: 'user@example.com', amount: '150000', card: Card( number: '4084084084084081', cvv: '408', expiryMonth: '12', expiryYear: '2030', ), ); final charge = await MindPaystack.instance.charge.chargeCardWithOptions(cardOptions); // Factory Methods - Flexible with validation final options = CreateChargeOptions.forCard( email: 'user@example.com', amount: '150000', card: Card( number: '4084084084084081', cvv: '408', expiryMonth: '12', expiryYear: '2030', ), ); final charge = await MindPaystack.instance.charge.createCharge(options);

See the Charges Guide for comprehensive documentation on all supported payment methods and approaches.

Verify Payments (Available)

final verification = await MindPaystack.instance.transaction.verify( VerifyTransactionOptions(reference: transaction.data.reference), ); if (verification.data.status == 'success') { // Payment successful - fulfill the order print('Payment confirmed: ₦${verification.data.amount / 100}'); }

Partial Debit (Coming Soon)

Partial debit functionality will be available in a future release:

// Coming Soon - Partial debit final result = await MindPaystack.instance.charge.createPartialDebit( PartialDebitOptions( amount: Money.fromCents(50000, Currency.ngn), email: 'user@example.com', authorizationCode: 'AUTH_XXXX', ), ); currency: 'NGN', );
Last updated on