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

# Transactions & Bill Pay

> Stream credit card transactions for spend management and initiate bill payments to your users' creditors.

This guide covers the action layer of a PFM integration: streaming transaction data for spend management, and initiating payments from your platform's corporate funding account to pay down user liabilities.

All examples use Sarah Chen's accounts from the [Getting Started](/guides/use-cases/pfm/getting-started) guide.

## Transaction Stream & Spend Management

### Listing Transactions

Transactions provide transaction-level detail for connected Visa and Mastercard credit card accounts. Once subscribed, you can query historical transactions and receive new ones in real time via webhooks.

Retrieve recent transactions for Sarah's Chase Sapphire Reserve card:

<Tabs>
  <Tab title="Request">
    ```bash theme={null}
    curl "https://production.methodfi.com/accounts/acc_eKKmrXDpJBKgw/transactions?from_date=2025-09-01&to_date=2025-09-15" \
      -X GET \
      -H "Method-Version: 2025-12-01" \
      -H "Authorization: Bearer sk_WyZEWVfTcH7GqmPzUPk65Vjc"
    ```
  </Tab>

  <Tab title="Response">
    ```json theme={null}
    {
      "data": [
        {
          "id": "txn_t73AdHRFYwhT9",
          "account_id": "acc_eKKmrXDpJBKgw",
          "status": "posted",
          "descriptor": "SQ *BLUE BOTTLE COFF",
          "merchant": {
            "name": "Blue Bottle Coffee",
            "logo": null
          },
          "merchant_category_code": "5814",
          "amount": 675,
          "auth_amount": 675,
          "currency_code": "USD",
          "transaction_amount": 675,
          "transaction_auth_amount": 675,
          "transaction_currency_code": "USD",
          "transacted_at": "2025-09-14T08:22:00.000Z",
          "posted_at": "2025-09-15T05:00:00.000Z",
          "voided_at": null,
          "original_txn_id": null,
          "created_at": "2025-09-14T08:22:00.000Z",
          "updated_at": "2025-09-15T05:00:00.000Z"
        },
        {
          "id": "txn_kP4mRvTnBcWx2",
          "account_id": "acc_eKKmrXDpJBKgw",
          "status": "posted",
          "descriptor": "WHOLE FOODS MKT #1042",
          "merchant": {
            "name": "Whole Foods Market",
            "logo": null
          },
          "merchant_category_code": "5411",
          "amount": 8743,
          "auth_amount": 8743,
          "currency_code": "USD",
          "transaction_amount": 8743,
          "transaction_auth_amount": 8743,
          "transaction_currency_code": "USD",
          "transacted_at": "2025-09-12T18:45:00.000Z",
          "posted_at": "2025-09-13T05:00:00.000Z",
          "voided_at": null,
          "original_txn_id": null,
          "created_at": "2025-09-12T18:45:00.000Z",
          "updated_at": "2025-09-13T05:00:00.000Z"
        },
        {
          "id": "txn_qN7jWvHmDfRa5",
          "account_id": "acc_eKKmrXDpJBKgw",
          "status": "posted",
          "descriptor": "SHELL OIL 57442",
          "merchant": {
            "name": "Shell",
            "logo": null
          },
          "merchant_category_code": "5541",
          "amount": 5218,
          "auth_amount": 5218,
          "currency_code": "USD",
          "transaction_amount": 5218,
          "transaction_auth_amount": 5218,
          "transaction_currency_code": "USD",
          "transacted_at": "2025-09-10T14:30:00.000Z",
          "posted_at": "2025-09-11T05:00:00.000Z",
          "voided_at": null,
          "original_txn_id": null,
          "created_at": "2025-09-10T14:30:00.000Z",
          "updated_at": "2025-09-11T05:00:00.000Z"
        }
      ]
    }
    ```
  </Tab>
</Tabs>

Sarah's recent transactions show \$6.75 at Blue Bottle Coffee, \$87.43 at Whole Foods, and \$52.18 at Shell. All amounts are in cents. The `merchant_category_code` enables spend categorization (5814 = restaurants, 5411 = grocery, 5541 = gas stations).

### Subscribing to Transactions

Transaction data requires an active subscription. Enroll Sarah's Chase card to receive transaction events in real time:

<Tabs>
  <Tab title="Request">
    ```bash theme={null}
    curl https://production.methodfi.com/accounts/acc_eKKmrXDpJBKgw/subscriptions \
      -X POST \
      -H "Method-Version: 2025-12-01" \
      -H "Authorization: Bearer sk_WyZEWVfTcH7GqmPzUPk65Vjc" \
      -H "Content-Type: application/json" \
      -d '{
        "enroll": "transaction"
      }'
    ```
  </Tab>

  <Tab title="Response">
    ```json theme={null}
    {
      "id": "sub_P8c4bjj6xajxF",
      "name": "transaction",
      "status": "active",
      "payload": null,
      "latest_request_id": null,
      "created_at": "2025-09-15T15:40:00.000Z",
      "updated_at": "2025-09-15T15:40:00.000Z"
    }
    ```
  </Tab>
</Tabs>

With the subscription active, Method fires webhook events for both authorization events (when Sarah swipes her card) and settlement events (when the transaction clears). This enables real-time spend alerts, budget tracking, and transaction feeds.

