# Kotani Pay Documentation > Welcome to the Kotani Pay Documentation. You'll find comprehensive guides and documentation to help you start working with Kotani Pay as quickly as possible, as well as support if you get stuck. Let's jump right in! ## Guides - [🤔 Overview](https://kotani-pay.readme.io/docs/what-is-kotani-pay.md) - [🏁Quickstart Guide](https://kotani-pay.readme.io/docs/getting-started.md): This page will help you get started with Kotani Pay. You'll be up and running in a jiffy! - [🏁 Key Concepts](https://kotani-pay.readme.io/docs/key-concepts.md) - [🟢 Status](https://kotani-pay.readme.io/docs/status.md) - [💸 On-Ramp](https://kotani-pay.readme.io/docs/kotani-pay-on-ramp.md) - [🤑 Off-Ramp API](https://kotani-pay.readme.io/docs/kotani-pay-off-ramp.md) - [📵USSD](https://kotani-pay.readme.io/docs/kotani-pay-ussd.md) - [Mobile Money - Pay-In/Pay-Out Flow](https://kotani-pay.readme.io/docs/mobile-money-pay-inpay-out-flow.md): If you already have card and bank transfer as payment options, then mobile money is another option to include when targeting the African Market. - [# Getting Started](https://kotani-pay.readme.io/docs/getting-started-1.md) - [# Setup](https://kotani-pay.readme.io/docs/setup.md) - [# Integrating Gen Pay into your App](https://kotani-pay.readme.io/docs/integrating-gen-pay-into-your-app.md) - [# Redirect](https://kotani-pay.readme.io/docs/redirect.md) - [# Direct Embedding](https://kotani-pay.readme.io/docs/direct-embedding.md) - [# Authenticating Users](https://kotani-pay.readme.io/docs/authenticating-users.md) - [# Features](https://kotani-pay.readme.io/docs/features.md): Here are some exciting features with Gen Pay Widget - [# Query Parameters](https://kotani-pay.readme.io/docs/query-parameters.md) - [# Our Coverage](https://kotani-pay.readme.io/docs/our-coverage.md) - [# Environments](https://kotani-pay.readme.io/docs/environments.md) - [# Market Status and Capabilities](https://kotani-pay.readme.io/docs/market-status-and-capabilities.md) - [# Countries and Currencies](https://kotani-pay.readme.io/docs/our-reach.md) - [# How to videos](https://kotani-pay.readme.io/docs/how-to-videos.md) - [# FAQ](https://kotani-pay.readme.io/docs/faq.md): Here are some frequently asked questions and answers to help you understand our services better. - [Alternative Payment Methods](https://kotani-pay.readme.io/docs/alternative-payment-methods.md) - [The Integrator Dashboard](https://kotani-pay.readme.io/docs/the-integrator-dashboard.md) ## API Reference - [Base URLs](https://kotani-pay.readme.io/reference/endpoints-1.md) - [Check for the application health](https://kotani-pay.readme.io/reference/healthcontroller_check.md): This endpoint is used to check for the health of the application - [Create an integrator](https://kotani-pay.readme.io/reference/integratorcontroller_createintegrator.md): This endpoint will help you create an integrator - [Get an Integrator Details.](https://kotani-pay.readme.io/reference/integratorcontroller_getintegrator.md): This endpoint is used to retrieve an integrator details - [Authentication Login](https://kotani-pay.readme.io/reference/authcontroller_authlogin.md): Login to your integrator account. This endpoint allows you to login to your account - [Generate API Key.](https://kotani-pay.readme.io/reference/authcontroller_generateapikeysecret.md): This endpoint is used to generate an the API Key which can be used to authorize transactions and more - [Create a Fiat Wallet](https://kotani-pay.readme.io/reference/fiatwalletcontroller_createfiatwallet.md): This endpoint will create a fiat wallet for the integrator. - [Get Integrator Fiat Wallets](https://kotani-pay.readme.io/reference/fiatwalletcontroller_getusersfiatwallet.md): This endpoint will return all the fiat wallets created by the integrator. - [Get Integrator Fiat Wallet by Wallet ID](https://kotani-pay.readme.io/reference/fiatwalletcontroller_getfiatwallet.md): This endpoint will return the fiat wallet created by the integrator. - [Update Integrator Fiat Wallet by Wallet ID](https://kotani-pay.readme.io/reference/fiatwalletcontroller_updatefiatwallet.md): This endpoint will update the fiat wallet created by the integrator. - [Get Integrator Fiat Wallet by Currency](https://kotani-pay.readme.io/reference/fiatwalletcontroller_getfiatwalletbycurrency.md): This endpoint will return the fiat wallet created by the integrator. - [Transfer Deposit Balance](https://kotani-pay.readme.io/reference/fiatwalletcontroller_transferdepositbalance.md): This endpoint will transfer the deposit balance of the fiat wallet to the main balance. - [Get Integrator Crypto Wallets](https://kotani-pay.readme.io/reference/cryptowalletcontroller_getuserscryptowallets.md): This endpoint will return all the crypto wallets created by the integrator. - [Get Integrator Crypto Wallet by Wallet ID](https://kotani-pay.readme.io/reference/cryptowalletcontroller_getfiatwallet.md): This endpoint will return the crypto wallet created by the integrator by passing the wallet id. - [Create a mobile money customer](https://kotani-pay.readme.io/reference/mobilemoneycustomercontroller_createcustomer.md): An integrator can use this endpoint to create the customers who will be either receiving or sending money using mobile money. - [Get all mobile money customers](https://kotani-pay.readme.io/reference/mobilemoneycustomercontroller_getusercustomers.md): An integrator can use this endpoint to get all the customers who will be either receiving or sending money using mobile money. - [Update a mobile money customer](https://kotani-pay.readme.io/reference/mobilemoneycustomercontroller_updatecustomer.md): An integrator can use this endpoint to update the customers who will be either receiving or sending money using mobile money. - [Get a mobile money customer by customer key](https://kotani-pay.readme.io/reference/mobilemoneycustomercontroller_getcustomerdetails.md): An integrator can use this endpoint to get the customer who will be either receiving or sending money using mobile money by passing customer key. - [Get a mobile money customer by Phone](https://kotani-pay.readme.io/reference/mobilemoneycustomercontroller_getcustomerdetailsbyphone.md): An integrator can use this endpoint to get the customer who will be either receiving or sending money using mobile money by passing phone number. - [Withdraw Fiat to Mobile Money](https://kotani-pay.readme.io/reference/withdrawcontroller_mobilemoney.md): This api will withdraw fiat from the integrator’s fiat wallet to the customer’s mobile money wallet. - [Get Withdrawal Mobile Money Status](https://kotani-pay.readme.io/reference/withdrawcontroller_getwithdrawalstatus.md): This endpoint will return the status of the withdrawal request. - [Deposit via mobile money](https://kotani-pay.readme.io/reference/depositmobilemoneycontroller_mobilemoney.md): An integrator’s customers can initiate a deposit from their respective mobile money wallets. An STK push will be sent to the customer and the respective amount will be deducted from their mobile money wallets and deposited into the integrator’s fiat wallet - [Get Deposit on Mobile Money status](https://kotani-pay.readme.io/reference/depositmobilemoneycontroller_getwithdrawalstatus.md): An integrator can use this endpoint to check the status of a deposit - [Deposit via bank checkout](https://kotani-pay.readme.io/reference/depositbankcheckoutcontroller_mobilemoney.md): Customer Completed transaction using Checkout Url - [Get Deposit status](https://kotani-pay.readme.io/reference/depositbankcheckoutcontroller_getwithdrawalstatus.md): An integrator can use this endpoint to check the status of a deposit - [Deposit via card](https://kotani-pay.readme.io/reference/depositcardcontroller_carddeposit.md): Customer Completed transaction using Checkout Url - [Get Deposit status](https://kotani-pay.readme.io/reference/depositcardcontroller_getwithdrawalstatus.md): An integrator can use this endpoint to check the status of a deposit - [Create crypto deposit request](https://kotani-pay.readme.io/reference/depositcryptointegratorcontroller_createcryptodeposit.md): ## 🔄 Complete Crypto Deposit Flow ### Prerequisites **IMPORTANT:** You must create a crypto wallet for each the specifi chain in test before using this endpoint. ### Customer Action Required After calling this endpoint, instruct your customer to send **exactly** the specified amount of the token on the given chain to the returned `integrator_wallet_address`. ### Real-time Detection - Transaction detected within 1-2 minutes - Automatic confirmation tracking - Status updates sent to your callback_url when confirmations are met ### Callback Example When the transaction is confirmed, you'll receive: ```json { "id": "68e61c25aa1eded97317154b", "status": "SUCCESSFUL", "amount": 100.5, "transaction_hash": "0xe55b003df...", "confirmations": 15, "reference_id": "your_ref_123" } ``` ### Supported Chains & Tokens - **ETHEREUM**: USDC, USDT - **POLYGON**: USDC, USDT - **BASE**: USDC, USDT - **ARBITRUM**: USDC - **OPTIMISM**: USDC - **AVALANCHE**: USDC - **CELO**: CUSD, USDC, - [Get crypto deposit status](https://kotani-pay.readme.io/reference/depositcryptointegratorcontroller_getcryptodepositstatus.md): ## 📊 Check Crypto Deposit Status Retrieve the current status and details of a crypto deposit using the reference_id. ### Status Values - **PENDING**: Waiting for blockchain transaction or insufficient confirmations - **SUCCESSFUL**: Transaction confirmed with required confirmations - **FAILED**: Transaction failed or rejected ### Response Details When `status = "SUCCESSFUL"`, the response includes: - `transaction_hash`: Blockchain transaction hash - `confirmations`: Current confirmation count - `sender_address`: Customer's wallet address - `integrator_wallet_address`: Your wallet address that received the crypto ### Usage Use this endpoint to: - Check status when callbacks fail - Implement fallback status checking - Debug transaction issues - Provide status updates to customers - [Get exchange rate](https://kotani-pay.readme.io/reference/ratecontroller_getrates.md): An integrator can use this endpoint to get the exchange rate between two currencies - [Get Onramp Exchange rate](https://kotani-pay.readme.io/reference/ratecontroller_getonramprates.md): An integrator can use this endpoint to get the exchange rate between two currencies - [Get Offramp Exchange rate](https://kotani-pay.readme.io/reference/ratecontroller_getofframprates.md): An integrator can use this endpoint to get the exchange rate between two currencies. You can provide either cryptoAmount or fiatAmount, but not both. The system will calculate the other value. - [Get Fiat to Fiat exchange rate](https://kotani-pay.readme.io/reference/ratecontroller_getfiattofiatrate.md): An integrator can use this endpoint to get the exchange rate between two fiat currencies - [Get all exchange rates](https://kotani-pay.readme.io/reference/ratecontroller_rates.md): An integrator can use this endpoint to get all the exchange rates available - [BANK WITHDRAWAL](https://kotani-pay.readme.io/reference/withdrawtransactioncontroller_mobilemoney.md): This Api Handles payout to bank, currently only supports SA Banks - [BANK WITHDRAWAL STATUS](https://kotani-pay.readme.io/reference/withdrawtransactioncontroller_getwithdrawtransaction.md): This Api Handles payout to bank, currently only supports SA Banks - [GET SUPPORTING BANKS](https://kotani-pay.readme.io/reference/withdrawtransactioncontroller_getsupportingbankswithcurrency.md): This Api Handles fetching of supporting banks - [Offramp Request](https://kotani-pay.readme.io/reference/offrampcontroller_createofframp.md): This endpoint will create a offramp request for a customer. If the fiat transfer fails after successful crypto receipt, an automatic refund will be initiated after 5 minutes. Use the refund-status endpoint to check refund status. - [Get Offramp MobileMoney Status](https://kotani-pay.readme.io/reference/offrampcontroller_getofframpstatus.md): This endpoint will return the status of the withdrawal request. - [Cancel Offramp Transaction](https://kotani-pay.readme.io/reference/offrampcontroller_getcanceltransaction.md): This endpoint will cancel the offramp transaction. - [Get Refund Status](https://kotani-pay.readme.io/reference/offrampcontroller_getrefundstatus.md): Get the status of an onchain refund. Refunds are automatically initiated 5 minutes after a failed transaction if the crypto was successfully received but fiat transfer failed. - [Retry Failed Refund](https://kotani-pay.readme.io/reference/offrampcontroller_retryrefund.md): Retry a failed crypto refund for an offramp transaction. Can be retried up to 3 times. - [Get Integrator Offramp Transactions](https://kotani-pay.readme.io/reference/offrampcontroller_getintegratorofframps.md): This endpoint will return all offramp transactions for the integrator. - [Send Token to Crypto Wallet](https://kotani-pay.readme.io/reference/onrampcontroller_createonrampcrypto.md): This endpoint will send token to any crypto wallet - [Get Status Response](https://kotani-pay.readme.io/reference/onrampcontroller_getonrampcrypto.md): This endpoint will be used to get the status of the transaction - [Create Onramp](https://kotani-pay.readme.io/reference/onrampcontroller_onramp.md): You can create an onramp request with either mobile money or bank checkout - [Get Status Response](https://kotani-pay.readme.io/reference/onrampcontroller_getonramp.md): This endpoint will be used to get the status of the transaction - [Get Integrator Onramp Transactions](https://kotani-pay.readme.io/reference/onrampcontroller_getintegratoronramps.md): This endpoint will return all onramp transactions for the integrator.