Incremental Auth
Incremental authorization increases the hold amount on an existing preauth. Common uses:
- Adding a custom surcharge after BIN lookup
- Increasing the hold for additional items or services
- Adjusting the authorization before capture
Basic Incremental Auth
iOS:
let response = try await KoardMerchantSDK.shared.auth(
transactionId: transactionId,
amount: 2000 // increase hold by $20
)
Android:
sdk.incrementalAuth(
transactionId = transactionId,
amount = 2000
)
Incremental Auth with Surcharge Breakdown
When adding a custom surcharge via incremental auth, include the surcharge details in the breakdown. The surcharge percentage is applied to the full transaction amount (subtotal + tax + tip):
iOS:
let baseAmount = 10000 + 875 + 2000 // subtotal + tax + tip = 12875
let surchargeRate = 0.035
let surchargeAmount = Int(Double(baseAmount) * surchargeRate) // 451
let surchargeBreakdown = PaymentBreakdown(
subtotal: 0,
taxAmount: 0,
tipType: .fixed,
surcharge: PaymentBreakdown.Surcharge(
amount: surchargeAmount,
percentage: surchargeRate
)
)
let response = try await KoardMerchantSDK.shared.auth(
transactionId: transactionId,
amount: surchargeAmount,
breakdown: surchargeBreakdown
)
Android:
val baseAmount = 10000 + 875 + 2000 // 12875
val surchargeRate = 0.035
val surchargeAmount = (baseAmount * surchargeRate).toInt() // 451
val surchargeBreakdown = PaymentBreakdown(
subtotal = 0,
taxAmount = 0,
tipType = "fixed",
surcharge = Surcharge(
amount = surchargeAmount,
percentage = surchargeRate
)
)
sdk.incrementalAuth(
transactionId = transactionId,
amount = surchargeAmount,
breakdown = surchargeBreakdown
)
Custom Surcharging via BIN Lookup
The most common use of incremental auth is the BIN-based surcharging workflow:
- Preauth with
surcharge: Surcharge(bypass: true)to get the card BIN - BIN lookup to determine if the card is credit (surchargeable) or debit (not surchargeable)
- Incremental auth to add the calculated surcharge amount
- Capture at the full amount with the complete breakdown
Reminder: Surcharges must not be applied to debit cards. Always verify the card type from the BIN before adding a surcharge via incremental auth.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
transactionId |
String |
Yes | Existing preauth to increase |
amount |
Int |
Yes | Additional amount to authorize (in minor units) |
breakdown |
PaymentBreakdown? |
No | Breakdown for the incremental amount |
Note: The iOS SDK method is
auth()while the Android SDK method isincrementalAuth().
See Also
- Preauth — Initial authorization hold
- Capture — Finalize after incrementing
- Surcharging — BIN-based custom surcharge workflow
