# How payments work

#### 1. **requires\_payment\_method**

When the Payment is created, it has a status of `requires_payment_method` until a payment method is attached.

We recommend creating the Payment as soon as you know how much you want to charge, so that MoneyCollect can record all the attempted payments.

**2. requires\_confirmation**

After the customer provides their payment information, the Payment is ready to be confirmed.

In most integrations, this state is skipped because payment method information is submitted at the same time that the payment is confirmed.

**3. requires\_action**

If the payment requires additional actions, such as authenticating with [3D Secure](/docs/payment/3d-secure-authentication.md) , the Payment has a status of `requires_action`.

**4. processing**

Once required actions are handled, the Payment moves to `processing`. While for some payment methods (for example, cards) processing can be quick, other types of payment methods can take up to a few days to process.

**5. requires\_capture**

For Pre-authorisation payments, after the card is authorized, the Payment status transitions to `requires_capture`.  It requires further [capture the payment](/docs/payment/pre-authorize-a-payment.md#2-capture-a-pre-authorized-payment) or [cancel the Pre-authorization](/docs/payment/pre-authorize-a-payment.md#3-cancel-the-pre-authorization) operation.&#x20;

**6. succeeded**

A Payment with a status of succeeded means that the payment flow it is driving is complete.

The funds are now in your account and you can confidently fulfill the order. If you need to refund the customer, you can use the [Refunds API](https://apireference.moneycollect.com/docs/api-v1/4adbe00febf2a-list-all-refunds).

**7. failed**

Payment failed.

**8. canceled**

&#x20;You may cancel a Payment at any point before it is `processing` or `succeeded`.&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.moneycollect.com/docs/payment/about-the-apis/payments/how-payments-work.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
