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/tokensStart 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
| Name | Type | Description | |
|---|---|---|---|
paymentProviderId | number | required | ID of the active payment provider (see Payment Providers). |
entityId | number | required | ID of the client the card belongs to. |
isDefault | boolean | Make 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 | string | Text 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 | string | Send to this address instead of the one on the client's record. | |
sendToPhoneNumber | string | Send 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/tokensList 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/:idGet a single saved card by its ID.
Path Parameters
| Name | Type | Description | |
|---|---|---|---|
id | number | required | Saved 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/:idUpdate the payer details or default flag on a saved card.
Path Parameters
| Name | Type | Description | |
|---|---|---|---|
id | number | required | Saved card (token) ID. |
Body Parameters
| Name | Type | Description | |
|---|---|---|---|
payerName | string | Name on the card. | |
payerPhoneNumber | string | Phone number associated with the card. | |
isDefault | boolean | If 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/:idDelete a saved card.
Path Parameters
| Name | Type | Description | |
|---|---|---|---|
id | number | required | Saved 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
}