API Documentation

Everything you need to interact with AccessGrid.

Create Card Template

Enterprise only
Contact us

Only available for enterprise customers - allows you to create an empty card template using our console API.

name

string

All

platform

string

All

use_case

string

All

protocol

string

All

allow_on_multiple_devices

nullable boolean

All

watch_count

nullable integer

Apple

iphone_count

nullable integer

Apple

android_device_limit

nullable string

Android

title_label

nullable string

Android
Corporate

background_color

nullable string

Apple

label_color

nullable string

Apple

label_secondary_color

nullable string

Apple

support_url

nullable string

Apple

support_phone_number

nullable string

Apple

support_email

nullable string

Apple

privacy_policy_url

nullable string

Apple

terms_and_conditions_url

nullable string

Apple

metadata

nullable object

All

background

nullable string

All

logo

nullable string

All

icon

nullable string

All

credential_profiles

nullable array

All

landing_pages

nullable array

All

qr_code_value

nullable string

QR

qr_code_text

nullable string

QR

top_right_label

nullable string

QR

top_right_value

nullable string

QR

secondary_field_left_label

nullable string

QR

secondary_field_left_value

nullable string

QR

secondary_field_middle_label

nullable string

QR

secondary_field_middle_value

nullable string

QR

secondary_field_right_label

nullable string

QR

secondary_field_right_value

nullable string

QR

member_photo

nullable string

QR
Member

Request

Response

{ "id": "tpl_0xd3adb00b5", "estimated_publishing_date": "2026-01-05T12:00:00Z", "images": { "logo": "https://example.com/rails/active_storage/blobs/logo.png", "background_image": "https://example.com/rails/active_storage/blobs/background.png", "icon": null, "member_photo": null }, "metadata": { "version": "2.1", "approvalStatus": "approved" } }

Update Card Template

Enterprise only
Contact us

Only available for enterprise customers - allows you to update certain attributes of an existing card template using our console API.

card_template_id

string

All

name

nullable string

All

platform

nullable string

All

use_case

nullable string

All

protocol

nullable string

All

allow_on_multiple_devices

nullable boolean

All

watch_count

nullable integer

Apple

iphone_count

nullable integer

Apple

android_device_limit

nullable string

Android

title_label

nullable string

Android
Corporate

background_color

nullable string

Apple

label_color

nullable string

Apple

label_secondary_color

nullable string

Apple

support_url

nullable string

Apple

support_phone_number

nullable string

Apple

support_email

nullable string

Apple

privacy_policy_url

nullable string

Apple

terms_and_conditions_url

nullable string

Apple

metadata

nullable object

All

background

nullable string

All

logo

nullable string

All

icon

nullable string

All

credential_profiles

nullable array

All

landing_pages

nullable array

All

qr_code_value

nullable string

QR

qr_code_text

nullable string

QR

top_right_label

nullable string

QR

top_right_value

nullable string

QR

secondary_field_left_label

nullable string

QR

secondary_field_left_value

nullable string

QR

secondary_field_middle_label

nullable string

QR

secondary_field_middle_value

nullable string

QR

secondary_field_right_label

nullable string

QR

secondary_field_right_value

nullable string

QR

member_photo

nullable string

QR
Member

Request

Response

{ "id": "tpl_0xd3adb00b5", "estimated_publishing_date": "2026-01-05T12:00:00Z", "images": { "logo": "https://example.com/rails/active_storage/blobs/logo.png", "background_image": "https://example.com/rails/active_storage/blobs/background.png", "icon": null, "member_photo": null }, "metadata": { "version": "2.1", "approvalStatus": "approved" } }

Read Card Template

Enterprise only
Contact us

Only available for enterprise customers - allows you to read basic info about an existing card template using our console API.

card_template_id

nullable string

All

Request

Response

{ "id": "tpl_0xd3adb00b5", "name": "Employee Access Pass", "platform": "apple", "use_case": "corporate_id", "protocol": "desfire", "created_at": "2025-12-01T09:15:30Z", "last_published_at": "2025-12-10T14:42:00Z", "issued_keys_count": 125, "active_keys_count": 118, "allowed_device_counts": { "allow_on_multiple_devices": true, "watch": 2, "iphone": 3, "android_device_limit": "single_device" }, "support_settings": { "url": "https://help.yourcompany.com", "phone": "+1-555-123-4567", "email": "[email protected]" }, "terms_settings": { "privacy_policy_url": "https://yourcompany.com/privacy", "terms_and_conditions_url": "https://yourcompany.com/terms" }, "style_settings": { "background_color": "#FFFFFF", "label_color": "#000000", "label_secondary_color": "#333333" }, "images": { "logo": "https://example.com/rails/active_storage/blobs/logo.png", "background_image": "https://example.com/rails/active_storage/blobs/background.png", "icon": "https://example.com/rails/active_storage/blobs/icon.png", "member_photo": null }, "credential_profiles": ["a1b2c3d4e5f"], "landing_pages": ["f6e5d4c3b2a", "x9y8z7w6v5u"], "metadata": { "version": "2.1", "approvalStatus": "approved" } }

Publish Card Template

Enterprise only
Contact us

Only available for enterprise customers - submits a card template for publishing. Apple DESFire templates move to in-review status; the existing ag.card_template.published webhook fires when AccessGrid completes the publish. Android SmartTap templates publish immediately. Idempotent: returns 200 with the current status if the template is already ready or in-review.

card_template_id

string

All

Request

Response

{ "id": "tpl_0xd3adb00b5", "status": "in-review" }

Delete Card Template

Enterprise only
Contact us

Only available for enterprise customers - soft-deletes a card template. All access passes on the template must be in deleted state before this endpoint can be called. Once deleted, the template will no longer appear in listings, cannot be edited or used to issue new passes, and monthly billing for the template stops. Returns 422 with an active_pass_count field if any non-deleted passes remain.

card_template_id

string

All

Request

Response

{ "id": "tpl_0xd3adb00b5", "deactivated": true }

Reveal SmartTap Private Key

Enterprise only
Contact us

Only available for enterprise customers with a Google Wallet SmartTap template. Returns the SmartTap private key encrypted to a caller-supplied P-256 public key using ECDH-ES + AES-256-GCM. Each public key can only be used once per account and the endpoint is rate-limited to 1 request per minute per account. Use this to configure your own reader / collector hardware. Use the response's ephemeral_public_key as a one-time P-256 public key generated server-side for this response. Combine it with your local private key via ECDH to derive the AES-256-GCM key (HKDF-SHA256, info accessgrid-smart-tap-reveal-v1, salt empty, 32 bytes).

card_template_id

string

All

client_public_key

string

All

Request

Response

{ "key_version": 42, "collector_id": 12345678, "fingerprint": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2", "encrypted_private_key": { "alg": "ECDH-ES+A256GCM", "ephemeral_public_key": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE...\n-----END PUBLIC KEY-----\n", "iv": "gK7B5Jh1dQwHn2Qp", "ciphertext": "xS9hQ0aV0...base64...0r2k=", "tag": "4K7x3p9VYpAqY1Zc9C2nLw==" } }