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

# Payment Intents

> Create, confirm, retrieve, cancel, and verify payment intents.

Payment Intents let you accept card and Apple Pay payments into an account. Create an intent for the amount you want to collect, then confirm it with an intent action.

***

## The Payment Intent object

<ResponseField name="id" type="string">
  Unique payment intent identifier.
</ResponseField>

<ResponseField name="currency" type="string">
  ISO 4217 currency code. e.g. `USD`, `GBP`, `EUR`.
</ResponseField>

<ResponseField name="amount" type="number">
  Amount in the smallest currency unit. `5000` = \$50.00 USD.
</ResponseField>

<ResponseField name="reference" type="string">
  Your unique order or transaction reference.
</ResponseField>

<ResponseField name="description" type="string">
  Optional human-readable payment description.
</ResponseField>

<ResponseField name="status" type="string">
  Intent status. One of `requires_action`, `processing`, `completed`, `cancelled`, or `failed`.
</ResponseField>

<ResponseField name="status_reason" type="string">
  Reason for the current status. Present when a payment fails or is cancelled with a reason.
</ResponseField>

<ResponseField name="entity_id" type="string">
  Entity that owns the payment intent.
</ResponseField>

<ResponseField name="account_id" type="string">
  Account credited when the payment completes.
</ResponseField>

<ResponseField name="created" type="number">
  Unix timestamp in milliseconds when the intent was created.
</ResponseField>

```json theme={null}
{
  "id": "01HXYZ7K3M9PQRST4UVWXY2Z6",
  "currency": "USD",
  "amount": 5000,
  "reference": "order_abc123",
  "description": "Order #1042",
  "status": "requires_action",
  "entity_id": "ent_01HXYZ1234ABCD",
  "account_id": "acc_01HXYZ5678EFGH",
  "created": 1735725600000
}
```

### Payment intent statuses

| Status            | Description                               |
| ----------------- | ----------------------------------------- |
| `requires_action` | Intent created and ready to be confirmed. |
| `processing`      | A confirmation action is being processed. |
| `completed`       | Payment completed successfully.           |
| `cancelled`       | Intent was cancelled before completion.   |
| `failed`          | Payment failed. Check `status_reason`.    |

***

## The Intent Action object

<ResponseField name="id" type="string">
  Unique intent action identifier.
</ResponseField>

<ResponseField name="currency" type="string">
  Currency inherited from the payment intent.
</ResponseField>

<ResponseField name="amount" type="number">
  Payment amount inherited from the payment intent.
</ResponseField>

<ResponseField name="applicable_fee" type="number">
  Fee charged for the payment in the smallest currency unit.
</ResponseField>

<ResponseField name="charge_amount" type="number">
  Amount charged for the payment.
</ResponseField>

<ResponseField name="refunded_amount" type="number">
  Amount refunded so far in the smallest currency unit.
</ResponseField>

<ResponseField name="reference" type="string">
  Client reference inherited from the payment intent.
</ResponseField>

<ResponseField name="action" type="string">
  Action performed. Currently `confirm`.
</ResponseField>

<ResponseField name="category" type="string">
  Payment category. Currently `collections`.
</ResponseField>

<ResponseField name="payment_type" type="string">
  Payment method. One of `card-acq` or `applepay-acq`.
</ResponseField>

<ResponseField name="payment_type_data" type="object">
  Payment method data returned for the action. Sensitive card details are never returned.
</ResponseField>

<ResponseField name="status" type="string">
  Action status. One of `pending`, `pending_user_action`, `completed`, or `failed`.
</ResponseField>

<ResponseField name="status_reason" type="string">
  Reason for the current status. Present when a payment fails.
</ResponseField>

<ResponseField name="entity_id" type="string">
  Entity that owns the intent action.
</ResponseField>

<ResponseField name="account_id" type="string">
  Account credited when the payment completes.
</ResponseField>

<ResponseField name="payment_intent_id" type="string">
  Payment Intent linked to this action.
</ResponseField>

<ResponseField name="requires_action" type="boolean">
  `true` when the customer must complete a redirect or challenge.
</ResponseField>

<ResponseField name="next_action" type="object">
  Next step for the customer when `requires_action` is true.
</ResponseField>

<ResponseField name="return_url" type="string">
  URL the customer is redirected to after authentication.
</ResponseField>

<ResponseField name="created" type="number">
  Unix timestamp in milliseconds when the action was created.
</ResponseField>

