---
title: "List PA Registrations"
method: GET
path: "/api/external/v2/pa_registrations"
tags: ["PA Registrations"]
---

# List PA Registrations

`GET /api/external/v2/pa_registrations`

## Request

- Base URL: `https://app.pennylane.com`
- URL: `https://app.pennylane.com/api/external/v2/pa_registrations`
- Auth: OAuth 2
  - Authorization code: `https://app.pennylane.com/oauth/authorize`
  - Token URL: `https://app.pennylane.com/oauth/oauth/token` scopes: `pa_registrations:readonly`

Returns all PA (Plateforme Agrée) registrations for the company,
including activation status and exchange direction. Use this to determine whether the company has completed
PA onboarding. Records with a `null` `siret` represent the SIREN-level
(head office), other records represent establishments.

> ⚠️
> By default, addresses of **every** status are returned. Only `activated` addresses are relevant to
> receive invoices, so we recommend filtering on the `activated` status:
> `filter=[{"field":"status","operator":"eq","value":"activated"}]`.
> In a future version, only `activated` addresses will be returned, and the `exchange_direction` property
> will be removed.


> ℹ️
> This endpoint requires the following scope: `pa_registrations:readonly`

## Query parameters

- `filter` string
- `sort` string

## Headers

- `X-Company-Id` string

## Response `200`

List of PA registrations for the company

- object
  - `emission_activated` boolean, required: Whether the company has activated invoice emission through Pennylane. `true` when the company is enabled to send invoices via Pennylane's emission feature, regardless of whether a PPF routing address exists. Use this alongside `items` to determine the full PA registration state.
  - `has_more` boolean, required: Indicates whether additional results are available beyond this set. Use this flag to determine if another request is needed.
  - `next_cursor` string, nullable, required: Cursor to retrieve the next set of results. Include this value in the cursor parameter of your next request to fetch subsequent items. A `null` `next_cursor` in the response indicates no further results.
  - `items` object[], required
    - `id` integer, required
    - `siret` string, nullable, required: Establishment SIRET when the row is establishment-level; `null` when the row is SIREN-level (head office).
    - `siren` string, required
    - `suffix` string, nullable, required: Optional suffix of the address, `null` when the address has none.
    - `routing_code` string, nullable, required: Optional routing code of the address, `null` when the address has none.
    - `status` 'pending' | 'activated' | 'provisioned' | 'draft' | 'archived' | 'conflict' | 'ineligible' | 'lost', required: Registration status of a PA (Plateforme Agrée) address. > ⚠️ All statuses except `activated` are deprecated. In a future version, only `activated` addresses will be returned. - `activated`: live and confirmed in the PA directory; the address is registered. - `provisioned`: [DEPRECATED] please do not use, records with this status will be deleted in a future version. - `draft`: [DEPRECATED] the SME user started registration but did not complete it and explicitly saved the address as draft. - `pending`: [DEPRECATED] consent completed and registration submitted to the PA directory, waiting for confirmation. - `conflict`: [DEPRECATED] the directory callback indicates the address conflicts (e.g. already claimed elsewhere). - `ineligible`: [DEPRECATED] the directory callback indicates the address cannot be registered. - `lost`: [DEPRECATED] the address was lost to another PA — either after a portability transfer, or when another PA registered the same address on the PPF first. - `archived`: [DEPRECATED] please do not use, records with this status will be deleted in a future version.
    - `exchange_direction` 'emission' | 'reception' | 'emission_and_reception', required: Exchange direction of the address. > ⚠️ This attribute is deprecated and will be removed in a future version.
    - `effective_until` string, date, nullable, required: Last date the address is effective, `null` when there is no end date.
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required

## Other responses

- `400`: Bad request
- `401`: Access token is missing or invalid
- `403`: Access to this resource forbidden
- `404`: The resource was not found

## Changes

- **2026-11-03** `871f863307e5`: 1 warning, 8 info
  - added the new `lost` enum value to the `items/items/status` response property for the response status `200`
  - added the new optional `header` request parameter `X-Company-Id`
  - added the new optional `query` request parameter `filter`
  - added the new optional `query` request parameter `sort`
  - …5 more

[Operation history](https://skmtc.dev/pennylane/apis/company-v2/changes/api/external/v2/pa_registrations/get.md)

---

[API](https://skmtc.dev/pennylane/apis/company-v2.md) - [All operations](https://skmtc.dev/pennylane/apis/company-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/pennylane/apis/company-v2/revisions/871f863307e5?raw)
