Skip to main content

Membership cards for associations in Apple Wallet and Google Wallet

An association lives through its members. Every year you chase renewals, print cards, post them, announce the general meeting. A member card in Apple Wallet or Google Wallet does it all at once: proof of membership, a direct information channel and a ticket for your events. You import your member list once, then keep it up to date.

Try this pass liveFill in the form, watch the pass and the code update, then get it on your phone.

Customer journey​

Integration workflow​

  1. Set up the member cardBack office

    Pick MEMBER_CARD, show the association (ASSOCIATION) and the member number (N_ADHERENT). On iPhone, show the category in the header (iosHeader set to TYPE). Keep the same card from one year to the next: only the category and the renewal date change. Add your contacts and website on the wallet.

    PATCH/store-cardsTry it
    curl -L -X PATCH 'https://api-v2.test.eldowallet.fr/store-cards' \
    -H 'Accept: application/json' \
    -H 'x-lang: en' \
    -H 'Authorization: Bearer <token>' \
    -F 'strip=@"gardens.png"' \
    -F 'cardType="MEMBER_CARD"' \
    -F 'programName="Member card"' \
    -F 'barcodeType="QR_CODE"' \
    -F 'startRow="ASSOCIATION"' \
    -F 'endRow="N_ADHERENT"' \
    -F 'iosHeader="{\"labelEnum\":\"CUSTOM_TEXT\",\"customLabel\":\"Category\",\"valueEnum\":\"TYPE\"}"' \
    -F 'validity="{\"expirationType\":\"NO_EXPIRATION\"}"' \
    -F 'sharingProhibited="true"' \
    -F 'sharingProhibitedAndroid="true"' \
    -F 'colors="{\"backgroundColor\":\"\#2f4a1f\",\"labelColor\":\"\#f4d35e\",\"foregroundColor\":\"\#ffffff\"}"'
  2. One category, one client typeBack office

    Active member, supporter, youth, volunteer, honorary member: each category becomes a client type. You then target your messages by category. See Client types.

  3. Import the member listYour server

    You already have a spreadsheet or an export from your membership software: import it as CSV. The import runs in the background. With sendNotificationsToCustomers: true, each member gets their card. For a regular sync, use bulk creation in JSON (up to 5,000 rows per call). See Import a customer base.

    POST/csv-operations/import-csvTry it
    curl -L 'https://api-v2.test.eldowallet.fr/csv-operations/import-csv' \
    -H 'Accept: application/json' \
    -H 'x-lang: en' \
    -H 'Authorization: Bearer <token>' \
    -F 'file=@"members-2026.csv"' \
    -F 'sendNotificationsToCustomers="true"'
  4. Issue the card for each new memberYour server

    When the fee comes in, your software creates the member with their number as the barcode, their category, admission date and renewal date.

    POST/clientsTry it
    curl -L 'https://api-v2.test.eldowallet.fr/clients' \
    -H 'Accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'x-lang: en' \
    -H 'Authorization: Bearer <token>' \
    --data-raw '{
    "firstName": "Paul",
    "lastName": "Garnier",
    "email": "paul.garnier@example.com",
    "barcode": "2026-0318",
    "clientType": "$SUPPORTER_TYPE_ID",
    "admissionDate": "2026-09-01T00:00:00.000Z",
    "renewalDate": "2027-08-31T00:00:00.000Z",
    "source": "CRM",
    "sendCard": true
    }'
  5. The member adds the cardEnd customer

    They show it at an activity or at a partner's, even offline.

  6. Remind those who haven't added their cardYour server

    A week after the import, remind members whose card isn't installed: all of them, or a specific list.

  7. Keep members informedBack office

    General meeting notice, call for volunteers, activity moved to a new venue: a notification to all members, or to one category (target: SPECIFIC). For a campaign (fundraiser, open day), create a communication: the card's strip changes for the period. See Push notifications.

    POST/push-notificationsTry it
    curl -L 'https://api-v2.test.eldowallet.fr/push-notifications' \
    -H 'Accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'x-lang: en' \
    -H 'Authorization: Bearer <token>' \
    -d '{
    "defaultTitle": "General meeting",
    "defaultMessage": "General meeting on 14 March at 6 pm, village hall. Your vote counts.",
    "target": "ALL",
    "type": "SCHEDULED",
    "category": "INFORMATIVE",
    "scheduleAt": "2027-02-28T09:00:00.000Z"
    }'
  8. Tickets for your eventsYour server

    Annual party, outing, tournament, talk: create an event, then issue a ticket to each person who signs up. Pass the member's clientId to link the ticket to their record. Outside guests get a ticket without being members. See Events & trade fairs.

    POST/events/{id}/passesTry it
    curl -L 'https://api-v2.test.eldowallet.fr/events/$EVENT_ID/passes' \
    -H 'Accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'x-lang: en' \
    -H 'Authorization: Bearer <token>' \
    --data-raw '{
    "firstName": "Paul",
    "lastName": "Garnier",
    "email": "paul.garnier@example.com",
    "clientId": "$CLIENT_ID",
    "leftRow": "Member",
    "rightRow": "Table 4"
    }'
  9. Check people inYour server

    At the door, scan the ticket and redeem it. A second scan returns PASS_ALREADY_REDEEMED.

  10. Yearly renewalYour server

    A month before the membership year ends, schedule a reminder to the members concerned. When the fee comes in, update the renewal date and, if needed, the category. The installed card updates.

    PATCH/clients/{id}Try it
    curl -L -X PATCH 'https://api-v2.test.eldowallet.fr/clients/$CLIENT_ID' \
    -H 'Accept: application/json' \
    -H 'Content-Type: application/json' \
    -H 'x-lang: en' \
    -H 'Authorization: Bearer <token>' \
    -d '{
    "renewalDate": "2028-08-31T00:00:00.000Z",
    "clientType": "$ACTIVE_MEMBER_TYPE_ID"
    }'