```json theme={null}
{
  "id": "01HACT9012EFGH",
  "currency": "USD",
  "amount": 5000,
  "applicable_fee": 75,
  "charge_amount": 5000,
  "refunded_amount": 0,
  "reference": "order_abc123",
  "action": "confirm",
  "category": "collections",
  "payment_type": "card-acq",
  "payment_type_data": {
    "auth_model": "3ds_required",
    "payment_country": "US",
    "last_four_digits": "1111",
    "card_brand": "visa",
    "card_type": "credit"
  },
  "status": "pending_user_action",
  "entity_id": "ent_01HXYZ1234ABCD",
  "account_id": "acc_01HXYZ5678EFGH",
  "payment_intent_id": "01HXYZ7K3M9PQRST4UVWXY2Z6",
  "return_url": "https://yourplatform.com/checkout/complete",
  "requires_action": true,
  "next_action": {
    "type": "redirect_to_url",
    "url": "https://checkout.nuvion.co/card/01HACT9012EFGH"
  },
  "created": 1735725600000
}
```

### Intent action statuses

| Status                | Description                            |
| --------------------- | -------------------------------------- |
| `pending`             | Action created and being processed.    |
| `pending_user_action` | Customer must complete authentication. |
| `completed`           | Payment completed successfully.        |
| `failed`              | Payment failed. Check `status_reason`. |

***

### Retrieve intent\_action

To rerieve an intent\_action, send a `GET` request to this endpoint `/payment-intents/:id`

<CodeGroup>
  ```bash curl theme={null}
  curl -X GET https://api.nuvion.dev/payment-intents/01HXYZ7K3M9PQRST4UVWXY2Z6 \
    -H "Authorization: Bearer $NUVION_API_KEY"\
    -H "Content-Type: application/json"\
  ```

  ```bash 200 OK lines icon="circle-check" expandable theme={null}
  {
      "status": "success",
      "message": "Payment intent fetched successfully",
      "data": {
          "id": "01KVFTXH5G40ER6VJPVBTZXXXX",
          "currency": "USD",
          "amount": 5000,
          "reference": "REF-1781869121102-4040",
          "description": "Test Card",
          "status": "failed",
          "entity_id": "01K8QZHTWHNGS2Y21HXB36XXXX",
          "account_id": "01K8TN588BZKJHZ3VHR2BFXXXX",
          "created": 1781869233328,
          "intent_action": {
              "id": "01KVFTYXYVJ327XCAXJNYAXXXX",
              "currency": "USD",
              "amount": 5000,
              "applicable_fee": 180,
              "charge_amount": 5000,
              "refunded_amount": 0,
              "reference": "REF-1781869121102-4040",
              "action": "confirm",
              "category": "collections",
              "payment_type": "card-acq",
              "payment_type_data": {
                  "payment_country": "US",
                  "auth_model": "3ds_required",
                  "last_four_digits": "7223"
              },
              "status": "failed",
              "entity_id": "01K8QZHTWHNGS2Y21HXB36XXXX",
              "account_id": "01K8TN588BZKJHZ3VHR2BFXXXX",
              "payment_intent_id": "01KVFTXH5G40ER6VJPVBTZXXXX",
              "return_url": "https://www.google.com",
              "created": 1781869279195
          }
      }
  }
  ```
</CodeGroup>

***

## Card data encryption

For `card-acq`, send encrypted card details in `intent_action.payment_type_data.data`.

Encrypt this JSON object with RSA-OAEP SHA-256 using the `encryption_public_key` returned when you create or rotate an API key:

```json theme={null}
{
  "card_number": "4111111111111111",
  "expiration_month": "12",
  "expiration_year": "2030",
  "cvv": "123",
  "card_holder_name": "Ada Lovelace"
}
```

<ParamField body="card_number" type="string" required>
  Card PAN. 13–19 digits. Spaces are ignored after decryption.
</ParamField>

<ParamField body="expiration_month" type="string" required>
  Expiry month, `1`–`12` or zero-padded `01`–`12`.
</ParamField>

<ParamField body="expiration_year" type="string" required>
  Four-digit expiry year. The expiry date must not be in the past.
</ParamField>

<ParamField body="cvv" type="string" required>
  Card verification value. 3 or 4 digits.
</ParamField>

<ParamField body="card_holder_name" type="string">
  Optional name printed on the card.
</ParamField>

<Warning>
  Never send raw card details in an API request. Only send the encrypted Base64 value in `payment_type_data.data`.
