1
What you need
eID 2 FMP runs on an iPhone or iPad with iOS or iPadOS 26.5 or later. To read a card you need two things that are not in the app.
- A Bluetooth card reader. The Zetes Sipiro M BT 4.0, also sold as the FEITIAN bR301BLE. That is the model the app was built and tuned against.
- A Belgian identity card. The contact chip, not the NFC side.
And for the bridge to FileMaker
- FileMaker Go on the same device, version 19 or later.
- A FileMaker file with the extended privilege
fmurlscriptenabled. Without it, Go refuses every script that comes from outside.
Where to buy a reader
- Indicative price — € 85 excl. VAT
- Delivery — 1 to 2 working days
- Shipping — free from two units
- Available at — eidshop.be
- In the box — the reader and a USB-A to USB-C charging cable, 24 months warranty
2
Pairing the card reader
You do not pair the reader through the iOS Bluetooth settings, but inside the app. That is not an eID 2 FMP quirk: these readers do not announce themselves as a keyboard or a headset, so they never show up in that list.
- Switch the reader onHold the button until the blue light blinks.
- Open eID 2 FMP and tap LezerThe search screen opens and starts scanning immediately.
- Wait for your device to appearReaders of this brand are listed first, with an indication of how close they are. Other Bluetooth devices nearby are shown too — useful to confirm that scanning works at all.
- Tap itThat is all. The choice is remembered, also after quitting the app.
3
Reading a card
- Insert the cardChip facing up, all the way in.
- Press Kaart lezenThe app connects to the reader, powers up the card and reads the identity file.
- Read the resultSurname, given names, date of birth, nationality, card number, expiry date, address and the portrait.
The first read after launching takes the longest — some ten seconds. The app still has to find the reader over the air, pair with it and power up the card. Every read after that is quick.
Clearing
The Wissen button discards the result. Nothing is stored anyway: close the app and the reading is gone. More about that in chapter 10.
The APDU traffic
Top left there is APDU-verkeer. It shows every command sent to the card and every answer that came back, status words included. That is where the name Lab comes from, and it is the first place to look when a read fails.
4
What is read
eID 2 FMP reads the identity file on the card. That is the freely readable part: no PIN, no certificate and no authorisation from any authority is needed. Any ordinary card reader reads the same thing.
| Field | Contents |
|---|---|
| achternaam | Surname |
| voornamen | All given names as printed on the card |
| volledigeNaam | Given names and surname together, ready to display |
| geboortedatum | As on the card, as text |
| geboorteplaats | Contact chip only |
| geslacht | M or V |
| nationaliteit | Usually Belg |
| documentnummer | The card number |
| vervaldatum | Valid until |
| straat | Street and number |
| postcode | Postal code |
| gemeente | Municipality |
| adres | The three address fields on one line |
| pasfoto | The portrait from the card, as JPEG |
What does not happen
- The app does not use the card's authentication or digital signature functions, so it never asks for a PIN.
- The app does not use the card's certificates.
- The app contacts no government service and not the national register.
5
Setting up eID 2 FMP for FileMaker
At the top of the main screen there is FileMaker. That is where you say where the data should go.
- BestandThe name of your FileMaker file, without
.fmp12. - ScriptThe script that receives the data.
eIDOntvangenby default. - HostLeave empty for a file on the device itself. Otherwise the address or name of your FileMaker Server.
- Automatisch versturenOn by default. As soon as a card is read it goes straight to FileMaker, with no intermediate step. At a counter, every extra tap is one too many.
- PasfotoIn the URL as base64 (the default), via the clipboard, or not at all.
Why the photo has to take a detour
The fmp:// scheme allows one script parameter, and everything has to fit through a URL. The portrait on a Belgian eID is small — a few kilobytes — so base64 fits comfortably. Should the URL become too long anyway, eID 2 FMP falls back to the clipboard and says so. You catch that with the Paste script step.
6
Building the FileMaker side
On the FileMaker side you need a table, a script and one setting.
1. The privilege
File → Manage → Security → Extended Privileges → tick fmurlscript for the privilege set you use. Forget this and nothing happens, without any error message.
2. The fields
Create text fields with the same names as in chapter 4, a container field Pasfoto, and a text field ID with auto-enter Get ( UUID ).
3. The script eIDOntvangen
Set Variable [ $json ; Get ( ScriptParameter ) ]
Set Field [ Persoon::Achternaam
; JSONGetElement ( $json ; "achternaam" ) ]
Set Field [ Persoon::Voornamen
; JSONGetElement ( $json ; "voornamen" ) ]
Set Field [ Persoon::Geboortedatum
; JSONGetElement ( $json ; "geboortedatum" ) ]
# ... and so on for every field
Set Variable [ $foto ; JSONGetElement ( $json ; "pasfoto" ) ]
If [ not IsEmpty ( $foto ) ]
Set Field [ Persoon::Pasfoto
; Base64Decode ( $foto ; "pasfoto.jpg" ) ]
End If
Commit Records/Requests [ With dialog: Off ]
JSONGetElement on a missing field simply returns empty text — you never overwrite anything with an error.7
Letting FileMaker ask for a card
So far eID 2 FMP pushed the data to FileMaker. It also works the other way around: a button in your file that opens eID 2 FMP, has a card read, and gets the answer back in the same record.
New Record/Request
Commit Records/Requests [ With dialog: Off ]
Set Variable [ $terug ; Value:
"fmp://$/" & Get ( FileName ) & "?script=eIDOntvangen" ]
Open URL [ With dialog: Off ;
"eid2fmp://lees" &
"?terug=" & GetAsURLEncoded ( $terug ) &
"&sleutel=" & GetAsURLEncoded ( Persoon::ID ) ]
What happens then: eID 2 FMP comes to the front with a yellow bar FileMaker wacht op een kaart, reads by itself, and jumps back to FileMaker with the data and the key in it. Your eIDOntvangen script can use that key to find the right record.
fmp://$/ with fmp://yourserver/.GetAsURLEncoded around the return address. Without it things break as soon as your return URL carries a second parameter.8
The self-test
Under FileMaker → Zelftest the app runs nine checks. Each one says what was tested and, when it fails, what you can do about it.
- whether the card reader SDK is actually built in
- whether Bluetooth permission has been granted
- whether a reader has been chosen
- whether that reader is on the air right now
- whether FileMaker Go is installed on this device
- whether file and script have been filled in
- whether the URL stays within a safe length
- whether your FileMaker Server is reachable, if you named one
- whether the file is open — the app cannot know that for certain, and says so
There is also a test with a made-up card. It sends sample data to your FileMaker file without any card or reader involved. If FileMaker opens with a filled-in record, the whole chain is sound and only the reading itself remains to be tested.
9
When it does not work
eID 2 FMP does not come up when I press the button in FileMaker
Then the URL never left. iOS never launches an app invisibly in the background: either it comes to the front, or nothing happens. As a check, type eid2fmp://lees in Safari — the app should open with a red bar De oproep bevatte geen terug-adres. If it does, the scheme works and the problem is in your calculation.
eID 2 FMP opens with a red bar
The call arrived but has no return address, or the address is unusable. The bar shows exactly what came in.
The read fails
- geen lezer — the SDK does not see the device. Is it on? Charged? Still attached to another device?
- verbinden mislukt — it is seen but will not pair. Switch it off and on.
- a SCardConnect error — the card does not power up. Push it all the way in, chip facing up.
The data arrives, the photo does not
Check that the container field really is a container and not a text field, and that you give Base64Decode a file name — without that name FileMaker does not know what kind of file it is holding.
Nothing happens in FileMaker
Nine times out of ten fmurlscript is off, or the script name is not exactly right. Go does not report that: it simply does nothing.
10
Privacy in short
- The data stays on the device. There is no server of ours and nothing is sent to us.
- Nothing is stored. Close the app or press Wissen and the reading is gone.
- The card is only read when you ask for it, or when FileMaker asks for it.
- Send it on to FileMaker and the data goes to your file — on the device or on your server. Where it lives after that is your decision.
The full text is in the privacy policy.