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

# Payments

> See, request and record the money each contact pays you — store orders, payment links, WhatsApp Pay and cash.

## What is this?

**Payments** keeps one record for every payment a customer makes to you. Money from store orders, payment links, WhatsApp Pay, cash on delivery and amounts you record by hand all land in the same place, on the contact who paid.

You see them in the **Payments** tab of the contact's [profile](https://docs.skyfree.io/workspace/contacts/contact-profile.md) and in the contact info panel of the [Inbox](https://docs.skyfree.io/workspace/inbox/conversation-view.md).

> [!NOTE]
>
> This is money your customers pay **you**. Your own plan, wallet and subscription charges are separate and live under billing.

## What can I do here?

* See every payment for a contact, with its status and how much was received
* **Request payment** — create a payment link or send an in-chat WhatsApp Pay request
* **Add payment** — record money you received outside the platform, such as cash, UPI or a bank transfer
* Copy a payment link, send it to the customer again, or cancel a request
* Search and filter payments by status and payment method
* Start an automation when a payment is paid, fails or expires — see [Payment status changed](https://docs.skyfree.io/workspace/automation/triggers/payment-status-changed.md)

## Where payments come from

| Source | How it is created |
| - | - |
| **Store orders** | A customer pays at checkout with an online payment account, WhatsApp Pay or cash on delivery |
| **Payment requests** | You use **Request payment** on a contact |
| **Recorded by hand** | You use **Add payment** |
| **Requests sent by an automation** | A [Send Payment](https://docs.skyfree.io/workspace/automation/steps/send-messages.md#send-payment) step |
| **Other payments received on the account** | Money your payment account received that nothing here asked for — see [Payments waiting for a contact](#payments-waiting-for-a-contact) |

Payment accounts (Stripe, Razorpay and WhatsApp Pay) are saved **once** in [Integrations](https://docs.skyfree.io/workspace/integrations/overview.md). The storefront, **Request payment** and the Send Payment step all pick from the same saved accounts, so you never type keys in more than one place.

## Statuses

| Status | Meaning |
| - | - |
| **Pending** | Waiting for the customer to pay |
| **Partially paid** | Some money was received, but less than the total |
| **Paid** | The full amount was received |
| **Failed** | The payment did not go through |
| **Refunded** | The money was returned |
| **Expired** | The request ran out of time before it was paid |
| **Cancelled** | The request was cancelled |

A payment that failed, expired or was cancelled can still turn **Paid** if the payment provider later confirms the money arrived. These are flagged **Needs attention** so you can check them.

## How to use it

### Request a payment

**1. Open the Payments tab**

Open a contact (or the contact info panel in the Inbox) and go to **Payments**.

**2. Click Request payment**

Choose the **Payment account**, enter the **Amount** and **Currency**, and optionally **What it is for** — this is shown to the customer on the payment page.

**3. Choose when it expires**

Pick **Expires in**. After this time an unpaid request is closed automatically.

**4. Send it**

Click **Request payment**. What happens next depends on the account:

* **Stripe or Razorpay** — a payment link is created. Leave **Send the link to the customer in their conversation** ticked to send it with a **Pay now** button, or copy the link and share it yourself.
* **WhatsApp Pay** — the request is sent inside the chat and the customer pays without leaving WhatsApp. It needs an open 24-hour chat, and only INR works.

When the customer pays, the record updates by itself and the contact's timeline shows one **Payment received** entry.

> [!NOTE]
>
> If you see "Payment confirmations are off for this account", a paid link will not update the record. Turn confirmations on in the account's page under [Integrations](https://docs.skyfree.io/workspace/integrations/overview.md).

### Record a payment you received yourself

**1. Click Add payment**

In the contact's **Payments** tab.

**2. Fill in the details**

Enter the **Amount** and **Currency**, choose the **Status**, and optionally a **Payment method**, **Transaction ID** and a **Note** (for example a receipt number or who collected it).

**3. Partial payments**

For **Partially paid**, enter **Amount received** — it must be more than 0 and less than the total.

Online payments taken through a gateway can't be edited by hand; only their note can be changed.

### Work with an existing payment

Open the **More actions** menu on a payment to **Copy link**, **Send link to customer**, **Cancel request** or **Edit** (hand-recorded payments).

## Payments waiting for a contact

Sometimes a payment account receives money that nothing in the platform asked for — for example a payment link you made in the provider's own dashboard. These payments have no contact yet.

Open the account in [Integrations](https://docs.skyfree.io/workspace/integrations/overview.md) to see **Payments waiting for a contact**. For each one, choose **Attach to contact** (search by name, phone or email) or **Set aside** to ignore it.

## Troubleshooting / Technical Notes

* **A payment stayed Pending after the customer paid.** Check the account's **Payment confirmations** are on and that its webhook is registered. See [Stripe](https://docs.skyfree.io/workspace/integrations/stripe.md) or [Razorpay](https://docs.skyfree.io/workspace/integrations/razorpay.md).
* **"No payment account is connected for this channel yet."** Connect Stripe, Razorpay or WhatsApp Pay in [Integrations](https://docs.skyfree.io/workspace/integrations/overview.md).
* **The link was not sent.** The reason is shown under the request. A common cause is the 24-hour chat window being closed — copy the link and share it another way.
* **A WhatsApp Pay request fails.** It only works for INR and for an open 24-hour chat. See [WhatsApp Pay](https://docs.skyfree.io/workspace/integrations/whatsapp-pay.md).
* **A refund isn't reflected on the order.** A refund updates the payment record only; the order itself is not changed automatically.
* **Bookings and events** don't take payments yet.

## Related docs

* [Contact Profile](https://docs.skyfree.io/workspace/contacts/contact-profile.md)
* [WhatsApp Pay](https://docs.skyfree.io/workspace/integrations/whatsapp-pay.md)
* [Stripe](https://docs.skyfree.io/workspace/integrations/stripe.md)
* [Razorpay](https://docs.skyfree.io/workspace/integrations/razorpay.md)
* [Payment status changed](https://docs.skyfree.io/workspace/automation/triggers/payment-status-changed.md)
* [Catalog settings](https://docs.skyfree.io/workspace/catalog/settings.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.