---
page_title: Introduction
product: UPI TPAP SDK
platform: iOS
page_source: https://juspay.io/in/docs/upi-tpap-sdk/ios/callbacks/Introduction
llms_txt: https://juspay.io/in/docs/llms.txt
product_llms_txt: https://juspay.io/in/docs/upi-tpap-sdk/llms.txt
---


## Introduction



 After the completion of every payment/refund call, Juspay will provide direct notification to your server regarding the event. These are called Webhooks. You must configure a valid HTTP endpoint that is reachable from our servers to consume these notifications. Our servers will push data using HTTP POST call to your endpoint.Based on the API version configured in the dashboard, webhooks will be triggered for the events below:

* Payment Success
* Payment Failure
* Refund Success
* Refund failure
* Order Creation
* Transaction Creation
* Refund Moved to Manual Review.


###   Callback Structure



### Payload
- **Id**:
  - Description: Event ID
  - Value: evt_V2_03c6ec0681124450b55cf92fa35df241
- **Event_name**:
  - Value: TXN_CREATED
- **Date_created**:
  - Description: timestamp when webhook was created
  - Value: 2021-12-07T13:46:40Z
- **Content**:
  - Description: Details of the event
  - Value:
    - **Order**:
      - Value: Complete order data as obtained from /order/status API


> **Note**
> [Click here](../backend-apis/p2m-transaction-s) for order status api.




| Event Name | Description | Webhook API Version |
|---|---|---|
| ORDER_SUCCEEDED | Generated when payment is successful for an order | For all the versions |
| ORDER_REFUNDED | Generated when a refund is successful | For all the versions |
| ORDER_FAILED | Generated when an order payment fails | For all the versions >= '2016-07-19'  |
| ORDER_REFUND_FAILED | Generated when an order refund fails | For all the versions |
| TXN_CREATED | Generated when payment is initiated for an order | For all the versions >= "2016-10-27" |
| REFUND_MANUAL_REVIEW_NEEDED | Generated when the refund status is ambiguous and the refund has to be manually reconciled by the merchant with the payment processor. | For all the versions |
| AUTO_REFUND_SUCCEEDED | Generated when the transaction is auto refunded and refund is success | For all the versions >= "2019-11-11" |
| AUTO_REFUND_FAILED | Generated when the transaction is auto refunded and refund is failure | For all the versions >= "2019-11-11" |
| MANDATE_CREATED | Generated when the mandate is created | For all the versions |
| MANDATE_ACTIVATED | Generated when the mandate is successful registered | For all the versions |
| MANDATE_FAILED | Generated when the mandate registration fails | For all the versions |
| MANDATE_REVOKED | Generated when the mandate is revoked by the merchant | For all the versions |
| ORDER_AUTHORIZED | Generated for pre-auth enabled transactions when the payment is AUTHORIZED | For all the versions |
| TXN_CHARGED | Transaction level webhook, generated when a transaction become successful | For all the versions >="2020-10-31" |
| TXN_FAILED | Transaction level webhook, generated when a transaction fails | For all the versions >="2020-10-31" |





### Step 1.1. Mandate Transaction status callback


> **Note**
> There will be a separate Mandate block in status check response/callback for mandate Transactions. For Mandate Status check, we need to pass the order id, used during the creation of Mandate.






### Step 1.1. Mandates


During the entire journey, a mandate once created can take up any of the following states refer the table for the same: [Click Here](https://developer.juspay.in/reference/create-mandate-order)





---

## See Also

- [Complaint Resolved](https://juspay.io/in/docs/upi-tpap-sdk/ios/callbacks/complaint-resolved)
- [Transaction Created](https://juspay.io/in/docs/upi-tpap-sdk/ios/callbacks/transaction-created)