</Warning>

***

## Create a payment intent

`POST /payment-intents`

Creates a payment intent for a card payment.

### Request parameters

<ParamField body="currency" type="string" required>
  ISO 4217 currency code. e.g. `USD`.
</ParamField>

<ParamField body="amount" type="number" required>
  Amount in the smallest currency unit. `5000` = \$50.00 USD.
</ParamField>

<ParamField body="account_id" type="string" required>
  Account to credit when the payment completes.
</ParamField>

<ParamField body="reference" type="string" required>
  Unique order or transaction reference. 1–100 characters. The same reference cannot be reused for the same account.
</ParamField>

<ParamField body="description" type="string">
  A human-readable payment description. Maximum 250 characters.
</ParamField>

<ParamField body="intent_action" type="object">
  Optional confirmation action. Include this to create and confirm the Payment Intent in one request.
</ParamField>

### Request

<CodeGroup>
  ```bash curl theme={null}
  curl -X POST https://api.nuvion.dev/payment-intents \
    -H "Authorization: Bearer $NUVION_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "currency": "USD",
      "amount": 5000,
      "account_id": "acc_01HXYZ5678EFGH",
      "reference": "order_abc123",
      "description": "Order #1042"
    }'
  ```
</CodeGroup>

### Response

Returns a Payment Intent with `status: "requires_action"`.

```json theme={null}
{
  "id": "01HXYZ7K3M9PQRST4UVWXY2Z6",
  "currency": "USD",
  "amount": 5000,
  "reference": "order_abc123",
  "description": "Order #1042",
  "status": "requires_action",
  "entity_id": "ent_01HXYZ1234ABCD",
  "account_id": "acc_01HXYZ5678EFGH",
  "created": 1735725600000
}
```

### Create and confirm in one request

Include `intent_action` when your server already has the encrypted card payload and wants to submit the payment immediately.

<CodeGroup>
  ```bash curl theme={null}
  curl -X POST https://api.nuvion.dev/payment-intents \
    -H "Authorization: Bearer $NUVION_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "currency": "USD",
      "amount": 5000,
      "account_id": "acc_01HXYZ5678EFGH",
      "reference": "order_abc124",
      "description": "Order #1043",
      "intent_action": {
        "action": "confirm",
        "category": "collections",
        "payment_type": "card-acq",
        "payment_type_data": {
          "data": "<base64_encrypted_card_data>",
          "billing_address": {
            "address_line_one": "350 Fifth Avenue",
            "city": "New York",
            "state": "NY",
            "country": "US"
          },
        },
        "customer": {
          "first_name": "Ada",
          "last_name": "Lovelace",
          "email": "ada@example.com"
        }
      }
    }'
  ```
</CodeGroup>

```json theme={null}
{
  "id": "01HXYZ7K3M9PQRST4UVWXY2Z7",
  "currency": "USD",
  "amount": 5000,
  "reference": "order_abc124",
  "description": "Order #1043",
  "status": "completed",
  "entity_id": "ent_01HXYZ1234ABCD",
  "account_id": "acc_01HXYZ5678EFGH",
  "created": 1735725600000,
  "intent_action": {
    "id": "01HACT9012EFGI",
    "currency": "USD",
    "amount": 5000,
    "applicable_fee": 75,
    "charge_amount": 5000,
    "refunded_amount": 0,
    "reference": "order_abc124",
    "action": "confirm",
    "category": "collections",
    "payment_type": "card-acq",
    "payment_type_data": {
      "payment_country": "US",
      "last_four_digits": "1111",
      "card_brand": "visa",
      "card_type": "credit"
    },
    "status": "completed",
    "entity_id": "ent_01HXYZ1234ABCD",
    "account_id": "acc_01HXYZ5678EFGH",
    "payment_intent_id": "01HXYZ7K3M9PQRST4UVWXY2Z7",
    "created": 1735725600000
  }
}
```

***

## Confirm a payment intent

`POST /intent-actions`

Confirms a payment intent with card or Apple Pay payment data.

### Request parameters

<ParamField body="payment_intent_id" type="string" required>
  Payment Intent to confirm. The intent must have `status: "requires_action"`.
</ParamField>

<ParamField body="intent_action" type="object" required>
  Confirmation action details.
</ParamField>

<ParamField body="intent_action.action" type="string" required>
  Always `confirm`.
</ParamField>

<ParamField body="intent_action.category" type="string" required>
  Always `collections`.
