addToWallet.co
Workspaces
Pricing
API Docs
Tutorial Blog
Tools
Google Sheet Extension
PDF to Pass
Image to Pass
QR Code Generator
Barcode Generator
Integrations
© 2026 Hazelnut Ventures LLC. All Rights Reserved.
FAQsTrustContact Us
Overview
AuthenticationPass JSON GeneratorCreate PassGet PassUpdate PassDelete PassNotificationsGet Credits
Create TemplateList TemplatesGet TemplateUpdate TemplateDelete TemplateDynamic Pass Gen
Create Loyalty TemplateManage LoyaltyActivity Log
List User GroupsAdd UserList UsersUpdate UserDelete UserBatch Status

Update User API

Overview

The Update User API modifies an existing customer record in a Manage Users group and queues the corresponding wallet pass for re-rendering. This is the same endpoint the Manage Users dashboard uses when you edit a user from the UI, so the behavior is identical across API and dashboard. To update multiple users, call this endpoint once per user.

This is also the dynamic-pass "check-in"

Scanning a non-loyalty pass opens this same update flow — there is no counter, you just edit the member's fields here. Loyalty passes have a stamp / points counter instead, updated via Loyalty Progress Update.

Base URL

https://app.addtowallet.co
PUT/api/manage-users/customers/:customerId

Path Parameters

  • customerId (string, required): The unique identifier of the customer to update. This is the customerId returned by Add User and listed by List Users.

Authentication

All API requests must include your API key in the request headers:

"apikey": "your-api-key-here"

Request Body

Send a single JSON object containing only the dynamic fields you want to change — the same field keys you used when adding the user. This is a partial update: omitted fields keep their existing values, so you never need to resend the whole record.

Request Body (shape)

NameTypeRequiredDescription
...dynamicFieldsobjectNo
Key/value pairs of dynamic fields to change. Keys are case-sensitive and must match the dynamic fields declared on the template. Only the keys you include are modified; everything else is left untouched.

The example below promotes John Smith (the customer added on the Add User page): it changes only position, department and phone, leaving companyName, email, employeeId and websiteUrl as they were.

Partial Updates

Only the fields you include in the request body are updated. To clear a field, set its value to an empty string or null. The customer's pass is automatically queued for re-rendering with the new values.

Manage Users Integration

This endpoint is the same one used by the Manage Users dashboard:

  • • Updates the customer record synchronously
  • • Queues the linked pass for re-rendering (Apple and Google Wallet)
  • • Returns a batchId you can use to track the pass update

Request Example

curl -X PUT 'https://app.addtowallet.co/api/manage-users/customers/686d10e7c2f0bc5cdf25c84b' \
  -H 'apikey: your-api-key-here' \
  -H 'Content-Type: application/json' \
  -d '{
  "position": "Senior Software Engineer",
  "department": "Platform Engineering",
  "phone": "+1-555-0125"
}'

Response

On success the API returns a JSON object indicating the customer was updated and whether the linked pass was queued for re-rendering:

Success Response Fields

  • message (string): Human-readable status message. Returns "User updated, pass updation queued" when a pass re-render was queued, or "User updated" when the customer had no linked pass.
  • batchId (string, optional): Returned when a pass re-render was queued. Use it with the Batch Status endpoint to track the update.

Response Example

{
  "message": "User updated, pass updation queued",
  "batchId": "686d111dab9ab557fe3e5644"
}

Tracking the Pass Update

The customer record is updated synchronously, but the wallet pass is re-rendered asynchronously. When a batchId is returned, poll the Batch Status endpoint to check the pass update:

GET /api/v2/batch/status/{batchId}
Error CodeDescription
400Bad Request - Invalid data format or invalid field values.
401Unauthorized - Missing or invalid API key.
403Forbidden - Insufficient permissions for the requested customer.
404Not Found - Customer with the specified ID does not exist.
429Too Many Requests - API rate limit exceeded. Please wait before making additional requests.
500Internal Server Error - Unexpected error during customer or pass update. Please contact support.