Card templates API
List, create, update and delete wallet card templates with the Shakewell Wallet API. Fields, image uploads, status values and the errors you can hit.
Last updated 2026-11-05
A template defines a pass's layout, branding, fields and type. Every pass is created from one. Endpoints live under /card-templates.
| Method and path | Purpose | Needs |
|---|---|---|
GET /card-templates | List templates, paginated | read |
POST /card-templates | Create a template | write |
GET /card-templates/{templateId} | Fetch one template | read |
PUT /card-templates/{templateId} | Update a template | write |
DELETE /card-templates/{templateId} | Delete a template | write |
List templates
Query parameters: per_page, current_page, query (name or description search), filters[category], filters[status], sort_by, sort_order. The response is { message, data: { data: [...], meta: { current_page, per_page, total, last_page } } }.
Create a template
Send multipart/form-data so images can be uploaded (logo_image, hero_image, icon_image, strip_image).
| Field | Required | Values |
|---|---|---|
name | yes | text |
template_type | yes | membership or coupon |
category | yes | loyalty, stamps or gift_card |
status | yes | draft, published or archived |
timezone | yes | for example UTC |
max_stamp_count | no | integer, for stamp cards |
template_data, field_definitions | no | JSON describing fields |
barcode_has_static, barcode_static_value | no | a fixed barcode for every pass |
Plans cap the number of templates. At the cap, create returns 403 with error: "template_limit_exceeded" and a usage object.
Update and delete
Update accepts the same fields, with status required. Delete removes the template record. Both return 403 with error_code: "UNAUTHORIZED_ACCESS" if the key lacks write access or the template belongs to another account, and 404 for an unknown ID.