Download OpenAPI specification:
API for players using Amusement Connect wallets
Get a player's balance at a location
| playerId required | string <uuid> (playerId) Example: 00000000-0000-0000-0000-000000000001 The unique identifier of the player. |
| locationId required | string (locationId) The unique identifier of the location. |
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
{- "funds": [
- {
- "currency": "USD",
- "amount": 19.5
}
], - "tickets": 5
}Sets the player balance at a location to the desired state.
| playerId required | string <uuid> (playerId) Example: 00000000-0000-0000-0000-000000000001 The unique identifier of the player. |
| locationId required | string (locationId) The unique identifier of the location. |
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
| If-Match | string Default: * Optimistic concurrency control header. When included, the update will only be applied if the ETag value on the resource matches the provided value. |
Array of objects (Money) The player's available funds at this location, broken down by currency. This will set the player's balance to match these values, so any existing funds not included here will be removed and any changes to the amounts of existing currencies will be updated to match. | |
| tickets | number The number of tickets the player has at this location. This will set the player's ticket balance to this value. |
{- "funds": [
- {
- "currency": "USD",
- "amount": 19.5
}
], - "tickets": 5
}{- "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string",
- "errors": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}
}Returns a paginated list of gameplay transactions for a player as tab charges.
Transactions not associated with a tab will have tabId set to null.
| playerId required | string <uuid> (playerId) Example: 00000000-0000-0000-0000-000000000001 The unique identifier of the player. |
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
| skip | integer Example: skip=10 The number of records to skip in the response. If not specified, no records are skipped. |
| take | integer Example: take=10 The maximum number of records to return in the response. If not specified, all records are returned. |
{- "totalCount": 42,
- "items": [
- {
- "tabId": "00000000-0000-0000-0000-000000000003",
- "paymentMethod": "GooglePay",
- "locationId": "1a5515a3-ba81-4a42-aee7-ad9ffc090a54",
- "description": "Gameplay: Pac-Man",
- "addedDateUtc": "2019-08-24T14:15:22Z",
- "amount": 2.5,
- "currency": "USD"
}
]
}Get the list of cards registered to a player's wallet
| playerId required | string <uuid> (playerId) Example: 00000000-0000-0000-0000-000000000001 The unique identifier of the player. |
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
| locationId | string (locationId) Optionally filter the card balances by location Id |
| skip | integer Example: skip=10 The number of records to skip in the response. If not specified, no records are skipped. |
| take | integer Example: take=10 The maximum number of records to return in the response. If not specified, all records are returned. |
{- "totalCount": 3,
- "items": [
- {
- "rfid": "0715468881",
- "cardLife": 1,
- "displayName": "πΎπΎπΎ",
- "location": {
- "id": 5,
- "name": "AC Arcade"
}, - "balance": {
- "credits": 100,
- "tickets": 40
}
}, - {
- "rfid": "0715468881",
- "cardLife": 1,
- "displayName": "πΎπΎπΎ",
- "location": {
- "id": 195,
- "name": "AC DevX Group Location"
}, - "balance": {
- "credits": 250,
- "tickets": 75
}
}, - {
- "rfid": "0715468883",
- "cardLife": 2,
- "displayName": null,
- "location": {
- "id": 5,
- "name": "AC Arcade"
}, - "balance": {
- "credits": 0,
- "tickets": 0
}
}
]
}Register a card to a player's wallet
| playerId required | string <uuid> (playerId) Example: 00000000-0000-0000-0000-000000000001 The unique identifier of the player. |
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
| rfid required | string (rfid) ^((\d{10})|(\+\d{11,13}))$ The unique identifier of the RFID card. This should be derived from the 4 byte UID of the RFID card as a 32 bit integer and formatted to a 10 digit string. For example the UID of 0x5130A52A would be converted to "0715468881" |
| displayName | string or null |
{- "rfid": "0715468881",
- "displayName": "My Card"
}{- "rfid": "0715468881",
- "cardLife": 1
}Get a specific card registered to a player's wallet
| playerId required | string <uuid> (playerId) Example: 00000000-0000-0000-0000-000000000001 The unique identifier of the player. |
| cardNumber required | string (rfid) ^((\d{10})|(\+\d{11,13}))$ Example: 0715468881 The unique identifier of the card. |
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
| locationId | string (locationId) Optionally filter the card balances by location Id |
| skip | integer Example: skip=10 The number of records to skip in the response. If not specified, no records are skipped. |
| take | integer Example: take=10 The maximum number of records to return in the response. If not specified, all records are returned. |
{- "totalCount": 3,
- "items": [
- {
- "rfid": "0715468881",
- "cardLife": 1,
- "displayName": "πΎπΎπΎ",
- "location": {
- "id": 5,
- "name": "AC Arcade"
}, - "balance": {
- "credits": 100,
- "tickets": 40
}
}, - {
- "rfid": "0715468881",
- "cardLife": 1,
- "displayName": "πΎπΎπΎ",
- "location": {
- "id": 195,
- "name": "AC DevX Group Location"
}, - "balance": {
- "credits": 250,
- "tickets": 75
}
}, - {
- "rfid": "0715468883",
- "cardLife": 2,
- "displayName": null,
- "location": {
- "id": 5,
- "name": "AC Arcade"
}, - "balance": {
- "credits": 0,
- "tickets": 0
}
}
]
}Update the players card settings
| playerId required | string <uuid> (playerId) Example: 00000000-0000-0000-0000-000000000001 The unique identifier of the player. |
| cardNumber required | string (rfid) ^((\d{10})|(\+\d{11,13}))$ Example: 0715468881 The unique identifier of the card. |
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
| displayName | string |
{- "displayName": "My Card"
}{- "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string",
- "errors": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}
}Unregister a card from a player's wallet
| playerId required | string <uuid> (playerId) Example: 00000000-0000-0000-0000-000000000001 The unique identifier of the player. |
| cardNumber required | string (rfid) ^((\d{10})|(\+\d{11,13}))$ Example: 0715468881 The unique identifier of the card. |
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
{- "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string",
- "errors": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}
}Get the list of available game categories at a location
| locationId required | string (locationId) The unique identifier of the location. |
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
{- "categories": [
- "Pinball",
- "Redemption",
- "Sports",
- "Ski-Ball",
- "Racing",
- "Basketball",
- "Darts",
- "Pool",
- "Crane"
]
}Get the list of games available at a location to play
| locationId required | string (locationId) The unique identifier of the location. |
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
| search | string or null <= 100 characters Example: search=Racing Optional search term to filter games by name or description. |
| category | Array of strings[ items <= 30 characters ] Example: category=Pinball |
| skip | integer Example: skip=10 The number of records to skip in the response. If not specified, no records are skipped. |
| take | integer Example: take=10 The maximum number of records to return in the response. If not specified, all records are returned. |
{- "totalCount": 50,
- "items": [
- {
- "id": "00000000-0000-0000-0000-000000000000",
- "name": "Racing Madness",
- "category": "Racing",
- "image": {
}, - "play": {
- "creditsToPlay": 5
}
}, - {
- "id": "00000000-0000-0000-0000-000000000001",
- "name": "Space Invaders",
- "category": "Shooter",
- "image": {
}, - "play": {
- "costToPlay": [
- {
- "option": 1,
- "amount": 3,
- "currency": "USD"
}, - {
- "option": 2,
- "amount": 8,
- "currency": "USD"
}
]
}
}, - {
- "id": "00000000-0000-0000-0000-000000000002",
- "name": "Haunted House",
- "category": "Attraction",
- "image": {
}, - "play": {
- "attractionId": 101,
- "attractionGroupIds": [
- 1,
- 2
]
}
}
]
}Get details for a game at a location. Includes pricing information, images, descriptions, and other details.
| locationId required | string (locationId) The unique identifier of the location. |
| gameId required | string <uuid> The unique identifier of the game machine. |
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
{- "id": "123e4567-e89b-12d3-a456-426614174000",
- "name": "Racing Madness",
- "category": "Racing",
- "image": {
}, - "play": {
- "allowTimedPlay": true,
- "creditsToPlay": 10,
- "costToPlay": [
- {
- "option": 1,
- "amount": 1,
- "currency": "USD",
- "title": "Single Play",
- "description": "Play the game once for 1 credit.",
- "type": "cash"
}, - {
- "option": 2,
- "amount": 1.75,
- "currency": "USD",
- "title": "Double Play",
- "description": "Play the game twice for 1.75 credits.",
- "type": "cash"
}
]
}
}Attempt to start a gameplay session
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
| gameMachineId | string The unique identifier of the game machine to start. |
| idempotencyKey | string or null <uuid> A unique identifier for the request to prevent reattempted requests from causing duplicate game starts. |
| startMethod | string or null Default: "Remote" Enum: "Remote" "Http" The method used to start the game.
|
object (GameplayRequestCard) Information about the card to be used for gameplay request. Players requesting gameplay must have the card registered to them to be able to use it for gameplay. | |
object (GameplayRequestPartner) Information about the partner starting the gameplay session. | |
object (GameplayRequestPlayer) Information about the player starting the gameplay session. | |
object (GameplayRequestPayment) Payment method for the gameplay session.
Provide either | |
GameplayRequestCreditPlay (object) or GameplayRequestPartnerPlay (object) The play options for the gameplay session. |
{- "readerId": "string",
- "idempotencyKey": "0c14c6a6-6f50-4d1e-b0c4-b46ff43ba6a1",
- "startMethod": "Remote",
- "card": {
- "rfid": "0715468881",
- "life": 0
}, - "partner": {
- "locationId": "string",
- "transactionId": "string"
}, - "player": {
- "id": "string",
- "userName": "string",
- "displayName": "string",
- "firstName": "string",
- "lastName": "string",
- "email": "user@example.com",
- "phoneNumber": "string",
- "dateOfBirth": "2019-08-24",
- "gender": "string",
- "postalCode": "string"
}, - "payment": {
- "paymentId": "string",
- "digitalWalletPaymentToken": "string",
- "digitalWalletPaymentMethod": "GooglePay"
}, - "play": {
- "expectedCreditAmount": 10,
- "option": null
}
}{- "gameplaySessionId": "d3cf0135-6184-4e1e-a631-b6e34bd0a313",
- "balance": {
- "credits": 100,
- "tickets": 5,
- "tab": {
- "id": "00000000-0000-0000-0000-000000000003",
- "status": "Open",
- "openedAtUtc": "2019-08-24T14:15:22Z",
- "closedAtUtc": "2019-08-24T14:15:22Z",
- "limit": 0.1,
- "autoCloseAtUtc": "2019-08-24T14:15:22Z",
- "creditsUsed": 0,
- "valueUsed": {
- "amount": 20,
- "currency": "USD"
}, - "tabProvider": "My Tab Provider",
- "externalTabId": "ext-tab-123456789"
}, - "timedPlay": {
- "id": 2313581,
- "startTimeUtc": "2026-01-01T00:00:00Z",
- "endTimeUtc": "2026-01-01T01:00:00Z",
- "remaining": "00:02:00",
- "isPaused": false,
- "isStarted": true,
- "pausedAtUtc": "2026-01-01T00:00:00Z",
- "pausesRemaining": 3,
- "pauseExpiresAtUtc": "2026-01-01T00:00:00Z"
}, - "timedPlaySessions": [
- {
- "id": 2313581,
- "startTimeUtc": "2026-01-01T00:00:00Z",
- "endTimeUtc": "2026-01-01T01:00:00Z",
- "remaining": "00:02:00",
- "isPaused": false,
- "isStarted": true,
- "pausedAtUtc": "2026-01-01T00:00:00Z",
- "pausesRemaining": 3,
- "pauseExpiresAtUtc": "2026-01-01T00:00:00Z"
}
], - "attractions": [
- {
- "id": 0,
- "type": "attraction",
- "name": "Roller Coaster",
- "description": "string",
- "passes": 1
}
]
}, - "creditsUsed": 0,
- "player": {
- "id": "00000000-0000-0000-0000-000000000001",
- "username": "exampleuser@example.com",
- "alias": "zezima",
- "universalCredits": 150,
- "funds": [
- {
- "amount": 20,
- "currency": "USD"
}
], - "tickets": 0.1
}, - "failureReason": "string",
- "playInstruction": {
- "text": "string",
- "images": [
- {
- "id": "string",
- "name": "string",
- "format": "string",
- "width": 0,
- "height": 0,
- "sequence": 0
}
]
}
}Get the card and credit pricing options for location
| locationId required | string (locationId) The unique identifier of the location. |
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
| includePackages | boolean Whether to include the available packages for the location in the response. If not provided, the packages will not be included. |
{- "credits": {
- "creditsPerDollar": 100,
- "bonusCredits": [
- {
- "thresholdAmount": 10,
- "bonusCredits": 100,
- "cumulativeBonusCredits": 100
}, - {
- "thresholdAmount": 20,
- "bonusCredits": 250,
- "cumulativeBonusCredits": 350
}, - {
- "thresholdAmount": 50,
- "bonusCredits": 700,
- "cumulativeBonusCredits": 1050
}
]
}, - "packages": [
- {
- "packageId": 1,
- "name": "$10 | 1000 Credits",
- "description": "A package that includes 1000 credits for $10.",
- "sortOrder": 1,
- "price": {
- "amount": 10,
- "currency": "USD"
}, - "tax": {
- "amount": 1,
- "currency": "USD"
}, - "includedCardCount": 1,
- "maxAdditionalCards": 5,
- "pricePerAdditionalCard": {
- "amount": 9,
- "currency": "USD"
}, - "creditsIncluded": 1000,
- "ticketsIncluded": 0,
- "attractionsIncluded": [ ]
}, - {
- "packageId": 2,
- "name": "$50 | 8000 Credits, 1 VR Session, and 1 Go Kart Ride",
- "description": "A package that includes 8000 credits, 1 VR session, and 1 Go-Kart Ride for $50",
- "sortOrder": 2,
- "price": {
- "amount": 50,
- "currency": "USD"
}, - "tax": {
- "amount": 5,
- "currency": "USD"
}, - "includedCardCount": 1,
- "maxAdditionalCards": 2,
- "pricePerAdditionalCard": {
- "amount": 45,
- "currency": "USD"
}, - "creditsIncluded": 8000,
- "ticketsIncluded": 0,
- "attractionsIncluded": [
- {
- "name": "VR Session",
- "description": "A virtual reality experience.",
- "sortOrder": 1,
- "passesIncluded": 1,
- "groupId": 100,
- "attractions": [
- {
- "id": 200,
- "gameMachineId": "00000000-0000-0000-0000-000000000200"
}, - {
- "id": 201,
- "gameMachineId": "00000000-0000-0000-0000-000000000201"
}, - {
- "id": 202,
- "gameMachineId": "00000000-0000-0000-0000-000000000202"
}
]
}, - {
- "name": "XTREAM GO KARTS",
- "description": "An exciting go-kart race",
- "sortOrder": 2,
- "passesIncluded": 1,
- "id": 250,
- "gameMachineId": "00000000-0000-0000-0000-000000000250"
}
]
}, - {
- "packageId": 3,
- "name": "$100 | Bring a friend all day special",
- "description": "A package that includes timed play all day for you and a friend for $100",
- "sortOrder": 3,
- "price": {
- "amount": 100,
- "currency": "USD"
}, - "tax": {
- "amount": 10,
- "currency": "USD"
}, - "includedCardCount": 2,
- "maxAdditionalCards": 2,
- "pricePerAdditionalCard": {
- "amount": 49.99,
- "currency": "USD"
}, - "creditsIncluded": 0,
- "ticketsIncluded": 0,
- "timedPlayIncluded": {
- "durationMinutes": 480,
- "startType": "Immediate"
}, - "attractionsIncluded": [ ]
}
]
}Create a new card transaction at a location Adds a new transaction to for adding to a cards balance at this location. Option 1 - Price only > calculate base and bonus credits based on location rates and promotions Option 2 - base or bonus credits are supplied, we use those values directly Option 3 - if bonus credits are supplied with a price, we calculate the base credits from location configuration and add the supplied bonus credits on at the end Option 4 - if just bonus credits is supplied, we kick them back and say supply a price or base credits as well. Option 5 - if all 3 are supplied, we push forward the price, but use the exact base and bonus Amounts
| locationId required | string (locationId) The unique identifier of the location. |
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
| whatIf | boolean If true, the transaction will be validated but not actually processed. This can be used to check if a transaction request is valid and see the expected outcome without making any changes to the card balances. |
Array of objects or objects or objects | |
Array of objects or null A list of package purchases made in a single transaction. Each entry in the list represents a purchase of a specific package for a set of card numbers. | |
object or object or (object or null) (CardTransactionPayment) | |
| externalTransactionId | string or null <= 128 characters An optional external identifier for the transaction |
{- "cards": [
- {
- "cardNumber": "0715468881",
- "life": 0,
- "isNewCard": true,
- "credits": {
- "price": 0
}
}
], - "packages": [
- {
- "packageId": 1,
- "quantity": 2,
- "cardNumbers": [
- "1000000001",
- "1000000002"
]
}, - {
- "packageId": 2,
- "cardNumbers": [
- "1000000003"
]
}
], - "payment": {
- "currencyCode": "string",
- "amount": 0,
- "denominations": {
- "ones": 0,
- "fives": 0,
- "tens": 0,
- "twenties": 0,
- "fifties": 0,
- "hundreds": 0
}
}, - "externalTransactionId": "string"
}{- "cardTransactionId": "00000000-0000-0000-0000-000000000002"
}Refund a card transaction by its ID at a location. Reverses the effects of the original transaction, removing any credits, tickets, timed play, or attractions purchased.
| locationId required | string (locationId) The unique identifier of the location. |
| cardTransactionId required | string <uuid> (cardTransactionId) Example: 00000000-0000-0000-0000-000000000002 The unique identifier of the card transaction. |
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
{- "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string",
- "errors": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}
}Get the balance for a card at a specific location
| locationId required | string (locationId) The unique identifier of the location. |
| cardNumber required | string (rfid) ^((\d{10})|(\+\d{11,13}))$ Example: 0715468881 The unique identifier of the card. |
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
{- "credits": 100,
- "tickets": 5,
- "tab": {
- "id": "00000000-0000-0000-0000-000000000003",
- "status": "Open",
- "openedAtUtc": "2019-08-24T14:15:22Z",
- "closedAtUtc": "2019-08-24T14:15:22Z",
- "limit": 0.1,
- "autoCloseAtUtc": "2019-08-24T14:15:22Z",
- "creditsUsed": 0,
- "valueUsed": {
- "amount": 20,
- "currency": "USD"
}, - "tabProvider": "My Tab Provider",
- "externalTabId": "ext-tab-123456789"
}, - "timedPlay": {
- "id": 2313581,
- "startTimeUtc": "2026-01-01T00:00:00Z",
- "endTimeUtc": "2026-01-01T01:00:00Z",
- "remaining": "00:02:00",
- "isPaused": false,
- "isStarted": true,
- "pausedAtUtc": "2026-01-01T00:00:00Z",
- "pausesRemaining": 3,
- "pauseExpiresAtUtc": "2026-01-01T00:00:00Z"
}, - "timedPlaySessions": [
- {
- "id": 2313581,
- "startTimeUtc": "2026-01-01T00:00:00Z",
- "endTimeUtc": "2026-01-01T01:00:00Z",
- "remaining": "00:02:00",
- "isPaused": false,
- "isStarted": true,
- "pausedAtUtc": "2026-01-01T00:00:00Z",
- "pausesRemaining": 3,
- "pauseExpiresAtUtc": "2026-01-01T00:00:00Z"
}
], - "attractions": [
- {
- "id": 0,
- "type": "attraction",
- "name": "Roller Coaster",
- "description": "string",
- "passes": 1
}
], - "location": {
- "id": 123,
- "name": "Amusement Park"
}
}Charge a card balance to an open tab at the location. This will add a new charge to the tab for the specified amount and deduct the amount from the card balance. The tab must be open and associated with the card at this location for the charge to be successful.
| locationId required | string (locationId) The unique identifier of the location. |
| cardNumber required | string (rfid) ^((\d{10})|(\+\d{11,13}))$ Example: 0715468881 The unique identifier of the card. |
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
| transactionId required | string The unique identifier to associate the charge with. |
required | object (CardChargeToLocationTabCostToPlayRequestModel) |
required | object (CardChargeToLocationTabGameMachineRequestModel) |
{- "transactionId": "string",
- "costToPlay": {
- "gameplayCreditsRequired": 10,
- "costMultiplier": 1
}, - "gameMachine": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "mercyTickets": 0.1,
- "game": {
- "id": 0,
- "name": "string",
- "category": "string"
}, - "device": {
- "id": "string",
- "type": "string"
}
}
}{- "success": true,
- "externalId": "ext-charge-123456789",
- "ticketBalance": 10,
- "player": {
- "id": "00000000-0000-0000-0000-000000000001",
- "externalId": "string",
- "realm": "string",
- "username": "zezima",
- "name": "First Last",
- "email": "user@example.com",
- "phone": "string",
- "birthDate": "1990-01-01"
}
}Get the balance for a card at a specific location
| locationId required | string (locationId) The unique identifier of the location. |
| cardNumber required | string (rfid) ^((\d{10})|(\+\d{11,13}))$ Example: 0715468881 The unique identifier of the card. |
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
{- "credits": 100,
- "tickets": 5,
- "tab": {
- "id": "00000000-0000-0000-0000-000000000003",
- "status": "Open",
- "openedAtUtc": "2019-08-24T14:15:22Z",
- "closedAtUtc": "2019-08-24T14:15:22Z",
- "limit": 0.1,
- "autoCloseAtUtc": "2019-08-24T14:15:22Z",
- "creditsUsed": 0,
- "valueUsed": {
- "amount": 20,
- "currency": "USD"
}, - "tabProvider": "My Tab Provider",
- "externalTabId": "ext-tab-123456789"
}, - "timedPlay": {
- "id": 2313581,
- "startTimeUtc": "2026-01-01T00:00:00Z",
- "endTimeUtc": "2026-01-01T01:00:00Z",
- "remaining": "00:02:00",
- "isPaused": false,
- "isStarted": true,
- "pausedAtUtc": "2026-01-01T00:00:00Z",
- "pausesRemaining": 3,
- "pauseExpiresAtUtc": "2026-01-01T00:00:00Z"
}, - "timedPlaySessions": [
- {
- "id": 2313581,
- "startTimeUtc": "2026-01-01T00:00:00Z",
- "endTimeUtc": "2026-01-01T01:00:00Z",
- "remaining": "00:02:00",
- "isPaused": false,
- "isStarted": true,
- "pausedAtUtc": "2026-01-01T00:00:00Z",
- "pausesRemaining": 3,
- "pauseExpiresAtUtc": "2026-01-01T00:00:00Z"
}
], - "attractions": [
- {
- "id": 0,
- "type": "attraction",
- "name": "Roller Coaster",
- "description": "string",
- "passes": 1
}
], - "location": {
- "id": 123,
- "name": "Amusement Park"
}
}Charge a card balance to an open tab at the location. This will add a new charge to the tab for the specified amount and deduct the amount from the card balance. The tab must be open and associated with the card at this location for the charge to be successful.
| locationId required | string (locationId) The unique identifier of the location. |
| cardNumber required | string (rfid) ^((\d{10})|(\+\d{11,13}))$ Example: 0715468881 The unique identifier of the card. |
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
| transactionId required | string The unique identifier to associate the charge with. |
required | object (CardChargeToLocationTabCostToPlayRequestModel) |
required | object (CardChargeToLocationTabGameMachineRequestModel) |
{- "transactionId": "string",
- "costToPlay": {
- "gameplayCreditsRequired": 10,
- "costMultiplier": 1
}, - "gameMachine": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "mercyTickets": 0.1,
- "game": {
- "id": 0,
- "name": "string",
- "category": "string"
}, - "device": {
- "id": "string",
- "type": "string"
}
}
}{- "success": true,
- "externalId": "ext-charge-123456789",
- "ticketBalance": 10,
- "player": {
- "id": "00000000-0000-0000-0000-000000000001",
- "externalId": "string",
- "realm": "string",
- "username": "zezima",
- "name": "First Last",
- "email": "user@example.com",
- "phone": "string",
- "birthDate": "1990-01-01"
}
}Generates a scoped, single-use session token for initializing the Payroc Hosted Fields JS library on the client. The session token:
The client passes this token to new Payroc.hostedFields({ sessionToken: ... }).
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
| terminalId | string Override the default processing terminal ID. |
| idempotencyKey | string Client-supplied key to deduplicate requests within 10 minutes. |
{- "sessionToken": "eyJhbGci...",
- "expiresAt": "2026-04-08T18:40:00Z",
- "processingTerminalId": "1234001"
}Vaults a single-use token (captured client-side via Payroc Hosted Fields) into Payroc's secure card vault and persists the card to the player's saved payment methods. No tab or pre-authorization is created.
Use this when you want to save a card on file without immediately
opening a tab β for example, during onboarding before the player
starts a session. To open a tab at the same time, use
/payment/tabs/open/single-use-token instead.
The response includes vaultId and paymentToken β persist the
paymentToken against the player for future tab-open flows using
/payment/tabs/open/secure-token.
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
| locationId required | string Location used to scope the saved payment method. |
| playerId required | string AmusementConnect player ID. |
| singleUseToken required | string Single-use token from Payroc Hosted Fields |
| postalCode required | string Billing postal code for AVS verification. |
| operatorName | string or null Operator or kiosk identifier. |
| terminalId | string or null Override the default processing terminal ID. |
| idempotencyKey | string or null Client-supplied key to deduplicate requests within 10 minutes. |
{- "locationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
- "playerId": "player_xyz",
- "singleUseToken": "296753xxxxxx",
- "postalCode": "12345"
}{- "vaultId": "vault_abc123",
- "paymentToken": "296753112233",
- "maskedCardNumber": "************1234",
- "expiryDate": "0428",
- "cardType": "Visa"
}Performs Apple Pay merchant validation by calling the validationURL
provided by the Apple Pay JS validatemerchant event.
Client-side flow:
ApplePaySession in the browser.onvalidatemerchant handler, POST the event's validationURL
to this endpoint.session.completeMerchantValidation().The backend calls Apple's server using the merchant identity certificate configured in Key Vault. The opaque session object is returned as-is.
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
| appleValidationUrl required | string <uri> The |
| appleDomainId | string or null Override the Apple Pay domain ID configured in Key Vault. If omitted, the server-side default is used. |
| terminalId | string or null Override the default processing terminal ID. |
| idempotencyKey | string or null Client-supplied key to deduplicate requests within 10 minutes. |
{
}{- "epochTimestamp": 1776441992332,
- "expiresAt": 1776445592332,
- "merchantSessionIdentifier": "string",
- "nonce": "string",
- "merchantIdentifier": "string",
- "domainName": "pay-dev.amusementconnect.com",
- "displayName": "Amusement Connect",
- "signature": "string",
- "operationalAnalyticsIdentifier": "string",
- "retries": 0,
- "pspId": "string"
}Returns the player's saved (vaulted) payment methods at a given location. Deleted cards are excluded from the response.
| playerId required | string <uuid> (playerId) Example: 00000000-0000-0000-0000-000000000001 The unique identifier of the player. |
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
| locationId required | string (locationId) The location to scope the saved payment methods to. |
{- "cards": [
- {
- "cardId": "f16ba382-eb42-481a-b08f-c57bdc9aae24",
- "last4": "1234",
- "cardType": "Visa",
- "expirationMonth": 9,
- "expirationYear": 2027,
- "isActive": true,
- "cardHolder": "string",
- "postalCode": "string",
- "secureTokenId": "string",
- "cardNetwork": "Visa"
}
]
}Updates a saved payment method on the player's profile at a location.
If isActive is set to true, all other saved payment methods for the
player at this location will have isActive set to false.
| playerId required | string <uuid> (playerId) Example: 00000000-0000-0000-0000-000000000001 The unique identifier of the player. |
| cardId required | string <uuid> The ID of the saved card. |
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
| locationId required | string (locationId) The location the card belongs to. |
| isActive | boolean Whether this payment method is the active/default one for the player. |
{- "isActive": true
}{- "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string",
- "errors": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}
}Soft-deletes a saved payment method from the player's profile at a location.
The card is marked as deleted and excluded from future getSavedPaymentMethods responses.
| playerId required | string <uuid> (playerId) Example: 00000000-0000-0000-0000-000000000001 The unique identifier of the player. |
| cardId required | string <uuid> The ID of the saved card. |
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
| locationId required | string (locationId) The location the card belongs to. |
{- "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string",
- "errors": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}
}Returns all tabs (all statuses) for a player at a given location, ordered by most recently opened.
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
| playerId required | string <uuid> (playerId) Example: playerId=00000000-0000-0000-0000-000000000001 The player whose tabs to retrieve. |
| locationId required | string <uuid> The location to scope the tab lookup to. |
[- {
- "tabId": "00000000-0000-0000-0000-000000000003",
- "playerId": "00000000-0000-0000-0000-000000000001",
- "locationId": "string",
- "tabName": "string",
- "status": "Open",
- "authorizedAmount": 50,
- "currentCharges": 12.5,
- "openedAtUtc": "2019-08-24T14:15:22Z",
- "closedAtUtc": "2019-08-24T14:15:22Z",
- "secureTokenId": "string",
- "paymentToken": "string"
}
]Returns all gameplay sessions (charges) associated with a tab. Returns 404 if the tab does not exist at the given location.
| tabId required | string <uuid> (tabId) Example: 00000000-0000-0000-0000-000000000003 The tab whose gameplay charges to retrieve. |
| apiVersion | string Default: "1.0" Value: "1.0" The version of the API to use. |
| locationId required | string <uuid> The location the tab belongs to. |
[- {
- "tabId": "00000000-0000-0000-0000-000000000003",
- "paymentMethod": "GooglePay",
- "locationId": "1a5515a3-ba81-4a42-aee7-ad9ffc090a54",
- "description": "Gameplay: Pac-Man",
- "addedDateUtc": "2019-08-24T14:15:22Z",
- "amount": 2.5,
- "currency": "USD"
}
]