# bluSwap - [Build with bluSwap](https://blu-swap.mintlify.dev/docs/introduction.md): bluSwap provides REST APIs for merchant payment collections and payouts. Learn how to integrate Collections and Payouts into your application. - [IP Whitelisting](https://blu-swap.mintlify.dev/docs/integration/ip-whitelisting.md): Restrict bluSwap API access to specific server IPs so leaked x-api-keys cannot be used from unauthorized machines. - [Authentication](https://blu-swap.mintlify.dev/docs/authentication.md): Authenticate every bluSwap API request using your merchant x-api-key header. Learn required headers, IP whitelisting, and next steps. - [Quickstart](https://blu-swap.mintlify.dev/docs/guides/quickstart.md): Set up your bluSwap account, generate API credentials, and make your first authenticated request in under 10 minutes. - [Collections Overview](https://blu-swap.mintlify.dev/docs/collections/overview.md): Use bluSwap Collections to accept customer payments via UPI, cards, and net banking. Follow the three-step flow: initiate, present, and confirm. - [Initiate Transaction Overview](https://blu-swap.mintlify.dev/docs/collections/initiate-transaction.md): Send a POST request to initiate_pay_in to start collecting a payment. Supports UPI Intent, QR, VPA, credit card, debit card, and net banking. - [UPI Intent](https://blu-swap.mintlify.dev/docs/collections/initiate-transaction/upi-intent.md): Initiate a UPI Intent collection. Opens the selected UPI app on the customer's Android or iOS device. - [UPI QR](https://blu-swap.mintlify.dev/docs/collections/initiate-transaction/upi-qr.md): Initiate a UPI QR collection. Returns qrData that you render as a QR code for any UPI app to scan. - [UPI VPA](https://blu-swap.mintlify.dev/docs/collections/initiate-transaction/upi-vpa.md): Initiate a UPI VPA collection. Sends a collect request to the customer's UPI ID for approval in their UPI app. - [Credit Card](https://blu-swap.mintlify.dev/docs/collections/initiate-transaction/credit-card.md): Initiate a credit card collection. Returns a hosted checkoutUrl — redirect the customer there to enter card details. - [Debit Card](https://blu-swap.mintlify.dev/docs/collections/initiate-transaction/debit-card.md): Initiate a debit card collection. Returns a hosted checkoutUrl — redirect the customer there to enter card details. - [Net Banking](https://blu-swap.mintlify.dev/docs/collections/initiate-transaction/net-banking.md): Initiate a net banking collection. Returns a hosted checkoutUrl redirect the customer there to select their bank. - [Check Transaction Status](https://blu-swap.mintlify.dev/docs/collections/check-transaction-status.md): Poll GET /api/v1/transactions/payin/status with your order_id to confirm whether a payin transaction succeeded, failed, or is still pending. - [Configure Webhooks for Payment Callbacks](https://blu-swap.mintlify.dev/docs/collections/webhook-configuration.md): Receive real-time payment status updates by configuring a callback URL. bluSwap POSTs a JSON payload to your URL when a transaction completes. - [Payouts Overview](https://blu-swap.mintlify.dev/docs/payouts/overview.md): Use bluSwap Payouts to transfer funds to vendors, employees, and partners via IMPS, NEFT, RTGS, or UPI. Create a contact, pick a VA, then initiate. - [Create a Payout Contact](https://blu-swap.mintlify.dev/docs/payouts/create-contact.md): POST /api/v1/contacts_for_cust — Register a beneficiary with bank account or UPI details. Returns a contact_id reusable for all future payouts. - [Get Contact Status ](https://blu-swap.mintlify.dev/docs/payouts/get-contact-status.md): POST /api/v1/get-contact-status — Check a beneficiary's verification status before initiating a payout. Only VERIFIED contacts can receive funds. - [Deactivate a Contact ](https://blu-swap.mintlify.dev/docs/payouts/deactivate-contact.md): GET /api/v1/contacts/{contact_id}/deactivate — Mark a beneficiary contact as inactive. Deactivated contacts cannot receive new payout requests. - [Get Virtual Accounts](https://blu-swap.mintlify.dev/docs/payouts/get-virtual-account.md): GET /api/v1/merchants/get/virtual_accounts — Retrieve your active virtual accounts and their va_id values. Required to initiate payouts. - [Fetch Virtual Account Balance](https://blu-swap.mintlify.dev/docs/payouts/fetch-balances.md): Query the current balance of a virtual account. Pass va_id to get VA balance, wallet balance, account number, and IFSC code in a single response. - [Initiate a Payout ](https://blu-swap.mintlify.dev/docs/payouts/initiate-payout.md): Send funds from a virtual account to a verified beneficiary via IMPS, NEFT, RTGS, or UPI. Provide contact_id, va_id, amount, and payment_mode. - [Get Payout Transaction Status](https://blu-swap.mintlify.dev/docs/payouts/check-transaction-status.md): Look up the current status of a payout by supplying either the bluSwap transaction_id or your own order_id. Returns INITIATED, SUCCESS, or FAILED. - [Retrieve Payout Statements](https://blu-swap.mintlify.dev/docs/payouts/statements.md): POST to retrieve a paginated list of payout transactions by date range. Filter by status or virtual account and use last_ref_id for cursor pagination. - [Retrieve Payout Purpose Codes](https://blu-swap.mintlify.dev/docs/payouts/transaction-purpose-codes.md): Get the full list of purpose codes for payout requests. Use the bs_code value as transaction_purpose_code to classify the nature of your fund transfer. - [Configure Webhooks for Callback Notifications](https://blu-swap.mintlify.dev/docs/payouts/webhook-configuration.md): Receive real-time payout status updates by configuring a callback URL. bluSwap POSTs a JSON payload to your URL when a payout transaction completes. - [Initiate a Refund ](https://blu-swap.mintlify.dev/docs/refunds/initiate-refund.md): Submit a full or partial refund against a completed payin transaction. Provide the original ref ID, order ID, amount, and refund type to start processing. - [Check Refund Status](https://blu-swap.mintlify.dev/docs/refunds/check-refund-status.md): Retrieve the current status of a refund using the ref_id from the Initiate Refund response. Poll this endpoint to track refund progress until it completes. - [List Refunds for Your Merchant Account](https://blu-swap.mintlify.dev/docs/refunds/list-refunds.md): Retrieve a paginated list of refunds for your merchant account. Filter by date range and status, and use page and page_size to navigate large result sets. This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.