# Recurring Payments with ArgoFire

<figure><img src="/files/OPkpKWNGisTRODxR9jdP" alt=""><figcaption></figcaption></figure>

**ArgoFire** supports fully automated recurring payments using a customer’s securely tokenized credit card or ACH account. By creating a recurring billing contract tied to a tokenized payment method, you can set up scheduled payments or subscription charges with minimal development effort and no need to store sensitive payment data.

***

#### Key Capabilities

* **Flexible Scheduling**: Bill customers weekly, monthly, annually, or on custom intervals.
* **Auto-Payment Processing**: ArgoFire handles billing automatically based on your schedule.
* **Credit Card & ACH Support**: Recurring contracts can use either `CcInfoKey` or `CheckInfoKey` tokens.
* **Contract Management**: Update or cancel active schedules via the API.

***

#### Recurring Payment Flow

#### 1. Create Customer

Call the appropriate Web service to create a customer record in ArgoFire. The response includes a **CustomerKey** that identifies this customer for future operations.

#### 2. Add Recurring Credit Card

Use **GetToken** to tokenize a customer’s credit card. The response returns a **CcInfoKey** along with the **CustomerKey** and optionally a **ContractKey**. Store these keys in your system to reference the customer and their payment method in subsequent transactions.

#### 3. Add Recurring Check

Use **GetCheckToken** to tokenize a customer’s ACH account. The response returns a **CheckInfoKey** along with the **CustomerKey** and optionally a **ContractKey**. Store these keys for future recurring billing.

#### 4. Manage Contract

Use **ManageContract** to create, update, or cancel recurring billing schedules. The **ContractKey** returned from prior steps identifies the specific recurring schedule tied to the tokenized payment method. This allows automatic billing on configured intervals (e.g., monthly, annually) without re-entering payment information.

***

#### API Operations for Recurring Payments

| Operation                                  | Description                                                                  |
| ------------------------------------------ | ---------------------------------------------------------------------------- |
| `ManageContract`                           | Add, update, or cancel recurring billing contracts.                          |
| `ManageCustomer`                           | Create or update the customer record associated with the recurring contract. |
| `ManageCreditCardInfo` / `ManageCheckInfo` | Update the token tied to a customer if payment details change.               |

For more details of **ManageContract, ManageCustomer, and ManageCredit/CheckInfo** APIs please see:

{% content-ref url="/pages/BALA2QJwJGuePOQbSsTj" %}
[Recurring Billing & Customer Info](/argofire/recurring-billing-and-customer-info.md)
{% endcontent-ref %}

***

#### Important Notes

* **Billing Failures**: Failed transactions (e.g., declined cards) are reported in the response. Merchants are responsible for handling follow-ups or retries.
* **Customer Notifications**: ArgoFire does not automatically send renewal reminders or receipts. You can use the transaction response data to trigger custom messaging.
* **Token Security**: Tokens used in recurring contracts are merchant-scoped and cannot be reused across unrelated merchant accounts.


---

# 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://developers.frontstream.com/argofire/recurring-payments-with-argofire.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.
