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

# List Processor Keys

> Every key registered for your account, and which payment types have no default

# List Processor Keys

Every processor key registered for your account, ordered defaults first and then oldest first. The response never contains a key — only `key_last4`, so you can tell them apart.

This always returns `200`. An account with no keys yet gets an empty `connections` list and both payment types in `missing_default_rails`.

## Check your default coverage

`missing_default_rails` lists the payment types — `ach`, `card` — with no default key. Borrowers enrolled without a `merchant_ref` are skipped on those types until you [add](/api-reference/payments/create-payment-connection) or [promote](/api-reference/payments/update-payment-connection#make-a-key-the-default) a default. A `both` key covers both types, so the list is empty when you have one.

## Response Fields

| Field                   | Description                                                                                                                                                                                   |
| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `connections`           | Your keys. Each carries its `id`, `label`, `merchant_ref`, `rail_scope`, `is_default`, `key_last4`, `last_poll_at`, `access_scope` (reserved — always `lender_admins` today) and `created_at` |
| `missing_default_rails` | Payment types with no default key                                                                                                                                                             |
| `ingested`              | Payments Rightfoot has read from your processor through your keys                                                                                                                             |
| `matched`               | Of those, the number matched to a borrower you enrolled                                                                                                                                       |
| `last_poll_at`          | When Rightfoot last read results from any of your keys. `null` until the first read                                                                                                           |


## OpenAPI

````yaml GET /v1/payment_connections
openapi: 3.1.0
info:
  title: Rightfoot API
  description: >-
    Submit a batch of authorizers for balance checks, retrieve processed
    balances, and check the status of a batch.
  version: 0.3.0-alpha
servers:
  - url: https://api.rightfoot.com
security:
  - BearerAuth: []
tags:
  - name: General Availability
    description: |
      **General Availability** indicates that the endpoint is production-ready.
  - name: Early Access
    description: >
      **Early Access** indicates that the endpoint is available for early access
      customers and is being actively refined.
  - name: In Development
    description: >
      **In Development** indicates that the endpoint is currently being built
      and will be available in an upcoming release.
paths:
  /v1/payment_connections:
    get:
      tags:
        - In Development
      summary: List your processor keys
      description: |
        Every processor key registered for your account, plus the payment types
        that currently have no default key.

        Always `200`. An account with no keys yet gets an empty `connections`
        list and both payment types in `missing_default_rails`.

        Keys are ordered defaults first, then oldest first. The response never
        contains a key — only the last four characters of each one.
      operationId: list_payment_connections
      responses:
        '200':
          description: Your keys and default-key coverage.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentConnectionsResponse'
              example:
                connections:
                  - id: 59ed8c84-50e0-478b-a1cb-e4ff4f809582
                    label: Main key
                    merchant_ref: null
                    rail_scope: both
                    is_default: true
                    key_last4: b6a0
                    last_poll_at: '2026-09-01T06:12:44Z'
                    access_scope: lender_admins
                    created_at: '2026-08-28T15:02:11Z'
                  - id: 02623289-b33a-4d42-9e08-4a9a849c9c84
                    label: Nevada ACH
                    merchant_ref: acme-nv
                    rail_scope: ach
                    is_default: false
                    key_last4: d2f4
                    last_poll_at: '2026-09-01T06:12:44Z'
                    access_scope: lender_admins
                    created_at: '2026-08-28T15:04:37Z'
                missing_default_rails: []
                ingested: 128
                matched: 121
                last_poll_at: '2026-09-01T06:12:44Z'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    PaymentConnectionsResponse:
      type: object
      properties:
        connections:
          type: array
          description: Your keys — defaults first, then oldest first.
          items:
            $ref: '#/components/schemas/PaymentConnection'
        missing_default_rails:
          type: array
          items:
            type: string
            enum:
              - card
              - ach
          description: |
            Payment types with no default key. Borrowers enrolled without a
            `merchant_ref` are skipped on these until you add or promote one.
            Empty when every type is covered — a `both` key covers both.
        ingested:
          type: integer
          description: Payments Rightfoot has read from your processor through your keys.
        matched:
          type: integer
          description: Of those, the number matched to a borrower you enrolled.
        last_poll_at:
          type:
            - string
            - 'null'
          format: date-time
          description: |
            The most recent read across all your keys. `null` until the first
            read.
    PaymentConnection:
      type: object
      description: One registered key. Never includes the key itself.
      properties:
        id:
          type: string
          format: uuid
          description: Use this to update or delete the key.
        label:
          type: string
          description: The name you gave the key.
        merchant_ref:
          type:
            - string
            - 'null'
          description: |
            The tag enrollments name to settle to this key, or `null` for a
            default or unused key.
        rail_scope:
          type: string
          enum:
            - ach
            - card
            - both
          description: The payment types this key can take.
        is_default:
          type: boolean
          description: Whether this is the default key for its `rail_scope`.
        key_last4:
          type:
            - string
            - 'null'
          description: The last four characters of the stored key, to tell keys apart.
        last_poll_at:
          type:
            - string
            - 'null'
          format: date-time
          description: |
            When Rightfoot last read payment results through this key. `null`
            until the first read.
        access_scope:
          type: string
          description: >-
            Reserved for a future permissions setting. Always `lender_admins`
            today.
        created_at:
          type: string
          format: date-time
          description: When the key was added.
    ApiErrorResponse:
      type: object
      properties:
        status:
          type: string
          description: Status of the error, either "error" or "success"
        status_code:
          type: integer
          description: HTTP status code of the error
        error:
          type: object
          properties:
            code:
              type: string
              description: Error code (e.g., "RESOURCE_NOT_FOUND")
            message:
              type: string
              description: Detailed error message.
            details:
              type: string
              description: Additional details about the error
            timestamp:
              type: string
              format: date-time
              description: Time the error occurred
            suggestion:
              type: string
              description: Suggested action to resolve the error
        documentation_url:
          type: string
          format: uri
          description: URL to the documentation for the error
  responses:
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorResponse'
          example:
            status: error
            status_code: 401
            error:
              code: UNAUTHORIZED
              message: Invalid API key provided.
              timestamp: '2024-09-16T12:01:00Z'
              suggestion: Please check your API key.
            documentation_url: https://api.rightfoot.com/docs
    InternalServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorResponse'
          example:
            status: error
            status_code: 500
            error:
              code: INTERNAL_SERVER_ERROR
              message: An unexpected error occurred while retrieving the balances.
              timestamp: '2024-09-16T12:11:00Z'
              suggestion: >-
                Please try again later. If the problem persists, contact our
                support team.
            documentation_url: https://api.rightfoot.com/docs
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >
        Authentication to the API is performed via Bearer Token Authentication.
        Provide your API key as the bearer token in the Authorization header.


        All API requests must be made over HTTPS. Calls made over plain HTTP
        will fail. API requests without authentication will also fail.

````