## Things to Remember during the Integration and UAT Sign-Off
**[Mandatory]** Fetch the list of UPI Apps installed on the user's device and display it on the Checkout Page. Link: [Fetch UPI Apps](🔗)
**[Mandatory]** The **callbackUrl** parameter must be passed in the request body to receive Server-to-Server Callback when the payment status has reached a terminal state. In the S2S response, the checksum and amount must be validated.
**[Mandatory]** The **paymentInstrument.type** must be passed in the request body with the type of payment instrument being integrated.
**[Mandatory]** The **paymentInstrument.targetApp** must be passed in the request body with the package name of the UPI app selected by the user to make the payment. [If the "paymentInstrument.type" = "UPI_INTENT"]
**[Mandatory]** The **deviceContext.deviceOS** must be passed in the request body with the Device Operating System: ANDROID or IOS
**[Mandatory]** Display a proper message for **Success**, **Failure**, and **Pending** transactions to the user after the completion of the payment.
**[Mandatory]** To implement the Check Status API cron job at regular intervals if the server-to-server callback response is not received after the payment completion and if the transaction status is Pending, merchants should retry until the status changes to Success or Failure. In the Check Status response, the amount parameter must be validated against the amount passed in the Debit Request. Link: [Check Status](🔗)