CCI FasCard API Overview
If there are any questions that this document does not answer or are left unclear, send an email with your questions to support@laundrycard.com
Overview
WebAPI is open-ended and supports a variety of mechanisms for connecting and retrieving data. The mobile website/app operates through API data calls. Several other API calls have been implemented to provide a variety of data directly. We use a freely available program called Postman (https://www.getpostman.com) but any tool can be used to interact with API.
Note: Our WebAPI servers only support connections using TLS v1.2 or later. Earlier versions of TLS and SSL are no longer considered secure.
On this page
Getting Connected
Obtain Token
POST
https://m.fascard.com/api/AuthToken
Pass username and password as body to API GET call:
{ "UserName": "myFasCardlogin@email.com", "Password": "myPassword" }
The response will be a unique token identifier for your user/password login:
{ "Token": "abcdefghijklmnopqrstuvwxyz" }
Token usage
After getting an authorization token back from our server you should pass it back in the request headers for any future requests e.g. Authorization: Bearer abcdefghijklmnopqrstuvwxyz
Note that a token will expire after some period of time. If you send a request with an expired token then we will return a 401 Unauthorized (= unauthenticated), and in that case you can simply resubmit the username and password to the AuthToken endpoint to request a new token.
Postman Authentication
- Create a new collection
- Right-click on the collection folder name and select Edit.
- Click the Authorization tab and select the TYPE as ‘Bearer Token’.
- Paste in the Token field.
- Press <Update> button
Available API Calls
Account
GET https://m.fascard.com/api/Account
Account Info for current user
GET https://m.fascard.com/api/Account?MobileApp=xyz
Account Info for current user limited to specific Mobile App
Calling Account GET API
with MobileApp parameter will automatically create any missing SysConfigs tied to that MobileApp that are not already associated with current user. So this call should be done so with discretion and recommended to only be used within app.
Field Name | Type | Description | Notes |
---|---|---|---|
ID | int | Account ID | |
Name | string | Account name | |
Number | string | Account number | |
Employee | bool | User is an employee | |
Scheduled | bool | User is a scheduled employee | |
AcceptAddValueCredit | bool | Add-value by credit allowed | |
AcceptApplePay | bool | Apple Pay accepted | |
AcceptAndroidPay | bool | Android Pay accepted | |
AllowMobileMachineStart | bool | Allow mobile start of machine | |
Balance | Decimal | Account balance ($) | |
Bonus | Decimal | Account bonus ($) | |
LoyaltyPoints | int | Loyalty points | May be NULL if n/a |
LoyaltyPointsTarget | int | Loyalty points target | May be NULL if Loyalty Points feature not active |
LoyaltyPointsAward | Decimal | Loyalty points award | May be NULL if Loyalty Points feature not active |
FreeStarts | int | Free start credits | May be NULL if n/a |
Discount | float | User discount | May be NULL if n/a |
DiscountSource | string | User discount source | |
LastActivityDate | DateTime | Date/time of last activity (UTC) | |
LastLocationID | int | Location Rec ID of last activity | |
UserID | int | User Rec ID | |
UserAccountID | int | UserAccount Rec ID | |
Surcharge | float | Location surcharge | May be NULL if n/a |
SurchargeMode | int | Location surcharge mode | May be NULL if n/a BitMask field (can combine multiple options e.g. 3 = Vend + AddValue) 0 = None |
AllowNotifyMachAvail | bool | Allow push notifications for machine availability | |
MobileApp | Mobile App Data | Mobile App Data | Field Name: Name Type: string Description: Name of MobileApp Notes: |
ReportPrivs | string | Report privileges | Only applicable for Employee account Represented as string containing 0's or 1's with each character correlated with specific report on 1-based index 1 = All reports (overrides individual privs) |
Add-Value Package
GET
https://m.fascard.com/api/AddValuePackage
Retrieve all Add-Value packages available to current user
Field Name | Type | Description | Notes |
---|---|---|---|
ID | int | AddValue Package Rec ID | |
AccountID | int | SysConfig Account ID | |
SpendAmount | Decimal | Amount spent by user | |
BonusAmount | Decimal | Bonus amount awarded |
Cards
GET https://m.fascard.com/api/Card
Cards owned for current user
Field Name | Type | Description | Notes |
---|---|---|---|
ID | int | Card Rec ID | |
Name | string | Card name | |
Number | string | Card number | |
PIN | string | Card PIN | |
CreationDate | DateTime | Creation date (UTC) | |
Deposit | Decimal | Card deposit | |
DepositAccountID | int | SysConfig Account ID for deposit |
Coupons
GET https://m.fascard.com/api/Coupon
Coupons applied to current user
Field Name | Type | Description | Notes |
---|---|---|---|
ID | int | Coupon Rec ID | |
AccountID | int | SysConfig Account ID | |
CouponType | int | Coupon Type | 0 = Join loyalty program |
Name | string | Coupon name | |
Desc | string | Coupon description | |
Code | string | Coupon code | |
Param1 | string | Coupon parameter | |
UserAddDate | DateTime | Date coupon added for user (UTC) | |
EndDate | DateTime | Ending date (UTC) |
Equipment
GET https://m.fascard.com/api/Equip
Equipment available to current user
GET
https://m.fascard.com/api/Equip?LocationID={locID}
Equipment by Location
Field Name | Type | Description | Notes | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ID | int | Equipment Rec ID | |||||||||||||||||
EquipName | string | Equipment name | |||||||||||||||||
EquipClass | int | Equipment class type | 0 = Unknown | ||||||||||||||||
Options | List of EquipOption | Equipment options |
| ||||||||||||||||
SupportsDualPocket | bool | Equipment support dual pocket readers |
Equipment Pricing
GET
https://m.fascard.com/api/Equip/{equipID}/LocationGroup/{locGrpID}/Pricing
Alternative: GET
https://m.fascard.com/api/LocationGroup/{locGrpID}/Equip/{equipID}/Pricing
Retrieve pricing information about a particular equipment at a location group
GET https://m.fascard.com/api/Equip/{equipID}/Location/{locID}/Pricing
Alternative: GET
https://m.fascard.com/api/Location/{locID}/Equip/{equipID}/Pricing
Retrieve pricing information about a particular equipment at a location
POST https://m.fascard.com/api/Equip/{equipID}/LocationGroup/{locGrpID}/Pricing
Alternative: POST
https://m.fascard.com/api/LocationGroup/{locGrpID}/Equip/{equipID}/Pricing
Submit new pricing information about a particular equipment at a location group
POST
https://m.fascard.com/api/Equip/{equipID}/Location/{locID}/Pricing
Alternative: POST
https://m.fascard.com/api/Location/{locID}/Equip/{equipID}/Pricing
Submit new pricing information about a particular equipment at a location. Note this will only be accepted if single Location in LocationGroup
Requirements: Account Admin or 'Equipment Setup' privilege
Field Name | Type | Description | Notes | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DefaultPrices | List of Option Prices | Default option prices |
For prices to default to free, can specify with OptionPrice as 0.00 or simply do not include | ||||||||||||||||||||||||||||||||
Schedule | List of Scheduled Options | Scheduled options |
For prices that match default, can specify with OptionPrice matching default or simply do not include |
Equipment Pricing&Features Schedules
GET
https://m.fascard.com/api/Equip/{equipID}/Schedule/{locID}
Alternative: GET
https://m.fascard.com/api/Equip/{equipID}/Location/{locID}/Schedule
Alternative: GET
https://m.fascard.com/api/Location/{locID}/Equip/{equipID}/Schedule
Retrieve pricing and feature schedule information about a particular equipment at a location
Requirements: Account Admin or 'Equipment Setup' privilege
Field Name | Type | Description | Notes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
EquipID | int | Equipment Rec ID | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LocationID | int | Location Rec ID | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DefaultTime | int | First time at which all options are at their defaults | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Schedule | List of EquipOption | Equipment schedules |
|
Feedback
POST
https://m.fascard.com/api/Feedback
Submit an issue or feedback. Email sent to employee(s) with "IssueNotify" role and if none then to all customer admins. If Location not specified then email sent to FasCard support monitored email box.
Field Name | Type | Description | Notes |
---|---|---|---|
Type | int | Issue type | 0 = Other 1 = Location 2 = Machine 3 = Reader 4 = Employee 5 = App |
Desc | string | Issue / feedback description | |
DeviceType | int | Device type | 0 = Unknown |
DeviceVer | string | Device version | |
AppVer | string | App version | |
AppName | string | App name | |
LocationID | int | Location Rec ID | This is required for all types other than 'App' |
MachNo | int | Machine number |
Location
GET
https://m.fascard.com/api/Location
Locations available to current user
GET
https://m.fascard.com/api/Location/{locID}
Location by ID
Field Name | Type | Description | Notes | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ID | int | Location Rec ID | |||||||||||||||||||||||||
AccountID | int | SysConfig Account ID | |||||||||||||||||||||||||
LocationGroupID | int | LocationGroup ID | |||||||||||||||||||||||||
Enabled | bool | Location is enabled | |||||||||||||||||||||||||
Name | string | Location name | |||||||||||||||||||||||||
Addr1 | string | Address #1 | |||||||||||||||||||||||||
Addr2 | string | Address #2 | |||||||||||||||||||||||||
City | string | City | |||||||||||||||||||||||||
State | string | State | |||||||||||||||||||||||||
ZipCode | string | Zip code | |||||||||||||||||||||||||
Phone | string | Location phone number | |||||||||||||||||||||||||
Amenities | string | Location amenities | |||||||||||||||||||||||||
TimeZone | string | Location time zone | |||||||||||||||||||||||||
Latitude | Decimal | Location address latitude | May be 0.0 if incomplete address | ||||||||||||||||||||||||
Longitude | Decimal | Location address longitude | |||||||||||||||||||||||||
LogoImageExists | bool | Image exists for location or Account | |||||||||||||||||||||||||
ThemeColor1 | string | Branding theme color #1 | Colors stored as hex color code e.g. "#1c2e53" (always 7 characters with leading '#' char) | ||||||||||||||||||||||||
ThemeColor2 | string | Branding theme color #2 | |||||||||||||||||||||||||
CouponExists | bool | One or more coupons exist for location | |||||||||||||||||||||||||
RegOpts | Registration Options | Required registration options |
|
Location Logo
GET
https://m.fascard.com/api/Location/{locID}/LogoImage
This returns the raw binary data of the location's logo image or falls back to Account's logo image. It is represented as base64 data and can be displayed through html: <img src="data:image;base64,{{response}}" />
LocationGroup
GET
https://m.fascard.com/api/LocationGroup
LocationGroups available to current user
GET
https://m.fascard.com/api/LocationGroup/{locGrpID}
LocationGroup by ID
Field Name | Type | Description | Notes |
---|---|---|---|
ID | int | LocationGroup ID | |
AccountID | int | SysConfig Account ID | |
Name | string | LocationGroup name |
Machine
GET
https://m.fascard.com/api/Machine
Machines active for current user
GET
https://m.fascard.com/api/Machine?MachineID={machID}
Alternative: GET https://m.fascard.com/api/Machine/{machID}
Machine by ID
GET
https://m.fascard.com/api/Machine?LocationID={locID}
Machines at location
Field Name | Type | Description | Notes |
---|---|---|---|
ID | int | Machine Rec ID | |
LocationID | int | Location Rec ID | |
MachNo | string | Machine number | |
Label | string | Machine label | |
EquipID | int | Equipment Rec ID | |
Status | int | Machine status code | 0 = Machine offline |
Enabled | bool | Machine enabled | |
VendAllowed | bool | Machine vend allowed | |
UserActive | bool | User is active on machine | |
FinishTime | DateTime | Estimated finish time (UTC) | |
Price | Decimal | Current start price | |
Model | string | Model number | |
SerialNumber | string | Serial number | |
InServiceDate | DateTime | In-Service date (UTC) | |
LastServiceDate | DateTime | Last service date (UTC) | |
Notes | string | Machine notes | |
PairedMachineID | int | Paired Machine Rec ID | null = no pair |
int | Pocket Configuration | null = no pocket configuration 1 = Top pocket 2 = Bottom pocket | |
WifiAffinity | int | Reader wifi affinity index | null = None assigned 1-4 = Assigned affinity |
Machine Edit
POST
https://m.fascard.com/api/Machine/{machID}
Request to edit values for a specific machine.
Raw Body must be provided with request details consisting of one or more of the following editable fields. Response will be returned as Machine GET.
Name | Type | Description | Notes |
---|---|---|---|
Label | string | Machine label | Limited to 32 characters |
Model | string | Model number | Limited to 50 characters |
SerialNumber | string | Serial number | Limited to 50 characters |
InServiceDate | DateTime | In-Service date (UTC) | Needs to be in ISO 8601 format YYYY-MM-DDThh:mm:ss |
LastServiceDate | DateTime | Last service date (UTC) | |
Enabled | bool | Machine enabled | |
Notes | string | Machine notes |
See example requests below:
{ "Label": "Washer1", "LastServiceDate": "2020-10-31T00:00:00" }
Machine History
GET
https://m.fascard.com/api/Machine/{machID}/History
Retrieve machine status history for a particular machine. Similar to admin site, only changes in status or error codes will be listed. Default 60 change records.
Alternative:
GET
https://m.fascard.com/api/Machine/{machID}/History?Limit={rec limit}
Numbers of records returned limited to specified 'Limit' parameter with a set max of 1000.
Field Name | Type | Description | Notes | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ID | long | MachineStatus Rec ID | |||||||||||||
MachineID | int | Machine Rec ID | |||||||||||||
SatelliteID | int | Satellite Rec ID | |||||||||||||
SatelliteName | string | Satellite name | |||||||||||||
Status | int | Status code | 0 = Machine offline | ||||||||||||
StatusText | string | Status text | Text description of Status Code | ||||||||||||
StatusTime | DateTime | Time of reported status (UTC) | |||||||||||||
MACAddr | string | MAC address | |||||||||||||
FirmwareVersion | int | Firmware version | Integer representation of version # e.g. 10413 = v1.04.13 | ||||||||||||
HardwareVersion | int | Hardware version |
| ||||||||||||
StartTime | DateTime | Start time (UTC) | |||||||||||||
FinishTime | DateTime | Finish time (UTC) | |||||||||||||
RdrWifiStrength | int | Reader wi-fi strength (dB) | |||||||||||||
SatWifiStrength | int | Satellite wi-fi strength (dB) | |||||||||||||
CoinCount | int | Coin count | |||||||||||||
CoinAmount | Decimal | Coin amount | |||||||||||||
CoinCount2 | int | Coin count 2 | Only used for dual-pocket F2 reader | ||||||||||||
CoinAmount2 | Decimal | Coin amount 2 | |||||||||||||
CardType | int | Card type | 0 = Undefined 1 = Laundry 2 = Credit 3 = User Token | ||||||||||||
UserID | int | User Rec ID | |||||||||||||
MaintError | int | Maintenance machine error code | 0 = Machine OK | ||||||||||||
MlvMachError | int | MLV machine error code | |||||||||||||
MlvMachCode | int | MLV machine error code | Equipment type specific error code |
Satellite
GET https://m.fascard.com/api/Satellite
Satellites accessible for current user
GET https://m.fascard.com/api/Satellite/{satID}
Satellite by ID
GET https://m.fascard.com/api/Satellite?LocationID={locID}
Satellites at location
Field Name | Type | Description | Notes |
---|---|---|---|
ID | int | Satellite Rec ID | |
LocationID | int | Location Rec ID | |
Name | string | Satellite name | |
MACAddr | string | MAC address | |
FirmwareVersion | int | Firmware version | Integer representation of version # e.g. 12001 = v1.20.01 |
Status | string | Satellite current status | "Online" or "Offline" |
StatusTime | DateTime | Last status update (UTC) | |
StartupTime | DateTime | Hardware startup time (UTC) | |
VPNConnectTime | DateTime | VPN connection time (UTC) | |
StatusChangeTime | DateTime | Time of reported status (UTC) | May be NULL if number of satellites ≥ 5 as this data lookup is expensive (i.e. time consuming to gather) |
VPNIPv4Addr | string | VPN address | Value only as current as StatusTime indicates |
PublicIPv4Addr | string | Last known public IP address | Value only as current as StatusTime indicates |
OSMachine | string | Machine OS description | |
UptimeDay | int | Percentage uptime in last 24 hours | May be NULL if n/a |
UptimeWeek | int | Percentage uptime in last 7 days | May be NULL if n/a |
DisconnectsDay | int | Number of disconnects in last 24 hours | May be NULL if n/a |
DisconnectsWeek | int | Number of disconnects in last 7 days | May be NULL if n/a |
WifiFreqChan | int | Reader wifi frequency channel | 1 ~ 2412 MHz 6 ~ 2437 MHz 11 ~ 2462 MHZ |
WifiAffinity | int | Reader wifi affinity index | null = None assigned 1-4 = Assigned affinity |
ReadersOnline | int | Number of readers online | Value only as current as StatusTime indicates |
ReadersDefined | int | Number of readers defined | Value only as current as StatusTime indicates |
ReadersAssigned | int | Number of readers assigned affinity for this satellite | |
UplinkStatus | int[3] | Array of Uplink (1-3) status codes | Value only as current as StatusTime indicates 0 = Status unknown |
ProcessorLoad | int | Processor load | Value only as current as StatusTime indicates Percentage (0-100) |
FasSatMemoryUsage | int | FasSat memory usage | Value only as current as StatusTime indicates bytes |
Satellite History
GET
https://m.fascard.com/api/Satellite/{satID}/History
Retrieve satellite status history for a particular satellite. Similar to admin site, only changes in status or uplinks will be listed. Default 20 change records.
Alternative:
GET
https://m.fascard.com/api/Satellite/{satID}/History?Limit={rec limit}
Numbers of records returned limited to specified 'Limit' parameter with a set max of 1000.
Field Name | Type | Description | Notes |
---|---|---|---|
ID | long | SatelliteStatus Rec ID | |
SatelliteID | int | SatelliteRec ID | |
Status | int | Status code | 0 = Offline |
StatusTime | DateTime | Time of reported status (UTC) | |
FirmwareVersion | int | Firmware version | Integer representation of version # e.g. 12001 = v1.20.01 |
OSMachine | string | Machine OS description | |
StartupTime | DateTime | Hardware startup time (UTC) | |
VPNConnectTime | DateTime | VPN connection time (UTC) | |
VPNIPv4Addr | string | VPN address | Value only as current as StatusTime indicates |
PublicIPv4Addr | string | Last known public IP address | Value only as current as StatusTime indicates |
ReadersOnline | int | Number of readers online | Value only as current as StatusTime indicates |
ReadersDefined | int | Number of readers defined | Value only as current as StatusTime indicates |
UplinkStatus | int[3] | Array of Uplink (1-3) status codes | Value only as current as StatusTime indicates 0 = Status unknown |
ProcessorLoad | int | Processor load | Value only as current as StatusTime indicates Percentage (0-100) |
FasSatMemoryUsage | int | FasSat memory usage | Value only as current as StatusTime indicates bytes |
System Statistics
GET
https://m.fascard.com/api/SysStats?Types={commaList}&MinDateTime={start}&MaxDateTime={end}&Interval{seconds}
Alternative to retrieve latest record:
GET
https://m.fascard.com/api/SysStats?Types={commaList}
This is only available for Support Admins
Retrieve system statistics of specified type(s). Types are specified in comma delimited list. When requesting multiple types, the records will be returned in type groups.
Do not include MinDateTime and MaxDateTime in order to get latest record. Otherwise set MinDateTime and MaxDateTime to the desired range. If desiring oldest records up to certain point, leave out MinDateTime and only set MaxDateTime. Alternatively if desiring newest records from a certain point, leave out MaxDateTime and only set MinDateTime.
Interval is defined in number of seconds. Do not include to leave returned data as original recorded period. If specifying custom interval, the return data will be aggregated to best meet the requested interval. For example with data collected every 10 seconds and a requested interval of 60 seconds, then each returned data structure will be comprised of combining 6 data points. If requesting too small of an interval then the data will be returned as original with actual duration.
Field Name | Type | Description | Notes |
---|---|---|---|
Types | int | Comma delimited list of desired statistical types | (Can combine one or more types) Refer to listing for all types and descriptions |
Start | DateTime | Start time of period (UTC) | |
Duration | float | Period duration in seconds | |
Value | float | Statistical value |
Transactions
GET https://m.fascard.com/api/Transact?AccountID={AccountID}&UserAccountID={UserAccount ID or 0 for all}&Limit={rec limit}&lastID={previous ID}&Older={true/false}
Retrieve all or specific user account associated with specified AccountID. Numbers of records returned limited to specified 'Limit' parameter with a set max of 1000. Use 'LastID' parameter to resume from previous ID. Use 'Older' parameter set to True for retrieving records prior to 'LastID' and set to False for records following 'LastID'. Records will always be returned in descending order.
Requirements: Account Admin or 'Reports' privilege
Field Name | Type | Description | Notes |
---|---|---|---|
ID | long | Transaction Rec ID | |
RdrTransID | int | Reader transaction ID | |
AccountID | int | SysConfig Account ID | |
DateTime | DateTime | Transaction time (UTC) | |
TransType | int | Transaction type | |
TransSubType | int | Transaction sub-type | Transaction Types & SubTypes |
LocationID | int | Location Rec ID | |
MachNo | int | Machine number | |
CashAmount | Decimal | Amount of cash | |
CreditCardNumber | string | Credit card number (last 4 digits) | May be NULL if card type NOT credit |
CreditCardAmount | Decimal | Amount spent on credit card | |
LoyaltyCardNumber | string | Loyalty card number | May be NULL if card type NOT loyalty |
BalanceAmount | Decimal | Change in balance | |
BonusAmount | Decimal | Change in bonus | |
LoyaltyPoints | int | Change in loyalty points | |
FreeStarts | int | Change in free starts | |
NewBalance | Decimal | New loyalty balance after transaction | |
NewBonus | Decimal | New loyalty bonus after transaction | |
AdditionalInfo | string | Additional info | |
UserAccountID | int | UserAccount Rec ID | |
CreditCardName | string | Name on credit card | May be NULL if card type NOT credit |
EmployeeUserID | int | Employee User Rec ID | |
NewFreeStarts | int | New Free Starts after transaction | |
NewLoyaltyPoints | int | New Loyalty Points after transaction | |
RootTransactID | long | Root Transaction Rec ID | |
UnfundedAmount | Decimal | Unfunded amount |
User
GET
https://m.fascard.com/api/User
User Info for current user
GET https://m.fascard.com/api/User/{userID}?AccountID={accountID}
User details of specified user. The UserID is obtained from UserAccount or Account.
Requirements: Account Admin or 'User Manager' privilege
Field Name | Type | Description | Notes |
---|---|---|---|
EmailAddress | string | Email address | |
VerifyCode | string | Verification code | |
Password | string | User password | |
Name | string | User name | |
Addr1 | string | Address #1 | |
Addr2 | string | Address #2 | |
City | string | City | |
State | string | State | |
ZipCode | string | Zip code | |
MobilePhone | string | Mobile phone | |
Birthday | DateTime | Birthday | May be NULL if n/a |
NewUser | bool | True if new user | |
NotifyCycleComplete | bool | True to send email when cycle is nearly complete | |
Language | string | User's preferred language | "en" = English "es" = Spanish |
UserID | int | User Rec ID | |
AllowEmailEdit | bool | True if user is not yet validated and thus capable of modifying email | |
EmailVerifyRequest | bool | Set True to request verification email | Only used for unverified email (AllowEmailEdit=True) |
Privileges | int | User privileges | 0 = standard, >0 = support |
POST https://m.fascard.com/api/User/{userID}?AccountID={accountID}
Edit details of specified user. The UserID is obtained from UserAccount or Account.
Requirements: Account Admin or 'User Manager' privilege
DELETE
https://m.fascard.com/api/User
Remove all personal details and login credentials for current user
User Notifications
GET
https://m.fascard.com/api/User/Notify?Token={pushToken}&Type={pushTokenType}
Request all push notification configurations for current user by specified token and token type (see below table specification for value enumerations). Type is always required but if Token is not specified then all push notification configurations will be returned for user which could span multiple tokens.
POST
https://m.fascard.com/api/User/Notify
Request to set specific push notification configuration for current user.
Field Name | Type | Description | Notes |
---|---|---|---|
Type | int | Push Notification Token Type | 0 = Undefined |
Token | string | Push Notification Token | |
Enabled | bool | Notification is enabled | |
NotifyType | int | Notification Type | 0 = Undefined 10 = Satellite Offline 11 = Machine Offline 12 = CoinBox Full 13 = Collection 25 = Machine Finished 33 = Machine Available 34 = Marketing 35 = Scheduled Tasks 36 = Work Scheduled |
TriggerTime | int | Trigger time in minutes | May be NULL if n/a |
ReminderTime | int | Reminder time in minutes | May be NULL if n/a |
User Account
AccountID
The AccountID can be either the database SysConfigID (e.g. '12') or the store ID. (e.g. F0002).
GET
https://m.fascard.com/api/UserAccount/
Retrieve specific user account associated with specified AccountID
Requirements: Account Admin or 'Loyalty Accounts' privilege
GET
https://m.fascard.com/api/UserAccount/{accountID}?limit={rec limit}&lastID={previous ID}&prev={true/false}
Retrieve list of user accounts associated with specified AccountID. Numbers of records returned limited to specified 'Limit' parameter with a set max of 1000. Use 'LastID' parameter to resume from previous ID. Use 'Prev' parameter set to True for descending order and set to False for ascending order
Requirements: Account Admin or 'Loyalty Accounts' privilege
GET
https://m.fascard.com/api/UserAccount/{accountID}?limit={rec
Limit}&lastID={previousID}&prev={true/false}&hasEmail=
{true/false}&lastActivity={datetime}
https://m.fascard.com/api/UserAccount/{accountID}?limit={rec
Limit}&lastID={previousID}&prev={true/false}&hasEmail=Retrieve list of user accounts associated with specified AccountID. Numbers of records returned limited to specified 'Limit' parameter with a set max of 1000. Use 'LastID' parameter to resume from previous ID. Use 'Prev' parameter set to True for retrieving records prior to 'LastID' and set to False for records following 'LastID'. Records will always be returned in descending order.
Note the addition of optional parameters 'hasEmail' and 'lastActivity'. Either one, both, or neither can be included for additional filtering capabilities.
Use 'hasEmail' parameter set to True for retrieving only UserAccounts with a set email address and set to False for retrieving only UserAccounts without a set email address. Leave 'hasEmail' parameter out to not filter by email and return all UserAccounts based on other parameters.
Use 'lastActivity' parameter for gathering UserAccounts with an activity at or newer than the specified datetime. Leave 'lastActivity' parameter out to not filter by last activity datetime and return all UserAccounts based on other parameters. The datetime is specified in ISO 8601 format
(e.g. YYYY-MM-DDThh:mm:ss for UTC or YYYY-MM-DDThh:mm:ss+/-hh:mm for specifying a local time offset)
Requirements: Account Admin or 'Loyalty Accounts' privilege
GET
https://m.fascard.com/api/UserAccount/{accountID}?cardNo={card number}
Retrieve specific user account associated with specified AccountID and card number.
Requirements: Account Admin or 'Loyalty Accounts' privilege
Field Name | Type | Description | Notes |
---|---|---|---|
ID | int | UserAccount Rec ID | |
UserID | int | User Rec ID | |
EmailAddress | string | Email address | |
Name | string | User name | |
Addr1 | string | Address #1 | |
Addr2 | string | Address #2 | |
City | string | City | |
State | string | State | |
ZipCode | string | Zip code | |
MobilePhone | string | Mobile phone | |
Birthday | DateTime | Birthday | May be NULL if n/a |
Language | string | User's preferred language | "en" = English "es" = Spanish |
Employee | bool | User is an employee | |
Scheduled | bool | User is a scheduled employee | |
Balance | Decimal | Account balance ($) | |
Bonus | Decimal | Account bonus ($) | |
LoyaltyPoints | int | Loyalty points | May be NULL if n/a |
FreeStarts | int | Free start credits | May be NULL if n/a |
Discount | float | User discount | May be NULL if n/a |
DiscountSource | string | User discount source | |
LastActivityDate | DateTime | Date/time of last activity (UTC) | |
LastLocationID | int | Location Rec ID of last activity |
User Account Value Request
POST https://m.fascard.com/api/UserAccount/{accountID}/{userAccountID}
Request to add values to a specific user account associated with specified AccountID
Requirements: Account Admin or 'Loyalty Accounts' privilege
Raw Body must be provided with request details. Response will be returned as User Account GET.
Name | Type | Description | Notes | ||||||
---|---|---|---|---|---|---|---|---|---|
TransType | int | Transaction type | Only accepted: 2 = Add Value | ||||||
TransSubType | int | Transaction sub-type | Only accepted:
| ||||||
Balance | Decimal | Balance to set or add | Do not include if not updating | ||||||
Bonus | Decimal | Bonus to set or add | Do not include if not updating | ||||||
LoyaltyPoints | int | Loyalty Points to set or add | Do not include if not updating | ||||||
FreeStarts | int | Free Starts to set or add | Do not include if not updating | ||||||
Cash | Decimal | Cash to employee | Only used for AddValue.CashToEmployee type | ||||||
SetExactValue | bool | Flag whether to set values(true) or add to values(false) | Only used for AdjustValue.Admin type | ||||||
LocationID | int | Location Rec ID of purchase location | Only used for AddValue.CashToEmployee | ||||||
AdditionalInfo | string | Optional notes or description |
See example requests below:
{ "TransType": 3, "TransSubType": 0, "LoyaltyPoints": 100, "FreeStarts": 2, "AdditionalInfo": "This is an admin adjustment via API" }
{ "TransType": 3, "TransSubType": 3, "Balance": 20, "AdditionalInfo": "This is a refund adjustment via API" }
{ "TransType": 2, "TransSubType": 2, "Cash": 10, "LocationID": 2 "AdditionalInfo": "This is a CashToEmployee add via API" }