> ## Documentation Index
> Fetch the complete documentation index at: https://docs.payfura.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Ways to Integrate

> A global fiat <> crypto payment gateway

## Overview

Payfura is on a mission to make fiat to crypto on/off ramp simple, robust and secure for all web3 applications. In order achieve that, we focus heavily on,

* Enabling local payment methods to pay with fiat
* Get the best price for your crypto by integrating multiple exchanges and liquidity providers in the backend
* Have a smooth KYC experience for end users
* Perform industry standard fraud & AML checks on users and transactions
* A detailed dashboard for partners to deep dive into order analytics, change configurations & much more.

## How to integrate

Payfura provides 3 modes of integration:

### 1. Direct widget integration - Get live quickly in just few lines of code

Embed our widget within your application using an iframe. Customise a lot of things like color theme, default currencies, amount, etc.
For more details on how this integration works, you can follow this [link](https://docs.payfura.com/integration).
We are constantly adding more customization options to enhance the widget experience for you.

### 2. Complete End to End API Integration (Direct)

Build your own UI and use our APIs to create a user on our end. You can supply user details like address, phone number, name via our APIs and then create an order with this user's context to fix things like wallet address, crypto currency, fiat currency, fiat amount, payment method, etc.
In this flow, all the widget screens are skipped and user sees a final screen to complete the payment.

This is how this flow works,

* Show list of supported [fiat currencies](https://docs.payfura.com/payfura-apis/list-of-fiat-currencies) and [crypto currencies](https://docs.payfura.com/payfura-apis/list-of-crypto-currencies) to your users using the available APIs
* Get [pricing details](https://docs.payfura.com/payfura-apis/pricing) for fiat amount, cryptocurrency and fiat currency.
* [Create a User](https://docs.payfura.com/payfura-apis/create-user) on our end from your backend.
* [Create an order](https://docs.payfura.com/payfura-apis/create-order) from your backend with the user context.
* Now you can ask your end user to complete the payment on our page by sending the Order Id along with your API key in the query params like [https://sandbox.payfura.com/exchange?orderId=ORDER\_ID\&apiKey=API\_KEY](https://sandbox.payfura.com/exchange?orderId=ORDER_ID\&apiKey=API_KEY)
* Configure webhooks in [partner dashboard](https://partner-sandbox.payfura.com) to get order status updates and get the status of each order using the [GET order API](https://docs.payfura.com/payfura-apis/get-order).
* In sandbox environment, to simulate order completion, you can log on to your [partner dashboard](https://partner-sandbox.payfura.com) and mark orders in `PAYMENT_PENDING` state as `COMPLETED` or `FAILED`. Refer [GET order API](https://docs.payfura.com/payfura-apis/get-order) to know more about order statuses.

### 3. Lightweight API Integration

Build your own UI and use our APIs to show user crypto prices, create an order on our side to fix things like wallet address, crypto currency, fiat currency, fiat amount, payment method, etc.
In this flow user can directly submit their information like phone number, name, address in the widget itself.
This is how this flow works,

* Show list of supported [fiat currencies](https://docs.payfura.com/payfura-apis/list-of-fiat-currencies) and [crypto currencies](https://docs.payfura.com/payfura-apis/list-of-crypto-currencies) to your users using the available APIs
* Get [pricing details](https://docs.payfura.com/payfura-apis/pricing) for fiat amount, cryptocurrency and fiat currency.
* [Create an order](https://docs.payfura.com/payfura-apis/create-order) from your backend with the user context.
* Send the Order Id along with your API key in the query params like [https://sandbox.payfura.com/exchange?orderId=ORDER\_ID\&apiKey=API\_KEY](https://sandbox.payfura.com/exchange?orderId=ORDER_ID\&apiKey=API_KEY)
* Configure webhooks in [partner dashboard](https://partner-sandbox.payfura.com) to get order status updates and get the status of each order using the [GET order API](https://docs.payfura.com/payfura-apis/get-order).
* In sandbox environment, to simulate order completion, you can log on to your [partner dashboard](https://partner-sandbox.payfura.com) and mark orders in `PAYMENT_PENDING` state as `COMPLETED` or `FAILED`. Refer [GET order API](https://docs.payfura.com/payfura-apis/get-order) to know more about order statuses.
