Extend to More Flows
Payment Flows Overview
Flow
Use Case
Key Operations
Incremental Authorization
const { PaymentClient } = require('hyperswitch-prism');
const types = require('hyperswitch-prism').types;
const config = {
connectorConfig: {
stripe: { apiKey: { value: process.env.STRIPE_API_KEY } }
}
};
const paymentClient = new PaymentClient(config);
// 1. Initial authorization: $100 hold
const auth = await paymentClient.authorize({
merchantTransactionId: 'hotel-reservation-001',
amount: { minorAmount: 10000, currency: types.Currency.USD },
paymentMethod: { card: { /* card details */ } },
captureMethod: types.CaptureMethod.MANUAL,
address: { billingAddress: {} },
authType: types.AuthenticationType.NO_THREE_DS,
returnUrl: "https://example.com/return"
});
// 2. Customer adds room service: increase hold to $150
const incremental = await paymentClient.incrementalAuthorization({
connectorTransactionId: auth.connectorTransactionId,
additionalAmount: { minorAmount: 5000, currency: types.Currency.USD }
});
// 3. At checkout: capture final amount
await paymentClient.capture({
merchantCaptureId: 'capture-001',
connectorTransactionId: auth.connectorTransactionId,
amountToCapture: { minorAmount: 14750, currency: types.Currency.USD } // Actual amount
});Subscription / Recurring Payments
Partial Capture
Void (Cancel Authorization)
Reverse (Refund Without Reference)
Webhook Handling
Dispute Handling
Next Steps
Last updated
Was this helpful?

