Dynamically adjust the payment amount
Last updated: October 6, 2025
You can dynamically adjust the payment amount based on changes during checkout. For example, if the customer applies a discount code or changes their shipping method.
Information
You can only modify the payment sheet amount for Apple Pay and Google Pay payments.
During checkout, Apple Pay and Google Pay display their payment sheet with the payment amount to the customer.
To modify the payment amount shown, call the update() on your CheckoutComponent instance instance and specify a new amount:
1paymentMethodComponent.update(UpdateDetails(amount = amount))
If you update the payment sheet amount, you must also add a handleSubmit callback to the initialization code for your Flow instance to handle the payment attempt.
The handleSubmit event enables you to submit a modified payment session.
Add the event to the initialization code for your Flow for mobile configuration.
Implement the callback logic to provide the payment submission data to your server-side integration:
1suspend fun handleSubmit(sessionData: SessionData): ApiCallResult {2handlePaymentSubmission()3}4val callback = ComponentCallback(handleSubmit = ::handleSubmit)
Call the Submit a payment session endpoint and provide the payment session ID as the {id} path parameter.
In your request, provide the payment session data from the handleSubmit event in session_data. You can also modify any of the following fields:
3dsamountitemsreference
post
https://api.checkout.com/payment-sessions/{id}/submit
1{2"session_data": "{SESSION_DATA_FROM_FLOW}",3"3ds": {4"enabled": true5}6}
1{2"id": "pay_f2ws3hn4ijquzbytp3v5lsfxge",3"status": "Action Required",4"type": "card",5"action": {6"type": "3ds",7"url": "http://3ds2.checkout.com/interceptor/sid_y3oqhf46pyzuxjbcn2giaqnb44"8}9}
You must provide the unmodified response to the handleSubmit event in the client-side integration. Flow handles any additional required actions.