Card PINs are set — and changed — through Yativo’s hosted secure page, powered by the Gnosis Pay Partner Secure Elements (PSE) service. The cardholder types their PIN directly inside a sandboxed iframe. Your backend never receives or processes the PIN value.Documentation Index
Fetch the complete documentation index at: https://docs.yativo.com/llms.txt
Use this file to discover all available pages before exploring further.
The same
enabled_views: ["pin"] view handles both initial PIN setup and PIN changes. Show it whenever a cardholder wants to set or update their PIN.pin_set is informational, not a hard gate. Yativo tracks pin_set from the physical.card.pin.changed webhook — Gnosis Pay does not expose this value via their API. The flag may lag behind reality if the webhook was missed or the cardholder set their PIN through another path. Use it as a UI hint (e.g. show a “Set PIN” prompt) rather than blocking access server-side.How it works
Your backend requests a PIN view token
Call
POST /v1/yativo-card/{yativoCardId}/cards/{cardId}/view-token with enabled_views: ["pin"].You receive a secure_view_url
The response contains a short-lived
secure_view_url that loads the hosted PIN-setting page.Cardholder sets their PIN in the iframe
Open the URL in an
<iframe> or WebView. The cardholder enters and confirms their 4-digit PIN directly inside the hosted page. The PIN never leaves the PSE iframe.Gnosis Pay fires a webhook
Once the PIN is saved, Gnosis Pay sends a
physical.card.pin.changed event to your webhook endpoint. Yativo updates pin_set: true on the card record automatically.Step 1 — Request a PIN view token
The Yativo Card account ID (
yativo_card_id).The card ID to set the PIN for.
Pass
["pin"] to open the PIN-setting form. Pass ["data", "pin"] to show both card details and PIN (only works after PIN is already set).Optional brand customization —
accent_color, logo_url, background_color, etc. See Secure Card Display for all options.Step 2 — Embed the hosted PIN page
Passsecure_view_url as the src of an iframe. No SDK or client-side JavaScript required.
Theme customization
Pass atheme object in the view-token request to brand the hosted PIN page. All theme fields are optional.
accent_color, background_color, panel_color, text_color, muted_color, border_radius, font_family, logo_url. See Secure Card Display for the full reference.
Checking pin_set status
After the PIN is set, the Gnosis Pay physical.card.pin.changed webhook fires and Yativo updates pin_set: true on the card record. You can read this via:
- Card issuers —
GET /v1/card-issuer/customers/{customerId}→data.cards[n].pin_set - End users —
GET /v1/yativo-card/my-account→data.account.cards[n].pin_set - View-token response —
data.pin_setis returned on everyPOST .../view-tokencall
next_action field on the issuer customer record will read:
"Card is active — customer must set card PIN before in-store (PSE) payments will work"
until pin_set becomes true.
Notes
| Detail | Value |
|---|---|
| PIN input | Cardholder types directly into the hosted iframe — PIN never reaches your server |
| PIN format | 4 digits (0000–9999) |
| Initial set & change | Same enabled_views: ["pin"] view handles both |
| Confirmation | physical.card.pin.changed webhook → pin_set: true in DB |
pin_set reliability | Informational — sourced from webhook only, not Gnosis API |
| Issuer theme | Pass theme in the view-token request — applies to the hosted PIN page |
| Online vs chip PIN | PSE updates the online PIN. The chip PIN syncs automatically on first ATM use |
| Works for | Virtual and physical cards |