</ParamField>

<ParamField body="intent_action.payment_type" type="string" required>
  Payment method. One of `card-acq` or `applepay-acq`.
</ParamField>

<ParamField body="intent_action.payment_type_data" type="object" required>
  Payment method data.
</ParamField>

<ParamField body="intent_action.payment_type_data.data" type="string">
  Encrypted Base64 card data. Required for `card-acq`; omit for `applepay-acq`.
</ParamField>

<ParamField body="intent_action.payment_type_data.billing_address" type="object" required>
  Billing address. For `applepay-acq`, only `country` is required.

  <Expandable title="billing_address fields">
    <ParamField body="address_line_one" type="string" required>
      First line of the billing address. Required for `card-acq`.
    </ParamField>

    <ParamField body="city" type="string" required>
      Billing city. Required for `card-acq`.
    </ParamField>

    <ParamField body="state" type="string" required>
      Billing state, region, or province. Required for `card-acq`.
    </ParamField>

    <ParamField body="country" type="string" required>
      Two-letter country code. e.g. `US`.
    </ParamField>

    <ParamField body="address_line_two" type="string">
      Apartment, suite, or second address line.
    </ParamField>

    <ParamField body="zip" type="string">
      Postal or ZIP code.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="intent_action.payment_type_data.auth_model" type="string">
  Card authentication model. Defaults to `3ds_required`.
</ParamField>

<ParamField body="intent_action.payment_type_data.browser_info" type="object">
  Browser data for 3DS authentication.
</ParamField>

<ParamField body="intent_action.customer" type="object" required>
  Customer details for the payment.

  <Expandable title="customer fields">
    <ParamField body="first_name" type="string" required>
      Customer first name.
    </ParamField>

    <ParamField body="last_name" type="string" required>
      Customer last name.
    </ParamField>

    <ParamField body="email" type="string" required>
      Customer email address.
    </ParamField>

    <ParamField body="phone_number" type="string">
      Customer phone number in E.164 format, when available.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="intent_action.return_url" type="string">
  URL to redirect the customer to after authentication. Required unless `auth_model` is `3ds_disabled`.
</ParamField>

***

### Card request

<CodeGroup>
  ```bash curl theme={null}
  curl -X POST https://api.nuvion.dev/intent-actions \
    -H "Authorization: Bearer $NUVION_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "payment_intent_id": "01HXYZ7K3M9PQRST4UVWXY2Z6",
      "intent_action": {
        "action": "confirm",
        "category": "collections",
        "payment_type": "card-acq",
        "payment_type_data": {
          "data": "<base64_encrypted_card_data>",
          "billing_address": {
            "address_line_one": "350 Fifth Avenue",
            "city": "New York",
            "state": "NY",
            "country": "US"
          },
          "browser_info": {
            "accept_header": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
            "ip_address":"213.93.4.172",
            "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)",
            "java_enabled": false,
            "javascript_enabled": true,
            "language": "en-US",
            "color_depth": "24",
            "screen_height": "900",
            "screen_width": "1440",
            "timezone_offset": "-300"
          }
        },
        "customer": {
          "first_name": "Ada",
          "last_name": "Lovelace",
          "email": "ada@example.com"
        },
        "return_url": "https://yourplatform.com/checkout/complete"
      }
    }'
  ```
</CodeGroup>

### Apple Pay request

<CodeGroup>
  ```bash curl theme={null}
  curl -X POST https://api.nuvion.dev/intent-actions \
    -H "Authorization: Bearer $NUVION_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "payment_intent_id": "01HXYZ7K3M9PQRST4UVWXY2Z6",
      "intent_action": {
        "action": "confirm",
        "category": "collections",
        "payment_type": "applepay-acq",
        "payment_type_data": {
          "billing_address": {
            "country": "US"
          }
        },
        "customer": {
          "first_name": "Ada",
          "last_name": "Lovelace",
          "email": "ada@example.com"
        },
        "return_url": "https://yourplatform.com/checkout/complete"
      }
    }'
  ```
</CodeGroup>

### Response

Returns an Intent Action. If `requires_action` is true, redirect the customer to `next_action.url`.

