Info |
---|
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 |
...
Getting Connected
Obtain Token
POST https://m.fascard.com/api/AuthToken
Pass username and password as body to API GET call:
...
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
...
Field Name | Type | Description | Notes | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
ID | int | Account ID | |||||||||
Name | string | Account name | |||||||||
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 |
|
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 |
Feedback
POST https://m.fascard.com/api/Equip
Submit an issue or feedback. App type directed to LaundryCard support account, all other issue types directed to employees with "IssueNotify" role and if none then to all customer admins.
...
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 | |
LocationID | int | Location Rec ID | This is required for all types other than 'App' |
MachNo | int | Machine number |
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 and feature schedule information about a particular equipment at a location groupRequirements: Account Admin
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 |
|
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 |
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}}" />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 httpsGET 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/{machIDmachID}
Request to edit values for a specific machine.
...
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:
Code Block | ||||
---|---|---|---|---|
| ||||
{ "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 (UTCTime 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={comma listList}
Note |
---|
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.
...
Field Name | Type | Description | Notes |
---|---|---|---|
Types | int | Comma delimited list of desired statistical types | (Can combine one or more types) 100 = Min # of satellite VPN connections during interval |
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.
...
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 emailOnly used for unverified email (AllowEmailEdit=True)True to request verification email | Only used for unverified email (AllowEmailEdit=True) |
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.
...
Tip | ||
---|---|---|
| ||
The AccountID can be either the database SysConfigID (e.g. '12') or the store ID. (e.g. F0002). |
GET
...
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
https://m.fascard.com/api/UserAccount/{accountID}?limit={rec
...
Limit}&lastID={
...
previousID}&prev={true/false}&hasEmail=
{true/false}&lastActivity={datetime}
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.
...
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.
...
User Account Value Request
POST
...
Request to add values to a specific user account associated with specified AccountID
...