---
title: "Change platform"
description: "Move a company from one e-invoicing platform to another, in any country we cover: type a name, we resolve the company and its directory line, one company or five thousand, with the deadlines that country sets."
canonical: "https://docs.get-flowie.com/portability/"
source: "https://docs.get-flowie.com/portability/index.html"
---

# Change platform

Portability

# Change platform

Type a company name, or paste a tax ID — in any country we cover. We identify the company against its national register or the Peppol network, read the routing directory where the country has one, and tell you what its move requires _there_ : one company in thirty seconds, or five thousand in an afternoon.

## One company

No account, no API key — the page mints a throwaway sandbox key and forgets it when you close the tab.

Company name, tax ID, VAT number or Peppol id

Look it up

Three letters are enough. Names are matched against the national register where a country publishes one, and against the Peppol network everywhere else — so a Belgian, Italian or British company answers to its name too. A tax ID, a VAT number or a Peppol id always works.

## Many companies at once

A platform migration is rarely one company, and rarely one country. Paste the list — names, tax IDs, VAT numbers or Peppol ids, one per line, straight out of a spreadsheet — and every line is resolved the same way the single lookup above resolves, four at a time so nothing is throttled. What comes back is a table you can act on: who each line really is, who routes them today, and what is still missing before their move can be filed in their own country.

One company per line

Resolve the list Copy as CSV Copy the import payload

You typed| Company| Company ID| Routed today by| Still needed  
---|---|---|---|---  
  
**Then file them in one call.** The _Copy the import payload_ button gives you the body for [`POST /v1/companies/import/batch`](<../reference/index.html#import-companies-batch>) — up to 500 companies per call, each idempotent on its identifier, each reporting its own outcome so a partial failure never costs you the batch. Put the agreed `effectiveDate` on the items and the routing address is created for _that_ date rather than the moment the call lands.

What the list does not do by itself

Resolving a list tells you who these companies are and what their move needs. It does not send anything: the inter-platform messages go out when you open the requests, so you can look at the table, fix the three lines that came back incomplete, and only then commit. 

## How a change of platform actually works

Four steps, the same in every country we cover — what changes is the paperwork each one demands, the deadlines it runs on, and whether there is a public directory to re-point at all. The [country-by-country matrix](<../guides/portability-europe.html>) has the differences; the [French walkthrough](<../guides/portability.html>) has one regime end to end. This is the shape they share.

1

### Identify the taxpayer

One identifier — or a name, resolved above — becomes the legal name, the country, the national identifiers, the Peppol id and, where that country publishes a directory, the line it routes on. Whatever cannot be resolved comes back in `stillNeeded` instead of being guessed.

2

### Open the request

Opening one produces the agreement that country's rules require, its deadlines computed on that country's own business calendar, and a hash-linked evidence chain — so the proof survives the argument, not just the happy path.

3

### Tell the other platform

Where a country prescribes a format between platforms — France's normalised subject line and 18-field CSV, for one — it is built and sent to the outgoing platform, addressed from the register of approved platforms. It is logged with the hash of what was sent, whether or not it left.

4

### Switch the routing

On the agreed effective date — not before — the routing address moves. The outgoing platform stops sending that day and keeps receiving for as long as its country requires (twelve months in France), so nothing in flight is lost.

The clocks belong to the country, not to us

In France a request must be acknowledged within **24 hours** and processed within **5 jours ouvrés** , past which silence counts as agreement — in both directions, so the deadline protects you as the incoming platform and exposes you as the outgoing one. Other countries set different windows, and some set none at all: `resolve` returns the regime that applies to the company you looked up, and the [per-country matrix](<../guides/portability-europe.html>) spells the rest out. 

## Drive it from your own system

Everything on this page is the public API with a sandbox key. The same calls, with your own key, are what an integrator or an agent uses. They are country-agnostic except where the table says otherwise:

Call| What it does  
---|---  
`GET /v1/portability/companies?q=`| Type a name, get the company — what the field above runs on. National register first where one is connected (France), then the Peppol network; identifiers resolve on either.  
`POST /v1/portability/resolve`| One identifier in, the whole taxpayer out, plus what its country requires.  
`POST /v1/portability/requests`| Open the request: designation agreement, deadlines, evidence chain.  
`POST /v1/portability/messages`| Send the normalised inter-platform message and keep the proof.  
`GET /v1/portability/annuaire/{siren}`| 🇫🇷 Who routes this taxpayer today, since when, until when — the French _annuaire_.  
`POST /v1/portability/routing`| Move the routing on the agreed date.  
`POST /v1/companies/import/batch`| Onboard the whole list, per-item results.  
  
Full parameters in the [API reference](<../reference/index.html#portability>), the country-by-country rules in [changing platform in Europe](<../guides/portability-europe.html>), and one regime end to end in the [French portability guide](<../guides/portability.html>).