```json theme={null}
{
  "id": "01HACT9012EFGH",
  "currency": "USD",
  "amount": 5000,
  "applicable_fee": 75,
  "charge_amount": 5000,
  "refunded_amount": 0,
  "reference": "order_abc123",
  "action": "confirm",
  "category": "collections",
  "payment_type": "card-acq",
  "payment_type_data": {
    "auth_model": "3ds_required",
    "payment_country": "US",
    "last_four_digits": "1111",
    "card_brand": "visa",
    "card_type": "credit"
  },
  "status": "pending_user_action",
  "entity_id": "ent_01HXYZ1234ABCD",
  "account_id": "acc_01HXYZ5678EFGH",
  "payment_intent_id": "01HXYZ7K3M9PQRST4UVWXY2Z6",
  "return_url": "https://yourplatform.com/checkout/complete",
  "requires_action": true,
  "next_action": {
    "type": "redirect_to_url",
    "url": "https://checkout.nuvion.co/card/01HACT9012EFGH"
  },
  "created": 1735725600000
}
```

***

## Payment intent webhooks

Payment Intent webhooks notify your server when a payment reaches a final state.

| Event                      | Trigger                                      |
| -------------------------- | -------------------------------------------- |
| `payment_intent.completed` | Payment completed successfully               |
| `payment_intent.failed`    | Payment failed                               |
| `payment_intent.cancelled` | Payment Intent cancelled before confirmation |

<CodeGroup>
  ```json Completed theme={null}
  {
    "event": "payment_intent.completed",
    "data": {
      "id": "01KVFTT3CBC3SGR8R8NM5WXXXX",
      "currency": "USD",
      "amount": 500000,
      "reference": "REF-1781868342495-2421",
      "description": "Test Card",
      "status": "completed",
      "entity_id": "01K8QZHTWHNGS2Y21HXB36XXXX",
      "account_id": "01K8TN588BZKJHZ3VHR2BFXXXX",
      "created": 1781869120907,
      "intent_action": {
        "id": "01KVFTW24AEHZ8ABX9G4ARXXXX",
        "currency": "USD",
        "amount": 500000,
        "applicable_fee": 22530,
        "charge_amount": 500000,
        "refunded_amount": 0,
        "reference": "REF-1781868342495-2421",
        "action": "confirm",
        "category": "collections",
        "payment_type": "card-acq",
        "payment_type_data": {
          "payment_country": "CA",
          "auth_model": "3ds_required",
          "last_four_digits": "1111",
          "card_brand": "visa",
          "card_type": "debit"
        },
        "status": "completed",
        "entity_id": "01K8QZHTWHNGS2Y21HXB36XXXX",
        "account_id": "01K8TN588BZKJHZ3VHR2BFXXXX",
        "payment_intent_id": "01KVFTT3CBC3SGR8R8NM5WXXXX",
        "return_url": "https://www.google.com",
        "created": 1781869185162
      }
    }
  }
  ```

  ```json Failed theme={null}
  {
    "event": "payment_intent.failed",
    "data": {
      "id": "01KVFTXH5G40ER6VJPVBTZXXXX",
      "currency": "USD",
      "amount": 5000,
      "reference": "REF-1781869121102-4040",
      "description": "Test Card",
      "status": "failed",
      "entity_id": "01K8QZHTWHNGS2Y21HXB36XXXX",
      "account_id": "01K8TN588BZKJHZ3VHR2BXXXX",
      "created": 1781869233328,
      "intent_action": {
        "id": "01KVFTYXYVJ327XCAXJNYAXXXX",
        "currency": "USD",
        "amount": 5000,
        "applicable_fee": 180,
        "charge_amount": 5000,
        "refunded_amount": 0,
        "reference": "REF-1781869121102-4040",
        "action": "confirm",
        "category": "collections",
        "payment_type": "card-acq",
        "payment_type_data": {
          "payment_country": "US",
          "auth_model": "3ds_required",
          "last_four_digits": "7223"
        },
        "status": "failed",
        "entity_id": "01K8QZHTWHNGS2Y21HXB36XXXX",
        "account_id": "01K8TN588BZKJHZ3VHR2BXXXX",
        "payment_intent_id": "01KVFTXH5G40ER6VJPVBTZXXXX",
        "return_url": "https://app.nuvion.co",
        "created": 1781869279195
      }
    }
  }
  ```
</CodeGroup>

Return a `2xx` response to acknowledge receipt. See [Webhooks](/webhooks/overview) for delivery and retry details.

***

## Retrieve a payment intent

`GET /payment-intents/{id}`

Returns a single Payment Intent.

<ParamField path="id" type="string" required>
  Payment Intent ID.
</ParamField>