<Warning>
  Transaction streaming is available for Visa and Mastercard credit cards. Not all card accounts will support transactions — check the account's `products` array to confirm `transaction` is available.
</Warning>

***

## Bill Pay & Debt Repayment

### Getting a Fresh Balance Before Payment

Before initiating a payment, pull the latest balance to ensure accuracy. If you've already subscribed to updates (covered in the [Dashboard & Insights](/guides/use-cases/pfm/monitoring-insights) guide), you'll have recent data. Otherwise, request an on-demand update:

```bash theme={null}
curl https://production.methodfi.com/accounts/acc_eKKmrXDpJBKgw/updates \
  -X POST \
  -H "Method-Version: 2025-12-01" \
  -H "Authorization: Bearer sk_WyZEWVfTcH7GqmPzUPk65Vjc"
```

The completed update confirms Sarah's Chase card balance is \$800.00 (`80000` cents) with a minimum payment of \$25.00 due on October 1st. She decides to pay \$500.00 toward the balance.

### Creating a Payment

[Payments](/guides/payments/overview) move money from your platform's verified funding account (ACH) to a liability account. Your corporate funding account `acc_hmap9mbgfLcf9` serves as the payment source for all user payments.

<Tabs>
  <Tab title="Request">
    ```bash theme={null}
    curl https://production.methodfi.com/payments \
      -X POST \
      -H "Method-Version: 2025-12-01" \
      -H "Authorization: Bearer sk_WyZEWVfTcH7GqmPzUPk65Vjc" \
      -H "Content-Type: application/json" \
      -d '{
        "amount": 50000,
        "source": "acc_hmap9mbgfLcf9",
        "destination": "acc_eKKmrXDpJBKgw",
        "description": "Chase Pmt"
      }'
    ```
  </Tab>

  <Tab title="Response (pending)">
    ```json theme={null}
    {
      "id": "pmt_VeCfmkwGKb",
      "source": "acc_hmap9mbgfLcf9",
      "destination": "acc_eKKmrXDpJBKgw",
      "amount": 50000,
      "description": "Chase Pmt",
      "status": "pending",
      "estimated_completion_date": "2025-09-18",
      "source_trace_id": null,
      "source_settlement_date": "2025-09-16",
      "source_status": "pending",
      "destination_trace_id": null,
      "destination_settlement_date": "2025-09-18",
      "destination_payment_method": "paper",
      "destination_status": "pending",
      "reversal_id": null,
      "error": null,
      "metadata": null,
      "created_at": "2025-09-15T16:00:00.000Z",
      "updated_at": "2025-09-15T16:00:00.000Z"
    }
    ```
  </Tab>
</Tabs>

The payment is created with `status: "pending"` and an estimated completion date of September 18th. The `description` field (max 10 characters) appears on the user's bank statement.

<Note>
  All amounts are in **cents**. `50000` = \$500.00. The `description` field has a maximum length of 10 characters.
</Note>

### Payment Lifecycle

Payments move through a lifecycle from creation to settlement. Track progress via webhook events:

Once the payment settles, the status transitions to `posted`:

```json theme={null}
{
  "id": "pmt_VeCfmkwGKb",
  "source": "acc_hmap9mbgfLcf9",
  "destination": "acc_eKKmrXDpJBKgw",
  "amount": 50000,
  "description": "Chase Pmt",
  "status": "posted",
  "estimated_completion_date": "2025-09-18",
  "source_trace_id": "203942084920",
  "source_settlement_date": "2025-09-16",
  "source_status": "posted",
  "destination_trace_id": "304820184832",
  "destination_settlement_date": "2025-09-18",
  "destination_payment_method": "paper",
  "destination_status": "posted",
  "reversal_id": null,
  "error": null,
  "metadata": null,
  "created_at": "2025-09-15T16:00:00.000Z",
  "updated_at": "2025-09-18T12:00:00.000Z"
}
```

## Putting It All Together

With transactions and payments, Sarah's PFM experience is complete:

| Capability         | Product                                                    | Example                                           |
| ------------------ | ---------------------------------------------------------- | ------------------------------------------------- |
| View all debts     | [Connect](/guides/connect/overview)                        | 6 liabilities discovered automatically            |
| Real-time balances | [Updates](/guides/updates/overview)                        | Chase card: \$800.00 balance, \$25.00 minimum due |
| Card visuals       | [Card Brand](/guides/additional-products/card-brand)       | Chase Sapphire Reserve card art                   |
| Credit score       | [Credit Scores](/guides/additional-products/credit-scores) | VantageScore 4.0: 734                             |
| Financial health   | [Attributes](/guides/additional-products/attributes)       | 22% utilization, 100% payment history             |
| Spending activity  | Transactions                                               | Coffee, groceries, gas — categorized in real time |
| Bill pay           | [Payments](/guides/payments/overview)                      | \$500 payment to Chase, settled in 3 days         |

<CardGroup cols={2}>
  <Card title="Payments Lifecycle" icon="arrows-spin" href="/guides/payments/lifecycle">
    Deep dive into payment states, timing, and error handling.
  </Card>

  <Card title="Payment Errors" icon="triangle-exclamation" href="/guides/payments/errors">
    Understanding and handling payment failures and reversals.
  </Card>
</CardGroup>