Best practices​

  • Member number as the barcode. It's the number in your register: no mapping table.
  • One card, many years. On renewal, update the existing card rather than issuing a second one.
  • Only what's needed on the card. Name, number, category. Everything else stays in your membership software.
  • Useful messages. General meeting, activities, volunteering: INFORMATIVE. A partner's offer is COMMERCIAL. Respect each member's communication preferences.
  • Clean the file before importing. One unique email and member number per row: duplicates are rejected.

Go further​

Get inspired​

The member card can keep your association alive all year round. Here are ideas to keep your members engaged.

Partner perksPartner shops offer a discount when members show their card. Membership gains value.
Tax receipt availableAfter a donation or membership fee, members are told their receipt is ready, with a direct link.
Thank you, volunteersVolunteer hours show on the card, with a thank-you message at each milestone.
Consult your membersSurvey, online vote, choice of the next outing: a message with the link, and the result on the card.
Membership anniversaryβ€œ10 years with us!” A thank-you message on each anniversary that strengthens the bond.
Family cardEach member of a family membership has their own card, on their own phone.
Today’s activityWhen arriving at an activity venue, members see the day’s programme on their card.
Refer a new memberA member brings in a friend: the newcomer gets their card, the referrer a small thank-you gift.

Like one of these ideas? Contact our team and we'll show you how to set it up.

API news, once a month

New endpoints, upcoming changes, guides and use cases. No spam, one-click unsubscribe.

Report a technical problem

An API error, a pass that does not update, an email that does not arrive? Describe the problem: our technical team will answer.

For a fast answer, include:

  • The method and endpoint (e.g. POST /clients)
  • The error code returned (errorCode) and the body sent
  • The date and time of the call
  • The identifiers involved (customer, template, pass)

Never include an API token or a password.

AI assistant

Beta

Loading…

AI-generated answers (Claude): double-check important details.

Sign in to use the assistant