<CodeGroup>
  ```bash curl theme={null}
  curl https://api.nuvion.dev/payment-intents/01HXYZ7K3M9PQRST4UVWXY2Z6 \
    -H "Authorization: Bearer $NUVION_API_KEY"
  ```
</CodeGroup>

***

## List payment intents

`GET /payment-intents`

Returns a paginated list of Payment Intents.

<ParamField query="status" type="string">
  Filter by status.
</ParamField>

<ParamField query="reference" type="string">
  Filter by client reference.
</ParamField>

<ParamField query="currency" type="string">
  Filter by currency.
</ParamField>

<ParamField query="account_id" type="string">
  Filter by account.
</ParamField>

<ParamField query="date_from" type="string">
  Filter by creation date start.
</ParamField>

<ParamField query="date_to" type="string">
  Filter by creation date end.
</ParamField>

<ParamField query="limit" type="number">
  Maximum number of records to return.
</ParamField>

<ParamField query="next_cursor" type="string">
  Cursor for the next page.
</ParamField>

<ParamField query="prev_cursor" type="string">
  Cursor for the previous page.
</ParamField>

<CodeGroup>
  ```bash curl theme={null}
  curl "https://api.nuvion.dev/payment-intents?status=completed&limit=20" \
    -H "Authorization: Bearer $NUVION_API_KEY"
  ```
</CodeGroup>

***

## Cancel a payment intent

`PATCH /payment-intents/{id}`

Cancels a Payment Intent that has not been confirmed. Only intents with `status: "requires_action"` can be cancelled.

<ParamField path="id" type="string" required>
  Payment Intent ID.
</ParamField>

<ParamField body="action" type="string" required>
  Must be `cancel`.
</ParamField>

<ParamField body="reason" type="string">
  Cancellation reason. 1–100 characters.
</ParamField>

<CodeGroup>
  ```bash curl theme={null}
  curl -X PATCH https://api.nuvion.dev/payment-intents/01HXYZ7K3M9PQRST4UVWXY2Z6 \
    -H "Authorization: Bearer $NUVION_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "action": "cancel",
      "reason": "Customer abandoned checkout"
    }'
  ```
</CodeGroup>

***

## Retrieve an intent action

`GET /intent-actions/{id}`

Returns a single Intent Action.

<ParamField path="id" type="string" required>
  Intent Action ID.
</ParamField>

<CodeGroup>
  ```bash curl theme={null}
  curl https://api.nuvion.dev/intent-actions/01HACT9012EFGH \
    -H "Authorization: Bearer $NUVION_API_KEY"
  ```
</CodeGroup>

***

## List intent actions

`GET /intent-actions`

Returns a paginated list of Intent Actions.

<ParamField query="currency" type="string">
  Filter by currency.
</ParamField>

<ParamField query="reference" type="string">
  Filter by client reference.
</ParamField>

<ParamField query="payment_type" type="string">
  Filter by payment type. e.g. `card-acq`.
</ParamField>

<ParamField query="status" type="string">
  Filter by status.
</ParamField>

<ParamField query="payment_intent_id" type="string">
  Filter by Payment Intent ID.
</ParamField>

<ParamField query="account_id" type="string">
  Filter by account.
</ParamField>

<ParamField query="date_from" type="string">
  Filter by creation date start.
</ParamField>

<ParamField query="date_to" type="string">
  Filter by creation date end.
</ParamField>

<ParamField query="limit" type="number">
  Maximum number of records to return.
</ParamField>

<ParamField query="next_cursor" type="string">
  Cursor for the next page.
</ParamField>

<ParamField query="prev_cursor" type="string">
  Cursor for the previous page.
</ParamField>

<CodeGroup>
  ```bash curl theme={null}
  curl "https://api.nuvion.dev/intent-actions?payment_intent_id=01HXYZ7K3M9PQRST4UVWXY2Z6" \
    -H "Authorization: Bearer $NUVION_API_KEY"
  ```
</CodeGroup>

***

## Verify an intent action

`POST /intent-verifications/{id}`

Rechecks an Intent Action that has not reached a final status. If the action is already `completed` or `failed`, the current action is returned.

<ParamField path="id" type="string" required>
  Intent Action ID.
</ParamField>

<CodeGroup>
  ```bash curl theme={null}
  curl -X POST https://api.nuvion.dev/intent-verifications/01HACT9012EFGH \
    -H "Authorization: Bearer $NUVION_API_KEY"
  ```
</CodeGroup>
