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 pathPurposeNeeds
GET /card-templatesList templates, paginatedread
POST /card-templatesCreate a templatewrite
GET /card-templates/{templateId}Fetch one templateread
PUT /card-templates/{templateId}Update a templatewrite
DELETE /card-templates/{templateId}Delete a templatewrite

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).

FieldRequiredValues
nameyestext
template_typeyesmembership or coupon
categoryyesloyalty, stamps or gift_card
statusyesdraft, published or archived
timezoneyesfor example UTC
max_stamp_countnointeger, for stamp cards
template_data, field_definitionsnoJSON describing fields
barcode_has_static, barcode_static_valuenoa 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.

Design-heavy work is easier in the visual builder. Most teams create templates in the dashboard and use the API for passes and notifications.