Saved Cards

Save a customer's credit card as a reusable token so you can charge it later without re-entering card details. Cards are tokenized by the payment provider — raw card numbers never touch your integration.

Use cases: Collect a card once via a hosted tokenization page, then charge it on demand (see Charges) or attach it to a recurring payment.
POST/grow/tokens

Start saving a card for a client. Returns a hosted page URL where the customer enters their card details; the token is created once they submit.

Send the returned `url` to the customer. Once they submit their card, the token appears in the list endpoint and can be charged by its id. `sent` and `failed` report each channel you asked for in `sendVia`, so a channel that could not be delivered is visible rather than silent. WhatsApp is not sent by the server — `whatsappUrl` is a link for a person to open.

Body Parameters

NameTypeDescription
paymentProviderId
numberrequiredID of the active payment provider (see Payment Providers).
entityId
numberrequiredID of the client the card belongs to.
isDefault
booleanMake this the client's default card once it is saved. Defaults to false. Default is per client, not per company — each client has their own.
purpose
stringText shown to the customer on the page, up to 500 characters — "עבור ריטיינר חודשי", "לחיובים עתידיים".
sendVia
string[]Channels to send the link on straight away: "SMS", "EMAIL", "WHATSAPP". Defaults to an empty list, in which case the link is only returned for you to pass on yourself.
sendToEmail
stringSend to this address instead of the one on the client's record.
sendToPhoneNumber
stringSend to this number instead of the one on the client's record.

Request

curl -X POST "https://api.glance.co.il/grow/tokens" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "paymentProviderId": 0,
  "entityId": 0,
  "isDefault": true,
  "purpose": "example_purpose",
  "sendVia": "example_sendVia",
  "sendToEmail": "example_sendToEmail",
  "sendToPhoneNumber": "example_sendToPhoneNumber"
}'

Response

Response
{
  "success": true,
  "data": {
    "url": "https://clients.glance.co.il/token/page/3f8b5c2a-1d4e-4a7b-9c6f-2e1a0b8d7c5e",
    "whatsappUrl": "https://wa.me/9725…",
    "sent": [
      "EMAIL"
    ],
    "failed": []
  }
}
GET/grow/tokens

List all saved cards for the company.

Not paginated, and not filterable — every saved card in the company comes back. `entityName` says whose card each row is, which matters because `isDefault` is per client: several rows can carry `isDefault: true`, one per client. Each client's default sorts first. The `token` itself is never returned.

Request

curl -X GET "https://api.glance.co.il/grow/tokens" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

Response

Response
{
  "success": true,
  "data": [
    {
      "id": 501,
      "entityId": 1,
      "paymentProviderId": 3,
      "payerName": "John Doe",
      "lastDigits": "4242",
      "cardType": "credit_card",
      "cardExpiry": "05/28",
      "isDefault": true,
      "createdAt": "2026-03-20T14:30:00Z",
      "entityName": "אלקבץ בע״מ",
      "provider": {
        "id": 3,
        "provider": "GROW",
        "environment": "PRODUCTION",
        "isActive": true
      }
    }
  ]
}
GET/grow/tokens/:id

Get a single saved card by its ID.

Path Parameters

NameTypeDescription
id
numberrequiredSaved card (token) ID.

Request

curl -X GET "https://api.glance.co.il/grow/tokens/:id" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

Response

Response
{
  "success": true,
  "data": {
    "id": 501,
    "entityId": 1,
    "paymentProviderId": 3,
    "payerName": "John Doe",
    "lastDigits": "4242",
    "cardType": "credit_card",
    "cardExpiry": "05/28",
    "isDefault": true,
    "createdAt": "2026-03-20T14:30:00Z"
  }
}
PUT/grow/tokens/:id

Update the payer details or default flag on a saved card.

Path Parameters

NameTypeDescription
id
numberrequiredSaved card (token) ID.

Body Parameters

NameTypeDescription
payerName
stringName on the card.
payerPhoneNumber
stringPhone number associated with the card.
isDefault
booleanIf true, make this the client's default card (unsets any other default).

Request

curl -X PUT "https://api.glance.co.il/grow/tokens/:id" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "payerName": "example_payerName",
  "payerPhoneNumber": "example_payerPhoneNumber",
  "isDefault": true
}'

Response

Response
{
  "success": true,
  "data": {
    "id": 501,
    "payerName": "Jane Doe",
    "lastDigits": "4242",
    "isDefault": true
  }
}
DELETE/grow/tokens/:id

Delete a saved card.

Path Parameters

NameTypeDescription
id
numberrequiredSaved card (token) ID.

Request

curl -X DELETE "https://api.glance.co.il/grow/tokens/:id" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

Response

Response
{
  "success": true
}

Last updated