openapi: 3.2.0
info:
title: Vibes Platform Wallet Store Locations API
version: 1.0.0
description: Manage the store locations attached to a wallet campaign. Locations drive geofenced lock-screen notifications that remind pass holders about a nearby store.
servers:
- url: https://public-api.vibescm.com
description: North America
- url: https://public-api.eu.vibes.com/
description: EMEA
security:
- basicAuth: []
tags:
- name: Wallet Store Locations API
description: Manage the store locations attached to a wallet campaign. Locations drive geofenced lock-screen notifications that remind pass holders about a nearby store.
paths:
/companies/{company_key}/campaigns/wallet/{token}/locations:
get:
tags:
- Wallet Store Locations API
summary: Get store locations
description: List the store locations attached to a wallet campaign. Results are paginated; use the `page` and `page_size` parameters to page through them.
parameters:
- name: X-API-Version
in: header
schema:
type: string
default: 1
- name: company_key
in: path
schema:
type: string
required: true
- name: token
in: path
schema:
type: string
description: The `token` is the SmartLink token (`wallet_id`) for the campaign.
required: true
- name: page
in: query
description: 1-indexed page number to return.
schema:
type: integer
- name: page_size
in: query
description: Number of locations per page.
schema:
type: integer
- name: zip
in: query
description: Optional filter by zip/postal code (exact match).
schema:
type: string
- name: latitude
in: query
description: Optional filter by latitude (exact match).
schema:
type: string
- name: longitude
in: query
description: Optional filter by longitude (exact match).
schema:
type: string
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/walletLocationsResponse'
'404':
description: The specified campaign does not exist.
/companies/{company_key}/campaigns/wallet/{token}/locations/bulk:
post:
tags:
- Wallet Store Locations API
summary: Bulk create store locations
description: 'Add store locations to a wallet campaign in a single request (up to 1000 per call). The `Idempotency-Key` header is required: repeating a request with the same key returns the original result without inserting duplicates.'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/walletLocationsBulkRequest'
parameters:
- name: X-API-Version
in: header
schema:
type: string
default: 1
- name: Content-Type
in: header
schema:
type: string
example: application/json
required: true
- name: Idempotency-Key
in: header
required: true
description: Unique key (up to 255 characters) that makes the request safe to retry without creating duplicate locations.
schema:
type: string
- name: company_key
in: path
schema:
type: string
required: true
- name: token
in: path
schema:
type: string
required: true
description: The `token` is the SmartLink token (`wallet_id`) for the campaign.