BackOffice Admin
Welcome to the CRM.COM Application Programming Interface (API) documentation
The CRM.COM API is designed around REST, allowing you to access and extend the software’s current functionality in a simple, programmatic way using intuitive URL endpoints, conventional HTTP requests, response codes, authentication and verbs.
Back-Office API is designed with a main focus on users and external systems that desire to access and extend the functionality found in CRM.COM.
For the Mobile/Web based Applications API please refer to the Self-Service API documentation that provides more details how to allow customer to manage their subscriptions and/or reward accounts.
CRM.COM is built on a domain based micro-service architecture. Our primary resources such as Contact, Account, Wallet, Products, Subscriptions are all created with a unique identifier that uses a performant time based GUID. These are generated when a new resource such as a contact is created. However in some cases external integration may wish to use a unique identfier that is stored in an external system, such as a Bank CIF or Credit Card fingerprint.
Some systems allow from their create APIs to supply a unique identifier as part of the request body. CRM.COM has decided to provide an alternative approach and make an alternative unique identifier available on resources (e.g. on Contacts we provide the contact.code). If such attribute is specified during the create operation it wil be available on subsequent operations as a resource’s identifier, alongside with the GUID that is returned in the response body.
CRM.COM API is organized around REST. Our API has specific resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses and uses standard HTTP response codes, authentication & verbs.
You can use the entire API in test mode, which does not affect your live data. The API Key used to authenticate any of your requests will determine whether the request is on live mode or test mode.
The API may differ based on each CRM.COM release. For every new release with noticable changes that might alter backwards compatibility, a new version will be created.
CRM.COM Back-Office API uses either API Keys to authenticate requests or an authentication JWT token obtained from a user successful logging in.
All API requests must be made over HTTPS. Any request made over plain HTTP or without authentication will fail. In addition, API Keys carry many privileges, so be sure to keep them secure! Do not share your secret API Keys in publicly accessible areas, such as GitHub or client-side code.
API KEY AUTHORIZATION HEADER EXAMPLE
curl -X $HTTP_METHOD -H "api_key: 2189341e-981e-9ad5-9912-11101670314a"
AUTH TOKEN AUTHORIZATION HEADER EXAMPLE
curl -X $HTTP_METHOD -H "authorization: Bearer JWT_TOKEN"
API requests should be made using the HTTPS protocol so that traffic is encrypted. The interface responds to different methods depending on the action required.
| Method | Usage |
|---|---|
| POST | To create a new object, your request should specify the POST method. The POST request includes all of the attributes necessary to create a new object to the targeted endpoint. |
| PUT | To update the information on an existing object, the PUT method should be used. This will update the specified object if it is found using the provided values, regardless of their current values. If it is not found, the operation will return a response indicating that the object was not found. This idempotency means that you do not have to check for a resource’s availability prior to issuing an update command, the final state will be the same regardless of its existence. Requests using the PUT method do not need to check the current attributes of the object. |
| DELETE | To remove an existing object from your environment, the DELETE method should be used. Similar to PUT method, the DELETE method is idempotent. |
| GET | For retrieving information about contacts, purchases or orders, the GET method should be used. Any requested information will be returned as a JSON object. The attributes defined by the JSON object can be used to form additional requests. Any request using the GET method is read-only and will not affect any of the retrieved objects. |
Along with the HTTP methods that the API responds to, CRM.COM uses conventional HTTP response codes and human-readable messages in JSON format to indicate the success or failure of an API request.
In the event of a problem, the status will contain the error code, while the body of the response will usually contain additional information about the problem that was encountered.
| HTTP Status | Description |
|---|---|
| 2XX | Return codes in the 200 range indicate that the request was fulfilled successfully and that no error was encountered. |
| 4XX | Return codes in the 400 range, typically, indicate that there was an issue with the request that was sent. Most common reasons could be an invalid authentication method, unauthorised requests or the object that you are requesting does not exist. |
| 5XX | Return codes in the 500 range indicate that there is a server-side problem and CRM.COM cannot fulfill your request at the moment. |
Most of our 4XX range errors that could be handled programmatically contain all the necessary details for a better integration handling. Such details are
- HTTP Status Code & Error are used for programmatic consumption
- Message is human-readable and can be used as a default error message
- Parameters are used for programmatic consumption and can be used for enhancing the interface error message with additional information
4XX ERROR RESPONSE EXAMPLE
An example of a customer not found error is as follows
HTTP/1.1 404 Not Found
{
"status": 404,
"message": "Record not found.",
"error": "CRM.EXCEPTIONS.NOTFOUNDEXCEPTION",
"parameters": [
"contact",
"789dacae-cf71-414f-9483-ca88acaa46432"
]
}
The request has succeeded
The input request was invalid or incorrect, often due to missing a required parameter
The provided API Key or Token is invalid
The API key or Token does not have permissions to perform the request
The requested resource does not exist
The server encountered an unexpected condition which prevented it from fulfilling the request
The server received an invalid response from the upstream server it accessed in attempting to fulfill the request
The server is currently unable to handle the request due to a temporary overloading or maintenance
The server did not receive a timely response from the upstream server
What is an account
{id}/accounts{id}{id}/accounts{id}/life_cycle_state{id}/accountsAdd a new customer account to an existing contact
Path variables
The contact identifier that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The account’s classification ID
The account’s currency
If set to true, then the account will be set as the primary one even if a different one exists
The unique identification of a contact address which will be set as the billing address of the account. By default, the primary addres (if it exists) will be provided
Responses
OK
Body
The account identifier
POST https://sandbox.crm.com/backoffice/v1/contacts/CAD1E31269B76D7A65ACCE45B2E68DFD/accounts HTTP/1.1
Content-Type: application/json
{
"classification_id": "4AD9C84FA60F9FE407140E20F707726A",
"currency_code": "EUR",
"is_primary": true,
"billing_address_id": "E407140E20F707726A4AD9C84FA60F9F"
}{id}Update the account of a contact
Path variables
The account identifier that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The account’s classification ID
If set to true, then the account will be set as the primary one even if a different one exists
The unique identification of a contact address which will be set as the billing address of the account. By default, the primary addres (if exists) will be provided
Sets the credit limit of the account
Sets the Account’s Payment Terms.
Responses
OK
Body
The account identifier
PUT https://sandbox.crm.com/backoffice/v1/accounts/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
Content-Type: application/json
{
"classification_id": "4AD9C84FA60F9FE407140E20F707726A",
"is_primary": true,
"billing_address_id": "4AD9C84FA60F9FE407140E20F707726A",
"credit_limit": 200,
"payment_terms_id": "4AD9C84FA60F9FE407140E20F707726A"
}{id}/accountsGet a list of Contact Accounts. Normally a contact will have a single account but multiple accounts can be used to service different currencies, or different spending profiles.
Path variables
The contact identifier whose accounts will be retrieved
Request parameters
If set to true, then only the primary account of the contact will get retrieved
Retrieve accounts with a specific life cycle state
Defines on which attribute the results should be sorted
The page number that should be retrieved
The size (total records) of each page
Defines how the results will be ordered
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The account identifier
Indicates if this is the primary account of the contact
The account name
The Account number
The account’s life cycle state
The account’s currency
Details about the event classification
The classification identifier
The classification name
The account’s calculated balance
The account’s credit limit
The unpaid amount that is passed its due date
The account’s Payment Terms
Wallet related to the Account
Wallet identifier
Wallet code
Wallet total balance
Currency code
Wallet’s state
GET https://sandbox.crm.com/backoffice/v1/contacts/CAD1E31269B76D7A65ACCE45B2E68DFD/accounts HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"is_primary": true,
"name": "Default",
"number": "AC123456",
"life_cycle _state": "ACTIVE",
"currency_code": "EUR",
"classification": {
"id": "c8d83493-3f50-40df-adb0-762ec5f41863",
"name": "Delivery Purchase"
},
"balance": 200,
"credit_limit": 100,
"overdue_amount": 50,
"payment_terms": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Net 7"
},
"wallet": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"code": "9005455565111112",
"balance": 9.99,
"currency_code": "EUR",
"life_cycle_state": "EFFECTIVE"
}
}
]
}
{id}/life_cycle_stateChange the life cycle state of the Account
Path variables
The account identifier that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The life cycle state that the account will changed into
The account to which any account balance will get transfered, in case of Termination. Required when terminating the account
Responses
Successful Request
Body
The unique identifier of the account
POST https://sandbox.crm.com/backoffice/v1/accounts/CAD1E31269B76D7A65ACCE45B2E68DFD/life_cycle_state HTTP/1.1
Content-Type: application/json
{
"life_cycle_state": "SUSPENDED",
"transfer_to_account_id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{id}/financials{id}/financialsGet a single Account with its financial information
Path variables
The unique identification of the Account to be retrieved.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The account’s name
The account’s number
Defines whether the account is the primary one of the contact
The account’s life cycle state
The account’s currency (3 code currency)
The account’s calculated balance
The unpaid amount that is passed its due date
The account’s credit limit
The opening balance brought forwards after the latest closed accounting period
Details about the event classification
The classification identifier
The classification name
The latest accounting period for which the account’s opening balance was calculated
The ID of the latest closed accounting period
The name of the account’s latest accounting period
The id of the billing address
The account’s payment terms
Payment terms identifier
Payment terms name
The account’s related Wallet
Wallet identifier
Wallet code
The wallet life cycle state
Total balance
Open balance
Commerce balance
The minimum wallet balance threshold. If not provided, the global rules apply
The minimum amount allowed
The maximum amount allowed
The period for which the limit is applied
The wallet transaction type for which the limit is applied
Sets the threshold for the auto topup to be performed
The amount to get topped up
Indicates the method of collecting money
The contact’s actual preferred payment method. Required and mandatory only for online payments (Card, Wallet and Account Debit). Defaults to the primary payment method, if any.
GET https://sandbox.crm.com/backoffice/v1/accounts/4AD9C84FA60F9FE407140E20F707726A/financials HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"name": "John Smith AC00123456",
"number": "AC00123456",
"is_primary": "true",
"life_cycle_state": "TERMINATED",
"currency_code": "EUR",
"balance": 200,
"overdue_amount": 100.5,
"credit_limit": 98,
"opening_balance": 100.5,
"classification": {
"id": "c8d83493-3f50-40df-adb0-762ec5f41863",
"name": "Delivery Purchase"
},
"accounting_period": {
"id": "",
"name": "OCTOBER2018"
},
"billing_address": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"address_line_1": "2265 Oak Street",
"address_line_2": "",
"state_province_county": "New York",
"town_city": "Old Forge",
"postal_code": "13420",
"country_code": "USA"
},
"payment_terms": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Net 7"
},
"wallet": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"code": "9000004434321111",
"life_cycle_state": "TERMINATED",
"balance": 9.99,
"open_balance": 5.45,
"commerce_balance": 4.54,
"currency_code": "EUR",
"minimum_balance": 5.99,
"limits": [
{
"minimum_amount": 5.99,
"maximum_amount": 99.99,
"period": "MONTHLY",
"transaction_type": "CREDIT"
}
],
"auto_topup": {
"threshold": 99.99,
"amount": "9.99",
"payment_method": "CARD",
"payment_method_id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
}
}
{id}/rewards{id}/rewards{id}/reward_schemes{id}/reward_schemes/{reward_scheme_id}{id}/merchants{id}/merchants/{merchant_id}{id}/rewardsUpdate the reward attributes of the primary account of a contact
Path variables
The account (identifier) whose reward attributes will be updated
Notes
Only Primary Accounts of a Contact hold Reward information
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The date that the customer first signed up
The organisation identifier that signed up the customer (first time)
Defines whether the spending is blocked for the specific account
Information about the automatic spend settings for the account
Defines whether automatic spend is enabled for the account
Defines whether automatic spends will occur on the next purchase of a specific merchant or based on wallet balance and purchase amount to a group of merchants
The minimum wallet balance amount that should be available for the spend to be performed. Applicable when automatic spend preference is for all merchant purchases
The min amount (inclusive) that the purchase customer event total amount should be in order for the automatic spend to be applied. Applicable when automatic spend preference is for all merchant purchases
Responses
OK
Body
The account identifier
PUT https://devapi.crm.com/backoffice/v1/accounts/CAD1E31269B76D7A65ACCE45B2E68DFD/rewards HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"signed_up_on": 1583846865,
"signed_up_organisation_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"spending_blocked_status": "true",
"automatic_spend_settings": {
"enable_automatic_spend": "false",
"automatic_spend_preference": "ALL_MERCHANT_PURCHASE",
"minimum_wallet_balance": 1,
"from_purchase_amount": 1.76
},
"preferred_payment_method_id": "CAD1E31269B76D7A65ACCE45B2E68DCD"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{id}/rewardsGet a single account, along with its reward details
Path variables
The account (identifier) which reward details will be retrieved
Notes
Only Primary Accounts of a Contact hold Reward information
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The account identifier
The account’s name
The account’s number
The account’s currency (3 code currency)
The date when the account was signed up for the first time
Information about the organisation that sign up the account for the first time
The organisation identifier
The organisation name
Defines whether the account can spend or not
The date that the spending status of the account was updated
Information about the user that updated the spending status of the account
The user identifier
The user’s email address
The user’s first name
The user’s last name
Information about the automatic spend settings for the account
Defines whether automatic spend is enabled for the account
Defines whether automatic spends will occur on the next purchase of a specific merchant or based on wallet balance and purchase amount to a group of merchants
The minimum wallet balance amount that should be available for the spend to be performed. Applicable when automatic spend preference is for all merchant purchases
The min amount (inclusive) that the purchase customer event total amount should be in order for the automatic spend to be applied. Applicable when automatic spend preference is for all merchant purchases
Information about the merchants that automatic spending is allowed (Deprecated, replaced by Organisations)
The merchant record identifier
Defines whether the merchant is setup for automatic spend on the next visit
Information about organisation
The organisation identifier
The organisation name
Information about the account’s reward tier
The reward tier identifier
The reward tier name
The designated hexadecimal code of the tier’s color
The account’s value units that accumulated during the last rolling period
The account’s value units that accumulated overall
Details about The progression percentage for each reward tier
The progression percentage until the reward tier
Details about the reward tier
The reward tier identifier
The reward tier name
The tier (threshold) value units (inclusive)
The remaining value units to reach this tier
Information about the reward schemes that the account has signed up to
The reward scheme identifier
The reward scheme name
The date when the account was signed up on the specific reward scheme
The email address that was used during sign up (applicable if the reward scheme is a close loop scheme based on email domains)
Defines how customers can sign up to the reward scheme
GET https://sandbox.crm.com/backoffice/v1/accounts/41dc3d8a-5ab2-3dc8-83d5-33501eb1949f/rewards HTTP/1.1
api_key: adea79a6-fe7f-2e92-56c7-9a0685ffa290
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Smith AC00123456",
"number": "AC00123456",
"currency_code": "EUR",
"reward_tier": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Gold",
"color": "#d4af37",
"period_value_units": 222,
"lifetime_value_units": 333,
"next_tier_progression": 45.98
}
}
{id}/reward_schemesSign up the account to a specific reward scheme
Path variables
The account (identifier) that will be signed up to the reward scheme
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The reward scheme that the account has signed up
The email address of the customer requestng to sign uo to a reward scheme based on supported domains
The code that will verify that the customer is allowed to sign up to a close loop reward scheme
The date that the account has signed up (if not specified, defaults to current date)
Responses
OK
Body
The reward scheme identifier
POST https://devapi.crm.com/backoffice/v1/accounts/CAD1E31269B76D7A65ACCE45B2E68DFD/reward_schemes HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"reward_scheme_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"email_address": "johndoe@crm.com",
"sign_up_code": "ABCDEFG1234"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DXD"
}{id}/reward_schemes/{reward_scheme_id}Sign out the account from a specific reward scheme
Path variables
The account (identifier) that will be signed off from the reward scheme
The reward scheme (identifier) that the account has signed off
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
DELETE https://devapi.crm.com/backoffice/v1/accounts/CAD1E31269B76D7A65ACCE45B2E68DFD/reward_schemes/CAD1E31269B76D7A65ACCE45B2E68DXD HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK {id}/merchantsAdd a set of new merchants for automatic spends for that account
Path variables
The account (identifier) whose merchant preferencees will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Defines a list of merchants that are authorised to perform automatic awards spending for that account
The organisation identifier that should be authorised to perform automatic awards spending
Defines whether the merchant is setup for automatic spend on the next visit
Responses
OK
Body
A list of merchants that are authorised to perform automatic awards spending for that account
The organisation identifier
POST https://devapi.crm.com/backoffice/v1/accounts/CAD1E31269B76D7A65ACCE45B2E68DFD/merchants HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"merchants": [
{
"organisation_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"is_next_visit": "false"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"merchants": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
]
}{id}/merchants/{merchant_id}Remove an exisintg merchant from an account’s automatic spend preferences
Path variables
The account (identifier) whose reward attributes will be updated
The merchant (identifier) that will be removed from the spend preferences
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
DELETE https://devapi.crm.com/backoffice/v1/accounts/CAD1E31269B76D7A65ACCE45B2E68DFD/merchants/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK {id}/wallets{id}/walletsAdds a new Wallet to an Account. This is allowed only if the account is not related to any wallet or if the account’s related wallet was previously Terminated. So an Account can only be related to a single Effective Wallet at a time.
Path variables
Account identifier
Request body
The minimum wallet balance threshold. If not provided, the global rules apply
Defines the limit rules applied on specific wallet. If not provided, the global rules apply
The maximum amount allowed
The wallet transaction type for which the limit is applied
The period for which the limit is applied
Responses
Body
The Wallet identifier
POST https://sandbox.crm.com/backoffice/v1/accounts/CAD1E31269B76D7A65ACCE45B2E68DFD/wallets HTTP/1.1
Content-Type: application/json
{
"minimum_balance": 10.99,
"limit_rules": [
{
"limit_amount": 100.99,
"transaction_type": "DEBIT",
"period": "MONTHLY"
}
]
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{id}{id}/actions{id}/commerce_balances{id}Updates a single Wallet.
Path variables
The unique identifier of the Wallet to be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Wallet’s auto top up settings.
The wallet’s minimim balance threshold that triggers this rules once it is reached
The auto top up’s amount
The payment method from which funds will be automatically retrieved
The contact’s payment method identifier.
["TOPUP"]Responses
Body
The unique identifier of the updated Wallet
PUT https://sandbox.crm.com/backoffice/v1/wallets/4dc0809f-ed91-4b68-b912-5bd6064d901e HTTP/1.1
Content-Type: application/json
{
"auto_topup": {
"threshold": 0.01,
"amount": 10.5,
"payment_method": {
"type": "CARD",
"id": "4dc0809f-ed91-4b68-b912-5bd6064d901e"
}
},
"termed_topup": {
"amount": 10.5,
"frequency": {
"period": "MONTHS",
"value": 1
},
"topup_day": {
"day_of_month": 1,
"day_of_week": "MONDAY"
},
"payment_method": {
"type": "",
"id": ""
}
},
"limit_rules": [
{
"name": "VIP",
"maximum_amount": 9.99,
"maximum_number": 10,
"period": "ANNUAL",
"transaction_type": [
"TOPUP"
]
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "3ac0809f-ed91-4b68-b912-5bd6064d901e"
}
{id}/actionsUpdates an existing Wallet’s state
Path variables
Wallet identifier
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
Defines the life cycle state of the wallet. If selected, then all of the above will not be taken into consideration
Responses
Body
The updated wallet’s identifier
POST https://sandbox.crm.com/backoffice/v1/wallets/234fbc54-bc32-1990-ce59-76c45e6377a8/actions HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"action": "TERMINATED"
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "234fbc54-bc32-1990-ce59-76c45e6377a8"
}{id}/commerce_balancesRetrieves a wallet’s business balance breakdown. The balance is returned per spend condition which credited the wallet’s business balance, along with the spend condition’s details
Path variables
The unique identification of the wallet whose balance spend conditions will be retrieved.
Request parameters
The id of a specific spend condition (optional). If not provided then all spend conditions are retrieved
If set to true, then the expiration information will also be retrieved
If not specified, then the balance breakdown of the wallet’s primary currency will be returned by default.
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The spend condition group identifier
The name of the spend condition group
The amount that is allocated to the specified spend condition
The organisations where the amount can be spent at
The organsiation identifier
The name of the organisation
The location of the organisation
Information about the organisation’s location
The name of the location
The address of the location
Additional address information about the location
The state/province/county of the location
The town/city of the location
The postal code of the location
The country code of the location
The latitude of the location
The longitude of the location
The Google textual identifier that uniquely identifies a location
The products that the amount can be spent for
The type of the ID to be provided
The ID of the product (based on the type provided)
The name of the product
The descrtipion of the product
The time when the amount can be spent
The month as a condition (1-12)
The day of the week as condition (1-7), 1 is Sunday
The start time of the day in 24 Hour format
The end time of the day in 24 Hour format
Defines the amounts expiring in periods. Available only if the parameter include_expiration is set to true
The amount that will expire in up to 30 days
The amount that will expire from 30 to 60 days
The amount that will expire from 60 to 90 days
The amount that will expire in more than 90 days
GET https://sandbox.crm.com/backoffice/v1/wallets/234fbc54-bc32-1990-ce59-76c45e6377a8/commerce_balances HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "234fbc54-bc32-1990-ce59-76c45e6377a8",
"name": "Happy Hour",
"amount": 100.5,
"curency_code": "",
"organisations": [
{
"id": "234fbc54-bc32-1990-ce59-76c45e6377a8",
"name": "Cafe",
"locations": [
{
"name": "Head Office",
"address_line_1": "Elia Papakyriakou 21",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2415",
"country_code": "CY",
"lat": 35.157115,
"lon": 33.313719,
"google_place_id": "ChIJrTLr-GyuEmsRBfy61i59si0"
}
]
}
],
"products": [
{
"id_type": "BRAND",
"id": "234fbc54-bc32-1990-ce59-76c45e6377a8",
"name": "Coffee",
"description": "Brazilian Coffee"
}
],
"timings": [
{
"month": 1,
"day": 1,
"start_time": "19:00",
"end_time": "21:00"
}
],
"expiration": {
"zero_to_thirty": 50.5,
"thirty_to_sixty": 50.5,
"sixty_to_ninety": 50.5,
"ninety_plus": 50.5
}
}
]
Creates a Wallet Journal Entry that either debits or credits the wallet. A single journal entry is created per Web API call.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The unique identifier for which the journal entry will be created
The amount of the journal
If not specified, then the wallet’s primary currency is used to log the journal entry
The description of the journal
The type of the journal
The unique identifier of the related spend condition. If specified, then the journal entry’s amount is move to the wallet’s business balance
The valid from date
The valid to date
The date and time when the journal actually created
Allows a wallet debit journal to take the wallet balance below zero. By default, the wallet balance cannot go below zero.
Responses
OK
Body
The wallet journal identifier
POST https://devapi.crm.com/backoffice/v1/journals HTTP/1.1
Content-Type: application/json
{
"wallet_id": "4AD9C84FA60F9FE407140E20F707726A",
"amount": 10,
"type": "DEBIT",
"description": "Credit adjustment by 10 EUR",
"spend_condition_id": "4AD9C84FA60F9FE407140E20F707726A",
"valid_from": 1587988965,
"valid_to": 1587988965,
"created_on": 1588081851
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{id}{id}{id}/status{id}Create a new activity
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The activity name
The activity description
The GUID of the activity type.
The date of the activity.
The date and time that is scheduled for the activity to take place
The date and time that is scheduled for the activity to be completed.
The id of the address associated with the contact. Either the address_id or the use_entity_address can be specified, not both
Use the entity address as the Activity address. In cases where an Activity is being created for an entity which has an address (e.g. Contact, Order, Service Request) then use that address as the default Activity address. Either the address_id or the use_entity_address can be specified, not both
Related linked entity details.
The type of related entity.
The related entity identifier
The user identifier
The team identifier
The custom field’s unique key
The custom field’s value
Responses
Successful Request
Body
The activity identifier that was created
POST https://sandbox.crm.com/backoffice/v1/activities HTTP/1.1
Content-Type: application/json
{
"name": "Call customer",
"description": "We need to call the customer (after 4pm) in order to schedule a demo",
"type_id": "CEEE83D6E0804A30966F684B0269AD91",
"date": 8634785,
"from_time": "09:00",
"to_time": "09:30",
"address_id": "JHGDSYGSDY656GFHGF",
"use_entity_address": "false",
"linked_to": [
{
"type": "ORDER",
"id": "CEEE83D6E0804A30966F684B0269AD91"
}
],
"user_id": "CEEE83D6E0804A30966F684B0269USER",
"assign_to": {
"user_id": "1edef819-0a1d-4d41-9d2a-d4bbc2ddbedf",
"team_id": "a43f08ca-998b-afbc-6ed4-c9dc2d136935"
},
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
{id}Update an existing activity
Path variables
The activity identifier that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The activity name
The activity description
The address id associated to the contact and the activity
The date that the activity is scheduled.
The start time of the scheduled activity.
The end time of the scheduled activity.
Related linked entity details.
The type of the related entity
The related entity identifier
The user identifier
The team identifier
The custom field’s unique key
The custom field’s value
Responses
Successful Request
Body
The activity identifier that was updated
PUT https://sandbox.crm.com/backoffice/v1/activities/QWERTY1234543212345678UJIKY76HJR HTTP/1.1
Content-Type: application/json
{
"name": "Approve Offers",
"description": "Require 4 approvals for an offer",
"address_id": "GNEHDFHDBFDFFDSD",
"date": 863478,
"from_time": "09:00",
"to_time": "09:30",
"linked_to": [
{
"type": "ORDER",
"id": "CEEE83D6E0804A30966F684B0269AD91"
}
],
"user_id": "CEEE83D6E0804A30966F684B0269USER",
"assign_to": {
"user_id": "1edef819-0a1d-4d41-9d2a-d4bbc2ddbedf",
"team_id": "a43f08ca-998b-afbc-6ed4-c9dc2d136935"
},
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
{id}Delete an existing activity
Path variables
The activity identifier that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
DELETE https://devapi.crm.com/backoffice/v1/automations/QWERTY1234543212345678UJIKY76HJR HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK {id}/statusUpdate an existing activity’s status
Path variables
The activity identifier whose life cycle state will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Defines the new life cycle state of the activity
The activity will be created with this status.
The activity will be closed with this status.
The activity will be cancelled with this status.
Responses
Successful Request
Body
The activity identifier that was updated
PUT https://sandbox.crm.com/backoffice/v1/activities/QWERTY1234543212345678UJIKY76HJR/status HTTP/1.1
Content-Type: application/json
{
"status": "CANCELLED"
}Search for activities
Request parameters
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Defines on which attribute the results should be sorted
Filter based on the related Order
Filter based on the related Lead
Filter based on the related Service Request
The id of the activity type
Search for an activity based on name
Filter based on the created date, which may fall within a given date range. The value can be a string with a date in epoch format. Each option must also include an operator. Use up to two options based on the required search (e.g. created_on[gte]=1618395497&created_on[lt]=1618395497).
Returns results where the created date is greater than this value
Returns results where the created date is greater than or equal to this value
Returns results where the created date is less than this value
Returns results where the created date is less then or equal to this value
Details pertaining to the statuses of the activities.
The id’s of the tags to filter by
Filter based on the User who is responsible to complete it
Filters based on specific assign to user
Filters based on specific assign to team
Retrieve custom fields?
Filters based on custom fields (key/value set should be semicolon separated)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The activity identifier
The activity name
The activity description
The activity life cycle state
The date of the scheduled activity
The time from when the activity is scheduled.
The time that the activity is scheduled to finish.
The activity type
The id of the activity type
The name of the activity type
The colour code of the activity type
Details about the related contact
The contact identifier
The contact full name
The contact unique code
The details of the lead
The lead identifier
The name of the lead
The service request ticket number
The service request unique identifier
The ticket number of the service request
The order that the activity was created through
The order id
The order number
Details about the user that the record is assigned to
The user identifier
The user name
The username of the user
Details about the team that the record is assigned to
The team identifier
The team name
The custom field’s unique key
The custom field’s value
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/activities HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "Call customer",
"number": "ACT1001",
"description": "We need to call the customer to arrange a demo",
"status": "COMPLETED",
"date": 198735487,
"from_time": "09:00",
"to_time": "09:30",
"activity_type": {
"id": "JKHGFSD878JHGDHJGD",
"name": "site visit",
"colour": "7GH86H7"
},
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"lead": {
"id": "AJBGJHFGKSF78676JHGS56",
"title": "ASOS"
},
"service_request": {
"id": "AJBGJHFGKSF78676JHGS56",
"number": "SR10001"
},
"order": {
"id": "JGDAKJHDAKJHAJK87897",
"number": "O101367"
},
"user": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "John Doe"
},
"assign_to": {
"user": {
"id": "47ac694d-6281-b873-bf46-3fd8da334a3a",
"name": "John Doe",
"username": "j_doe@crm.com"
},
"team": {
"id": "bf1370a1-73ad-0bbf-6fef-f2ce1938d4fe",
"name": "Support"
}
},
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Get details for a specific activity
Path variables
The activity identifier that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The activity identifier
The activity name
The activity description
The date and time that the activity is scheduled for
The time that the activity is scheduled to start.
The time that the activity is scheduled to be completed.
The date the activity was created.
The type of activity
The id of the type
the name of the type
the colour of the type.
Details about the related contact
The contact identifier
The contact full name
The contact unique code
The details of the sercice request
The id of the service request
The ticket number of the service request
The details of the lead
The id of the lead
The name of the lead
The order ID
The order number
The address of the activity
The life cycle states of the activity
The date that the activity enetered that stated
Details about the user that the record is assigned to
The user identifier
The user name
The username of the user
Details about the team that the record is assigned to
The team identifier
The team name
The custom field’s unique key
The custom field’s value
GET https://sandbox.crm.com/backoffice/v1/activities/CEEE83D6E0804A30966F684B0269AD91 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "Call customer",
"number": "ACT1001",
"description": "Arrange a call with the customer after 4pm to schedule a demo for next week",
"date": 7675675,
"from_time": "09:00",
"to_time": "09:30",
"created_date": 1,
"type": {
"id": "HGJDHGSJDHG",
"name": "site visit",
"color": "876FD5"
},
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"service_request": {
"id": "JHGHGF7576HGFTGD564654",
"number": "SRV78001"
},
"lead": {
"id": "JHGSD6576JKDGSFKJG",
"title": "ASOS"
},
"order": {
"id": "JGKDJSHSHDKAJHAKJD",
"number": "O10306P"
},
"address": {
"address_line_1": "Elia Papakyriakou",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2000",
"country": "CY",
"lat": "523654.098795",
"lon": "880932.981221",
"googleplaceid": "ad23rewf4472vnm90001"
},
"statuses": [
{
"status": "PENDING",
"date": ""
}
],
"user": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "John Doe"
},
"assign_to": {
"user": {
"id": "47ac694d-6281-b873-bf46-3fd8da334a3a",
"name": "John Doe",
"username": "j_doe@crm.com"
},
"team": {
"id": "bf1370a1-73ad-0bbf-6fef-f2ce1938d4fe",
"name": "Support"
}
},
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
The following functionality relates to tags for activities
{id}/tags{id}/tags{id}/tags/{tag_id}{id}/tags{id}/tagsThe following process adds tags to an activity
Path variables
The activity GUID
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
the content relating to the tag
The tag id
POST https://sandbox.crm.com/backoffice/v1/activities/HRDGSWRSFVSDSDBSDSSDDE/tags HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"tags": [
{
"id": "FDHNFDBR675765ghdh"
}
]
}{id}/tagsThe following process updates tags for an activity
Path variables
The activity GUID
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
the content relating to the tag
The tag id
PUT https://sandbox.crm.com/backoffice/v1/activities/JGSDGJKAJKGDAKJGS/tags HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"tags": [
{
"id": "JGFJHGJHSDGHJSG"
}
]
}{id}/tags/{tag_id}Deletes a tag on a activity.
Path variables
The id of the activity.
The id of the tag
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/activities/ef9a1f84-2d4b-c9eb-afc7-a142e202a9ef/tags/KJDFHKJGFSJHG HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK {id}/tagsThe following process retrieves the tags for a activity
Path variables
The id of the activity.
Responses
Body
the tag ID
Name of Tag
Colour of tag
GET https://sandbox.crm.com/backoffice/v1/activities/JHGSDJHGAHJGD/tags HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "JKGJHFSDJHGDSJHGA",
"name": "Maintenance",
"colour": "The colour of the tag"
}
]
}{id}/analytics{id}/analytics{id}{id}/{id}{id}/events{id}/filters{id}/breakdowns{id}/results{id}/preview{id}/exportsCreate a new insight
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The insight name
The insight description
Responses
Body
The insight identifier
POST https://sandbox.crm.com/backoffice/v1/insights HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"name": "Marketing customers",
"description": "A list of customers that own an account"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "c0d4712e-6688-4604-b3d6-d084e4d2dc05"
}{id}Updates the basic information of an insight
Path variables
The insight identifier that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The insight name
The insight’s description
Responses
Body
The insight identifier
PUT https://sandbox.crm.com/backoffice/v1/insights/c0d4712e-6688-4604-b3d6-d084e4d2dc05 HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"name": "Rewards Award",
"description": "List of contacts owning a non-terminated account",
"refresh_frequency": 1
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "c0d4712e-6688-4604-b3d6-d084e4d2dc05"
}{id}/Delete an existing insight
Path variables
The insight identifier that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/insights/c0d4712e-6688-4604-b3d6-d084e4d2dc05/ HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK Returns a list of insights
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The insights unique identifier
The insight’s name
The insights’s description
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/insights HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "Marketing customers",
"descripion": "List customers owning an account"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}Get all data for a single insight
Path variables
The insight identifier that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The insight identifier
The insight name
The event identifier
["Costa Coffee Nicosia"]The filter identifier
The breakdown identifier
simple naming A, B, C used for ordering
GET https://sandbox.crm.com/backoffice/v1/insights/c0d4712e-6688-4604-b3d6-d084e4d2dc05 HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "c0d4712e-6688-4604-b3d6-d084e4d2dc05",
"name": "Rewards Award",
"events": [
{
"id": "c0d4712e-6688-4604-b3d6-d084e4d2dc05",
"name": "Purchases",
"event_name": "SPEND",
"totals": {
"is_frequency": true,
"property_name": "amount"
},
"criteria": [
{
"name": "A",
"property": {
"property": "venue.name",
"operator": "IS",
"value_list": [
"Costa Coffee Nicosia"
]
}
}
]
}
],
"filters": [
{
"id": "c0d4712e-6688-4604-b3d6-d084e4d2dc05",
"name": "",
"type": "CONTACT",
"property_name": "",
"operator": "NOT_EQUAL",
"min_value": "",
"max_value": "",
"value_list": [
""
]
}
],
"breakdowns": [
{
"id": "c0d4712e-6688-4604-b3d6-d084e4d2dc05",
"name": "",
"type": "CONTACT",
"property_name": "city"
}
]
}
{id}/eventsAdds a set of events on an insight
Path variables
Request body
if the measurement is Freqency or Total of property
Name of the property to sum for a total or count frequency
List of selection operators
List of values if the operator is contains or single item if matching
Responses
POST https://sandbox.crm.com/backoffice/v1/insights/{id}/events HTTP/1.1
Content-Type: application/json
{
"events": [
{
"name": "Purchases",
"event_name": "SPEND",
"totals": {
"is_frequency": false,
"property_name": "amount"
},
"criteria": [
{
"name": "A",
"property": {
"property": "venue.name",
"operator": "IS",
"value_list": [
"Costa Coffee Nicosia"
]
}
}
]
}
]
}
{id}/filtersAdds a set of filters on an insight
Path variables
Request body
Use Operator
Venue1,Venue2Responses
POST https://sandbox.crm.com/backoffice/v1/insights/{id}/filters HTTP/1.1
Content-Type: application/json
{
"filters": [
{
"name": "",
"type": "EVENT",
"property_name": "",
"operator": "IS_NOT",
"min_value": "",
"max_value": "",
"value_list": [
""
]
}
]
}
HTTP/1.1 201 Created {id}/breakdownsAdds a set of breakdowns on an insight
Path variables
The insight identifier which breakdown will be set
Request body
name of the property to create the breakdown
Responses
POST https://sandbox.crm.com/backoffice/v1/insights/{id}/breakdowns HTTP/1.1
Content-Type: application/json
{
"breakdowns": [
{
"name": "",
"type": "CONTACT",
"property_name": ""
}
]
}
HTTP/1.1 201 Created {id}/resultsRetrieve results of a specific insight
Path variables
The insight identifier which results will be retrieved
Request parameters
The start date of the insight sequence
The end date of the insight sequence
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
A temporary identifier to link child levels
The identifier of the previous level
The breakdown level 0 = EVENTS
The name of the property within the group
The value of the property
The name of the event
The number of points can be used for frequency
The decimal amounts for the level
Applicable only if the property is a list and represents the list name
GET https://sandbox.crm.com/backoffice/v1/insights/04f28639-5ceb-a25e-1e44-b1109e533f42/results HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"breakdown": {
"id": "bb686ff0-e7a4-a8a6-05a6-cfe8e39f675f",
"parent_id": "bb686ff0-e7a4-a8a6-05a6-cfe8e39f675f",
"level": 1,
"property_name": "venue.name",
"property_value": "Costa Coffee Larnaca",
"event_name": "",
"count": 1,
"amount": 12.8,
"list_name": "products"
}
}
]
}
{id}/previewPreview the results of a specific insight
Path variables
The insight identifier which results will be previewed
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The start date of the insight sequence
The end date of the insight sequence
if the measurement is Freqency or Total of property
Name of the property to sum for a total or count frequency
List of selection operators
List of values if the operator is contains or single item if matching
Use Operator
Venue1,Venue2name of the property to create the breakdown
Responses
Body
A temporary identifier to link child levels
The identifier of the previous level
The breakdown level 0 = EVENTS
The name of the property within the group
The value of the property
The name of the event
The number of points can be used for frequency
The decimal amounts for the level
Applicable only if the property is a list and represents the list name
POST https://sandbox.crm.com/backoffice/v1/insights/62cb9ada-3a7b-cafb-b7a7-7c103011fa48/preview HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"start_date": 1612953199,
"end_date": 1612953199,
"events": [
{
"name": "Purchases",
"event_name": "PURCHASE",
"totals": {
"is_frequency": true,
"property_name": ""
},
"criteria": [
{
"name": "A",
"property": {
"property": "venue.name",
"operator": "IS_NOT",
"value_list": [
""
]
}
}
]
}
],
"filters": [
{
"name": "",
"type": "CONTACT",
"property_name": "",
"operator": "DOES_NOT_CONTAIN",
"min_value": "",
"max_value": "",
"value_list": [
""
]
}
],
"breakdowns": [
{
"name": "",
"type": "CONTACT",
"property_name": ""
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"breakdown": {
"id": "bb686ff0-e7a4-a8a6-05a6-cfe8e39f675f",
"parent_id": "bb686ff0-e7a4-a8a6-05a6-cfe8e39f675f",
"level": 1,
"property_name": "venue.name",
"property_value": "Costa Coffee Larnaca",
"event_name": "",
"count": 1,
"amount": 12.8,
"list_name": "products"
}
}
]
}
Get a list of distinct values for a contact or event property
Request parameters
Contact or Event collectioons
city
Responses
Body
Value of the property
GET https://sandbox.crm.com/backoffice/v1/distincts HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"property_value": "London"
}
]{id}/exportsExport the results of a specific insight
Path variables
The insights (identifier) that will be exported
Request headers
Authorization Token
Request body
Defines what data should be exported from the related insight results
Export results in a tabular format, excluding underlying data
Export all underlying granular data that were used for this Insight
Defines the file format in which the exported data should be exported
CSV file
Responses
POST https://sandbox.crm.com/backoffice/v1/insights/efc5c8af-56ba-3d6f-d180-18be6dd04cc8/exports HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"type": "UGD",
"format": "csv"
}
HTTP/1.1 200 OK {name}/preview{name}{id}{id}{id}{name}/previewRuns the report in preview mode, i.e. a subset of the report’s results are returned for preview purposes (max 10 records included in the response)
Path variables
The report (unique name) that will be previewed
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Set of filters based on which the report runs
The filter’s name
The filter’s value as this was specified by the user
Set of columns that will be included in the report’s preview. Up to 10 columns are included by default
Number, NameThe field’s name
Responses
Body
POST https://sandbox.crm.com/backoffice/v1/reports/contacts_summary/preview HTTP/1.1
Content-Type: application/json
{
"filters_set": [
{
"key": "period_from",
"value": "This month"
}
],
"columns_set": [
{
"key": "product_code"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"fields":[
{
"key": "Name",
"value": "Jane Smith"
}
]
}
]
}
{name}Schedule a report and sends its results via email to a group of recipients
Path variables
The report (unique name) that will be scheduled
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The report’s format
Set of filters based on which the report runs
The filter’s label
The filter’s name
The filter’s value as this was specified by the user
The data type of the filter
Set of columns that will be included in the report
Number, NameThe ordering of the columns from left to right
The column’s label as this will be displayed on the report
The field’s name
The data type of the filter
Set of fields to be used to group the report’s results
The grouping’s ordering
The group by field’s label as this will be displayed on the report
The field’s name
The data type of the filter
Defines the scheduled report name (if not provided will be set based on the report’s unique name, e.g. Contacts Summary)
Defines the scheduler settings that will send a report on a recurring basis (if not specified, report will be generated and send only once)
Defines the period when report generation will take place
The repeat frequency provided as a cron expression pattern
Defines the recipients that will receive the report results (if not specified, will be send to the user that requested such report)
The type of recipients that will retrieve the report
Applicable only to Business organisations
The recipients that will retrieve the report
Responses
Runs a report and sends its results via email to the user who runs it
POST https://sandbox.crm.com/backoffice/v1/reports/contacts_summary HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"format": "CSV",
"filters_set": [
{
"label": "Registration date",
"key": "period_from",
"value": "THIS_MONTH",
"type": "INTEGER"
}
],
"columns_set": [
{
"order": 1,
"label": "Code",
"key": "product_code",
"type": "INTEGER"
}
],
"group_by_set": [
{
"order": 1,
"label": "Type",
"key": "product_type",
"type": "TEXT"
}
]
}
HTTP/1.1 200 OK
Schedule a report to be send on a recurring basis and send to users of a specific team
POST https://sandbox.crm.com/backoffice/v1/reports/contacts_summary HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"format": "PDF",
"filters_set": [
{
"label": "Registration date",
"key": "period_from",
"value": "THIS_MONTH",
"type": "TEXT"
}
],
"columns_set": [
{
"order": 1,
"label": "Code",
"key": "product_code",
"type": "INTEGER"
}
],
"group_by_set": [
{
"order": 1,
"label": "Type",
"key": "product_type",
"type": "INTEGER"
}
],
"scheduler_options": {
"period": "MONTHLY",
"frequency": "0 0 12 * * ?"
},
"recipients": [
{
"recipient_type": "TEAM",
"recipient_id": "b52f4dbb-0ccf-db7a-93b6-2cc35af9fc39"
}
]
}
HTTP/1.1 200 OK
{id}Schedule a report and sends its results via email to a group of recipients
Path variables
The report (identifier) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The report’s format
Defines the scheduler settings that will send a report on a recurring basis (if not specified, report will be generated and send only once)
Defines the period when report generation will take place
The repeat frequency provided as a cron expression pattern
Defines the recipients that will receive the report results (if not specified, will be send to the user that requested such report)
The type of recipients that will retrieve the report
Applicable only to Business organisations
The recipients that will retrieve the report
Responses
Body
The report identifier
PUT https://sandbox.crm.com/backoffice/v1/reports/81228876-09c6-cc46-638d-be2a7a6867bf HTTP/1.1
Content-Type: application/json
{
"format": "CSV",
"scheduler_options": {
"period": "DAILY",
"frequency": "0 0 12 * * ?"
},
"recipients": [
{
"recipient_type": "USER",
"recipient_id": "b52f4dbb-0ccf-db7a-93b6-2cc35af9fc39"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "81228876-09c6-cc46-638d-be2a7a6867bf"
}
{id}Delete a scheduled report
Path variables
The report (unique name) that will be scheduled
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/reports/1193d47e-f079-3f03-299b-50b7419459af HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK Retrieve all scheduled reports
Request parameters
Filter based on report name
Filter based on report type
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The type of the event
The scheduled report name
Defines the scheduler settings that will send a report on a recurring basis (if not specified, report will be generated and send only once)
Defines the period when report generation will take place
The repeat frequency provided as a cron expression pattern
The next scheduled period to run the report
Defines the recipients that will receive the report results
The type of recipients that will retrieve the report
Applicable only to Business organisations
The recipient name
The recipient username (applicable for recipients of type == USER)
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/reports HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"type": "contacts_summary",
"name": "VIP Contacts",
"scheduler_options": {
"period": "DAILY",
"next_scheduled": 1631182104
},
"recipients": [
{
"type": "TEAM",
"name": "John Doe",
"username": "johndoe@crm.com"
}
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Get details for a specific (scheduled) report
Path variables
The (scheduled) report (identifier) that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The (scheduled) report (identifier) that will be retrieved
The scheduled report name
The type of the event
The report’s format
Details about the filters based on which the report runs
The filter’s label
The filter’s name
The filter’s value as this was specified by the user
The data type of the filter
Details about the columns that will be included in the report
The ordering of the columns from left to right
The column’s label as this will be displayed on the report
The field’s name
The data type of the filter
Details about the fields to be used to group the report’s results
The grouping’s ordering
The group by field’s label as this will be displayed on the report
The field’s name
The data type of the filter
Defines the scheduler settings that will send a report on a recurring basis (if not specified, report will be generated and send only once)
Defines the period when report generation will take place
The repeat frequency provided as a cron expression pattern
The next scheduled period to run the report
Details about the recipients that will receive the report results
The type of recipients that will retrieve the report
Applicable only to Business organisations
The recipients that will retrieve the report
GET https://sandbox.crm.com/backoffice/v1/reports/df97fe77-84f0-d761-39d6-6d9e1ddf4962 HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"name": "VIP Contacts",
"type": "contacts_summary",
"format": "PDF",
"filters_set": [
{
"label": "Registration date",
"key": "period_from",
"value": "THIS_MONTH",
"type": "DATE"
}
],
"columns_set": [
{
"order": 1,
"label": "Code",
"key": "product_code",
"type": "TEXT"
}
],
"group_by_set": [
{
"order": 1,
"label": "Type",
"key": "product_type",
"type": "TEXT"
}
],
"scheduler_options": {
"period": "MONTHLY",
"frequency": "0 0 12 * * ?"
},
"recipients": [
{
"recipient_type": "TEAM",
"recipient_id": "b52f4dbb-0ccf-db7a-93b6-2cc35af9fc39"
}
]
}
{id}/analyticsGet analytics for an organisation
Path variables
The organisation identifier that is optionally a parent. If the organisation is a Parent an optional paramter can request children in the same response.
Request parameters
Which metrics are required. A list of metrics can be included in the request, comma separated. At least one must be specified.
Total Awarded Amount and Total Number of Awards and Previous Period Values
Total Spent Amount and Total Number of Spends and Previous Period Values
Frequency denotes which metric will be applied for example get the daily or monthly metrics
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The number of contacts auth’d against a WiFi platform
The number of devices auth’d against a WiFi platform
Details about data allowance (data should be aggregated from child organisations as well)
The consumed data allownace
The remaining data allownace
The total data allownace (consumed + remaining)
Details about the top 10 organisations that allowance was consumed
The organisation identifier
The organisation name
The total allowance consumed on the organisation
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/organisations/babc8d45-50be-4259-b1bf-c85dee46642f/analytics HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"organisation_id": "64824e45-ad64-40c5-9ef4-81cb4d88d9b5",
"organisation_name": "Subscription-Billing",
"merchants": 1,
"venues": 1,
"trials": 1,
"new_sign_ups": 1,
"referred_by": 1,
"reward_participants": 1,
"reward_participants_per_tier": 1,
"open_loop_reward_participants": 1,
"close_loop_reward_participants": 1,
"active_offers": 1,
"most_awarded_offer": "",
"total_awards": 1,
"total_spends": 1,
"given_awards": 1,
"awards_spend": 1,
"average_spend_per_visit": 1,
"top_10_best_offers": [
{
"offer_id": "034de72f-2006-4a80-ba49-13c4de5cc31b",
"offer_name": "Register to Sports channel and win 21 BDT",
"total_award_amount": 26.25
}
],
"total_purchase_amount": 1,
"total_visits": 1,
"most_visited_venues": "",
"total_applications_usage": 1,
"wallets_open_balance": 1,
"wallets_commerse_balance": 1,
"active_subscribers": 1,
"inactive_subscribers": 1,
"new_services": 1,
"cancelled_services": 1,
"regretted_services": 1,
"upgraded_services": 1,
"downgraded_services": true,
"services_in_trial": 1,
"deactivated_services": 1,
"activated_services": 1,
"paid_services_in_trial": 1,
"cancelled_services_in_trial": 1,
"new_subscribers": 1,
"reactivated_subscriptions": 1,
"removed_services_after_expiration": 1,
"cancelled_services_in_contract": 1,
"cancelled_services_not_in_contract": 1,
"renewed_services": 1,
"expired_services": 1,
"subscriber_churn_rate": 1,
"active_subscriptions_per_billing_period": 1,
"active_services_per_month": 1
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/analyticsGet analytics for a contact
Path variables
The contact (identifier) of which analytics will be retrieved
Request parameters
Filters based on which metrics will be retrieved (a list of metrics can be included in the request, comma separated - and at least one metric should be specified)
Frequency denotes which metric will be applied for example get the daily or monthly metrics
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Details about the contact
The contact identifier
The contact (full) name
Details about contact’s usage
The usage that is already consumed
The remaining usage that can be consumed
The percentage relation between consumed and allowed usage
GET https://sandbox.crm.com/backoffice/v1/contacts/babc8d45-50be-4259-b1bf-c85dee46642f/analytics?metrics=USAGE&frequency=OVERALL HTTP/1.1
api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
HTTP/1.1 200 OK
Content-Type: application/json
{
"contact": {
"id": "fa3360fa-a246-7d1e-1c41-eda3c093dcc9",
"name": "John R. Doe"
},
"usage": {
"consumed_usage": 20,
"remaining_usage": 80,
"usage_percentage": 20
}
}Create an upload signature for files
Notes
Uploading files into CRM is made based on the following flow & API calls
- Upload File Signature
- Connect File to a “Module” Entity, such as Service Request Files
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
File contents provided via multipart/form-data
Responses
Body
The file identifier that will be used for connecting the file with a module
POST https://sandbox.crm.com/backoffice/v1/upload/files HTTP/1.1
Content-Type: multipart/form-data
api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
{
"file": "file object"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "7279fecf-b0a6-0aab-6bcd-37881fe8c10e"
}{id}Delete an existing file
Path variables
The file (identifier) to be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/files/5f21680e-2ce4-7b4b-7221-42cc2a41bc05 HTTP/1.1
api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
HTTP/1.1 200 OK {id}Retrieve a specific file
Path variables
The file (identifier) to be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The file identifier
The URL that can be used to access the actual content of the file
The mime type of the uploaded file
GET https://sandbox.crm.com/backoffice/v1/files/5f21680e-2ce4-7b4b-7221-42cc2a41bc05 HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "3ae9d64a-8a3b-f1e1-eed6-05b307f926fb",
"content_url": "crm.com/file",
"mime": "txt"
}{id}Create an upload media
Notes
Uploading media into CRM is made based on the following flow & API calls
- Create new Media Group
- Create “Module” Media Group, such as Product Media Groups
- Upload Media
- Perform Cloudinary Upload (where CRM will send all signature details)
- Cloudinary service calls back CRM media group (using an internal callback)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The media group (identifier) to associate the media item with once uploaded (external id is based on the response of Create new Media Group)
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The related Cloudinary folder (within CRM the folder is set as the media related organisation-id)
The key to track upload (random UUID)
Responses
Body
The API key that is used for uploading media
The name of the cloudinary instance
The uploaded signature context
The uploaded signature value
The date/time on which such upload was made
Details about the upload options
The folder in which media will be uploaded (and located)
The media group external identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Defines how media will be used
The option type (defaults to upload)
Details that will be used in the signature
The folder in which media will be uploaded (and located)
Defines what action will be performed on the media (always is set to “upload”)
The key to track the current upload
POST https://sandbox.crm.com/backoffice/v1/upload/media HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"media_group_external_id": "e66896ba-db0a-41e2-8093-9aca2ae02f29",
"media_usage_type": "LOGO",
"folder": "offers/hero",
"tracking_key": "26c32dfe-f8ea-9cf3-a5af-5096be4a164b"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"api_key": "698271538719998",
"cloud_name": "crm-com",
"context": "uploadStrategy=MEDIA_UPLOAD|organisationId=8062c26a-c05f-47ca-81e4-566b3c279320|trackingKey=e3ffca89-902f-4bd6-b503-c7dcf59dd725|mediaGroupExternalId=1d7b73d2-a324-4cee-a97a-492050b101ef|usageType=ATTACHMENT",
"signature": "8f38472a40d8466f11852bd9d3a19c23bfe12f91",
"timestamp": 1616056261,
"upload_options": [
{
"folder": "35d7d0a4-9846-73a7-8707-26d2507edc51",
"media_group_external_id": "35d7d0a4-9846-73a7-8707-26d2507edc51",
"media_usage_type": "MARKETING",
"options": {
"type": "upload"
},
"needed_signature_options": {
"folder": "6ff2469c-e473-e370-c86e-16633434607a",
"type": "upload"
},
"tracking_key": "6ff2469c-e473-e370-c86e-16633434607a"
}
]
}
{id}Delete an existing media
Path variables
The media (identifier) to be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/media/5f21680e-2ce4-7b4b-7221-42cc2a41bc05 HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK Create a new group for upcoming uploaded media
Notes
Uploading media for an entity requires the execution of the following APIs
- Create new Media Group
- Create “Module” Media Group, such as Product Media Groups
- Upload Signature
- Perform Cloudinary Upload (where CRM will send all signature details)
- Cloudinary service calls back CRM media group (using an internal callback)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The media group name
The media group description
The media group external identifier
Responses
POST https://sandbox.crm.com/backoffice/v1/media_group HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"name": "Marketing",
"description": "Marketing Media Group for Creatives",
"externalId": "747e5a96-24a2-7aca-7b28-da5e996ad54c"
}
HTTP/1.1 200 OK Create an upload signature
Notes
Uploading media into CRM is made based on the following flow & API calls
- Create new Media Group
- Create “Module” Media Group, such as Product Media Groups
- Upload Signature
- Perform Cloudinary Upload (where CRM will send all signature details)
- Cloudinary service calls back CRM media group (using an internal callback)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The media group (identifier) to associate the media item with once uploaded (external id is based on the response of Create new Media Group)
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The related Cloudinary folder (within CRM the folder is set as the media related organisation-id)
The key to track upload (random UUID)
Responses
Body
The API key that is used for uploading media
The name of the cloudinary instance
The uploaded signature context
The uploaded signature value
The date/time on which such upload was made
Details about the upload options
The folder in which media will be uploaded (and located)
The media group external identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The key to track the current upload
POST https://sandbox.crm.com/backoffice/v1/upload/sign HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"mediaGroupExternalId": "e66896ba-db0a-41e2-8093-9aca2ae02f29",
"mediaUsageType": "AVATAR",
"folder": "a01ad9a4-5c9f-e676-fbcb-b0d03c51f022",
"trackingKey": "a01ad9a4-5c9f-e676-fbcb-b0d03c51f044"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"apiKey": "698271538719998",
"cloudName": "crm-com",
"context": "uploadStrategy=MEDIA_UPLOAD|organisationId=8062c26a-c05f-47ca-81e4-566b3c279320|trackingKey=e3ffca89-902f-4bd6-b503-c7dcf59dd725|mediaGroupExternalId=1d7b73d2-a324-4cee-a97a-492050b101ef|usageType=ATTACHMENT",
"signature": "8f38472a40d8466f11852bd9d3a19c23bfe12f91",
"timestamp": 1616056261,
"uploadOptions": [
{
"folder": "35d7d0a4-9846-73a7-8707-26d2507edc51",
"mediaGroupExternalId": "35d7d0a4-9846-73a7-8707-26d2507edc51",
"mediaUsageType": "ATTACHMENT",
"options": {
"type": "upload"
},
"optionsNeededInSignature": {
"folder": "6ff2469c-e473-e370-c86e-16633434607a",
"type": "upload"
},
"trackingKey": "6ff2469c-e473-e370-c86e-16633434607a"
}
]
}
{id}{id}{id}{id}/actions{id}/actionsCreate a new automation
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The automation name
The automation description
The automation state
Defines the entity that its events will trigger this automation
Defines the event that will trigger this automation (filtered based on the selected entity)
Approvals
Approvals
Contacts
Contacts
Contacts
ContactsContacts
Contacts
Contacts & Users
Orders
Orders
Orders
Orders
Passes
Passes
Rewards
Rewards
Reward Offers
Reward Schemes
Service Requests
Organisations
Organisations
Users
Users
Products
Financial Transactions
Financial Transactions
Financial Transactions
Financial Transactions
Financial Transactions
Customer Events
Customer Events
Customer Events
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Financial Transactions
Responses
The requested succeded
Body
The automation identifier
POST https://sandbox.crm.com/backoffice/v1/automations HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"name": "Approve Offers",
"description": "Require 4 approvals for an offer",
"state": "INACTIVE",
"entity": "ORDERS",
"event": "ORDER_INITIATION"
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "890108f6-0237-d984-a367-2f9502dc2acc"
}{id}Update an existing automation
Path variables
The automation (identifier) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The automation name
The automation description
Defines whether the automation is active or not
Responses
Successful Request
Body
The automation identifier that was updated
PUT https://sandbox.crm.com/backoffice/v1/automations/QWERTY1234543212345678UJIKY76HJR HTTP/1.1
Content-Type: application/json
{
"name": "Approve Offers",
"description": "Require 4 approvals for an offer",
"life_cycle_state": "ACTIVE"
}{id}Delete an existing automation
Path variables
The automation (identifier) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
DELETE https://devapi.crm.com/backoffice/v1/automations/QWERTY1234543212345678UJIKY76HJR HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK Search for automations
Request parameters
Search automations based on Name
Filter based on automation name
Filter based on automation state
Filter based on the entity that its event will trigger the automation
Filter based on the event that will trigger the automation
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The automation identifier
The automation name
The automation description
The automation state
Defines the entity that its events will trigger this automation
Defines the event that will trigger this automation (filtered based on the selected entity)
Approvals
Approvals
Contacts
Contacts
Contacts
ContactsContacts
Contacts
Contacts & Users
Orders
Orders
Orders
Orders
Passes
Passes
Rewards
Rewards
Reward Offers
Reward Schemes
Service Requests
Organisations
Organisations
Users
Users
Products
Financial Transactions
Financial Transactions
Financial Transactions
Financial Transactions
Financial Transactions
Customer Events
Customer Events
Customer Events
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Financial Transactions
The page number
The number of records per page
The overal number of records
GET https://stagingapi.crm.com/backoffice/v1/automations HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "Notify customers on award",
"description": "Lorem Ipsum",
"life_cycle_state": "INACTIVE",
"entity": "Contacts",
"event": "Register Customer"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Get details for a specific automation
Path variables
The automation (identifier) that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The automation identifier
The automation name
The automation description
The automation state
Defines the entity that its events will trigger this automation
Defines the event that will trigger this automation (filtered based on the selected entity)
Approvals
Approvals
Contacts
Contacts
Contacts
ContactsContacts
Contacts
Contacts & Users
Orders
Orders
Orders
Orders
Passes
Passes
Rewards
Rewards
Reward Offers
Reward Schemes
Service Requests
Organisations
Organisations
Users
Users
Products
Financial Transactions
Financial Transactions
Financial Transactions
Financial Transactions
Financial Transactions
Customer Events
Customer Events
Customer Events
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Subscriptions
Financial Transactions
GET https://devapi.crm.com/backoffice/v1/automations/CEEE83D6E0804A30966F684B0269AD91 HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "Notify awarded customers",
"description": "On customer award an outbound email communication will be triggered",
"life_cycle_state": "INACTIVE",
"entity": "CONTACTS",
"event": "AWARD_CUSTOMER"
}{id}/actionsSet the sequence of actions (including filters) for a specific automation
Path variables
The automation (identifier) whose sequence will be set
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The automation action identifier
Defines the sequence’s action
Defines the sequence path
The automation adaptor
Approval Requests
Automatic Content Updates
Communications
Order Provision
Service Request Provision
Webhooks
MICROS Simphony Order Provision
NCR Aloha Order Provision
The automation adaptor action (each action is applicable for specific adaptors)
Request User Appoval (Approval Requests adaptor)
Request Customer Appoval (Approval Requests adaptor)
Update Content (Automatic Content Updates adaptor)
Communicate Customer (Communications adaptor)
Communicate User (Communications adaptor)
Assign To A Specific User (Order Provision & Service Request Provision adaptor)
Fulfilled By Specific Organisation (Order Provision & Service Request Provision adaptor)
Assign To Specific Team (Order Provision adaptor)
Fulfilled By Nearest Location (Order Provision adaptor)
Fulfilled Based On Post Code Coverage (Order Provision adaptor)
POST Webhook (webhooks adaptor)
Put Webhook (webhooks adaptor)
Assign To User Of A Specific Team (Service Request Provision adaptor)
Assign To User Of A Specific User Role (Service Request Provision adaptor)
Fulfilled By User Of A Specific User Role (Service Request Provision adaptor)
Fulfilled By Specific User (Service Request Provision adaptor)
Provision Order To Simphony POS (MICROS Simphony Order Provision adaptor)
Provision Order To Aloha POS (NCR Aloha Order Provision adaptor)
Details about the adaptor’s actions parameters
The parameter identifier
The parameter group (used when more than one parameters should be specified for an adaptor’s action)
The parameter key
The parameter from value
The parameter to value
The parameter type
Details about the filters to be applied (required when type is based on Filter)
Details about the applicable filtered attributes
The filter identiifer
The custom field that its value will be compared based on the related operator
The attribute that its value will be compared based on the related operator
The type of the key
The filter operator to compare the attribute actual value with the filtered one
Applicable for type of number/integer/date
Applicable for type of string
Applicable for type of number/integer/date
Applicable for type of number/integer/date
Applicable for type of number/integer/date
Applicable for type of number/integer/date
The attribute value to apply the filter condition (either value or value_list should be specified)
The supported list of values (either value or value_list should be specified)
Responses
OK
Body
The automation identifier
POST https://stagingapi.crm.com/backoffice/v1/automations/6A24D2B5E44F44B28451FE021FCAD51E/actions HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"content": [
{
"id": "ACTIONB5E44F44B28451FE021FCAD51E",
"adaptor": "APPROVAL_REQUESTS",
"adaptor_action": "ASSIGN_SPECIFIC_DEPARTMENT",
"order": 1,
"path": "1",
"adaptor_action_parameters": [
{
"id": "4b8e0ae7-0f8a-4313-a1fd-ecc1c0510f55",
"parameter_group": "1",
"parameter_key": "RICH_CONTENT",
"parameter_from_value": "123",
"parameter_to_value": "1234",
"parameter_type": "APPROVAL_ENTITY_TYPE"
}
],
"action_filters": [
{
"filters": [
{
"id": "edd5ac0e-05e3-e543-d38e-c6df6eed8d46",
"attribute": "NAME",
"type": "NUMBER",
"operator": "EQUAL_LESS",
"value": "123",
"value_list": [
""
]
}
]
}
]
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E"
}
{id}/actionsRetrieves the automation’ sequence of actions (including filters)
Path variables
The automation (identifier) whose actions will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The automation action identifier
Defines the sequence’s action
The automation adaptor
Approval Requests
Automatic Content Updates
Communications
Order Provision
Service Request Provision
Webhooks
MICROS Simphony Order Provision
NCR Aloha Order Provision
The automation adaptor action (each action is applicable for specific adaptors)
Request User Appoval (Approval Requests adaptor)
Request Customer Appoval (Approval Requests adaptor)
Update Content (Automatic Content Updates adaptor)
Communicate Customer (Communications adaptor)
Communicate User (Communications adaptor)
Assign To A Specific User (Order Provision & Service Request Provision adaptor)
Fulfilled By Specific Organisation (Order Provision & Service Request Provision adaptor)
Assign To Specific Team (Order Provision adaptor)
Fulfilled By Nearest Location (Order Provision adaptor)
Fulfilled Based On Post Code Coverage (Order Provision adaptor)
POST Webhook (webhooks adaptor)
Put Webhook (webhooks adaptor)
Assign To User Of A Specific Team (Service Request Provision adaptor)
Assign To User Of A Specific User Role (Service Request Provision adaptor)
Fulfilled By User Of A Specific User Role (Service Request Provision adaptor)
Fulfilled By Specific User (Service Request Provision adaptor)
Provision Order To Simphony POS (MICROS Simphony Order Provision adaptor)
Provision Order To Aloha POS (NCR Aloha Order Provision adaptor)
Details about the adaptor’s actions parameters
The parameter identifier
The parameter key
The parameter from value
The parameter to value
The parameter type
The parameter group (used when more than one parameters should be specified for an adaptor’s action)
Details about the filters to be applied (required when type is based on Filter)
Details about the applicable filtered attributes
The filter identiifer
The attribute that its value will be compared based on the related operator
The type of the key
The filter operator to compare the attribute actual value with the filtered one
Applicable for type of number/integer/date
Applicable for type of string
Applicable for type of number/integer/date
Applicable for type of number/integer/date
Applicable for type of number/integer/date
Applicable for type of number/integer/date
The attribute value to apply the filter condition (either value or value_list should be specified)
The supported list of values (either value or value_list should be specified)
The custom field that its value will be compared based on the related operator
GET https://stagingapi.crm.com/backoffice/v1/automations/6A24D2B5E44F44B28451FE021FCAD51E/actions HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "ACTIONB5E44F44B28451FE021FCAD51E",
"order": 1,
"adaptor": "COMMUNICATIONS",
"adaptor_action": "REQUEST_APPROVAL",
"adaptor_action_parameters": [
{
"id": "4b8e0ae7-0f8a-4313-a1fd-ecc1c0510f55",
"parameter_key": "RICH_CONTENT",
"parameter_from_value": "123",
"parameter_to_value": "1234",
"parameter_type": "SUPPLY_METHOD",
"parameter_group": "1"
}
],
"action_filters": [
{
"filters": [
{
"id": "edd5ac0e-05e3-e543-d38e-c6df6eed8d46",
"attribute": "NAME",
"type": "NUMBER",
"operator": "GREATER",
"value": "123",
"value_list": [
""
]
}
]
}
]
}
]
}
{id}/actions/{action_id}/records/{record_id}{id}/actions/{action_id}/records{id}/actions/{action_id}/records/{record_id}{id}/actions/{action_id}/records/{record_id}Change the value of a specific adaptor action record attribute
Path variables
The approval request (identifier) that will be updated
The action (identifier) whoe record will be retrieved
The record (identifier) that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The record’s key
The record’s value
Responses
Successful Request
Body
The record identifier
POST https://stagingapi.crm.com/backoffice/v1/adaptors/CAD1E31269B76D7A65ACCE45B2E68DFD/actions/CAD1E31269B76D7A65ACCE45B2E68DFQ/records/CAD1E31269B76D7A65ACCE45B2E68DFJ HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"key": "url-endpoint",
"value": "https://crm.com"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{id}/actions/{action_id}/recordsSearch for an adaptor action’s records (e.g. CRM.COM Apporvals Adaptor approval requests)
Path variables
The adaptor (identifier) whose actions will be retrieved
The action (identifier) that will be retrieved
Request parameters
Defines the entitiy type that the search will be applied (required for search_value)
Defines the free text search parameter based on the provided type (required when search_type is specified)
Filter based on automations that triggered such action
Filter based on adapto action that created such record
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The record identifier
Details about the records attributes
The attribute identifier
The record’s attribute key
The record’s attribute label
The record’s attribute type
The record’s attribute value
The page number
The number of records per page
The overal number of records
GET https://stagingapi.crm.com/backoffice/v1/adaptors/82697d43-4970-4dcc-bd35-7df27c72b8f6/actions/1b75a53f-b189-40bb-8db0-39b0578a6aqa/records HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CEEE83D6E0804A30966F684B0269AD91",
"record_attributes": [
{
"id": "CEEE83D6E0804A30966F684B0269AD9G",
"key": "url-endpoint",
"label": "URL Endpoint",
"type": "string",
"value": "https://crm.com"
}
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/actions/{action_id}/records/{record_id}Retrieve details for a specifc adaptor action’s records (e.g. CRM.COM WEbhooks Adaptor webhook request)
Path variables
The adaptor (identifier) whose action’s record will be retrieved
The action (identifier) whoe record will be retrieved
The record (identifier) that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The record identifier
Details about the record attributes
The attribute identifier
The record’s attribute key
The record’s attribute label
The record’s attribute type
The record’s attribute value
GET https://stagingapi.crm.com/backoffice/v1/adaptors/82697d43-4970-4dcc-bd35-7df27c72b8f6/actions/1b75a53f-b189-40bb-8db0-39b0578a6aqa/records/1b75a53f-b189-40bb-8db0-39b0578a6a2w HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "be8c05c4-2f97-4b40-a979-42f066db265c",
"record_attributes": [
{
"id": "be8c05c4-2f97-4b40-a979-42f066db26qw",
"key": "url-endpoint",
"label": "URL Endpoint",
"type": "string",
"value": "https://crm.com"
}
]
}
{id}/actionsSearch for approval requests
Request parameters
The value of the search (case insensitive) across entity and entity reference
Filter based on approval request state
Filter based on automations that triggered such request (applicable only when org_requests is set to NETWORK_REQUESTS)
Filter based on a single user that is authorised to approve/reject such request
Filter based on a single contact that is authorised to approve/reject such request
Filter based on the condition type that are authorised to approve/reject such requests
Filter based on the entity (contact/user) that requested such approval
Filter based on the entity type that such requests are applied to
Filter based on entity record that such request is applied to
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The approval request identifier
The approval request state
Details about the entity that such approval request was applied to
The entity identifier
The approval entity type
The entity reference name/code/number
Details about the automation
The automation identifer
The automation name
Details about the approval request’s response
The authorised user/contact response message on this request
The resposne state
Details about the person (user/contact) who approved/rejected such request
The authorised person identifier
The authorised person full name
The authorised type of person
The date/time when such request was approvded/rejected
Details about the authorised by type who can approve/reject such requests
The authorised condition identifier
The authorised condition name (e.g. contact full name, user role name)
The authorised condition type
The date that the approval was requested
Defines how many should approve/reject the approval
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/approval_requests HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CEEE83D6E0804A30966F684B0269AD91",
"state": "APPROVED",
"description": "The award of the offer has been changed to 100% from what it was 50%",
"response": "Approved",
"authorised_by": {
"id": "23490b97-dd93-3eb4-c3bc-e6828e12e2c1",
"name": "John Doe",
"type": "USER"
},
"authorised_on": 1611930210,
"automations": {
"id": "cf010c72-a2cb-48f8-a9fa-1ed99c8d6ec0",
"name": "Request approval on newly activated offers"
},
"entity": {
"id": "cf010c72-a2cb-48f8-a9fa-1ed99c8d6ec0",
"type": "REWARD_OFFER",
"reference": "5% discount"
},
"authorised_conditions": [
{
"id": "18eb40c8-ba71-fa51-9de7-5b7017962ccf",
"name": "John Doe",
"type": "USER"
}
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/actionsChange the life cycle state of a single approval request
Path variables
The approval request identifier that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The approval request state that will be changed to
The reason why the approval request was approved or rejected
Responses
Successful Request
Body
The approval request identifier
POST https://devapi.crm.com/backoffice/v1/approval_requests/CAD1E31269B76D7A65ACCE45B2E68DFD/life_cycle_state HTTP/1.1
Content-Type: application/json
{
"life_cycle_state": "REJECTED"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}Retrieve the pending approvals that the signed-in user is authorised to approve/reject, but not yet process them
Request parameters
The value of the search (case insensitive) across entity and entity reference
Filter based on the entity type that such requests are applied to
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
Responses
The request has succeeded
Body
The approval request identifier
Details about the entity that such approval request was applied to
The entity identifier
The approval entity type
The entity reference name/code/number
Details about the automation
The automation identifer
The automation name
The date that the approval was requested
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/approval_requests/my_pending_approvals HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CEEE83D6E0804A30966F684B0269AD91",
"entity": {
"id": "cf010c72-a2cb-48f8-a9fa-1ed99c8d6ec0",
"type": "SERVICE_REQUEST",
"reference": "CO1234"
},
"automations": {
"id": "cf010c72-a2cb-48f8-a9fa-1ed99c8d6ec0",
"name": "Request approval on newly activated offers"
},
"created_date": 1642508197
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
Retrieve the approvals requested by the signed-in user
Request parameters
The value of the search (case insensitive) across entity and entity reference
Filter based on approval request state
Filter based on the entity type that such requests are applied to
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
Responses
The request has succeeded
Body
The approval request identifier
The approval request state
Details about the entity that such approval request was applied to
The entity identifier
The approval entity type
The entity reference name/code/number
Details about the automation
The automation identifer
The automation name
Details about the approval request’s response
The authorised user/contact response message on this request
The resposne state
Details about the person (user/contact) who approved/rejected such request
The authorised person identifier
The authorised person full name
The authorised type of person
The date/time when such request was approvded/rejected
The date that the approval was requested
Defines how many should approve/reject the approval
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/approval_requests/my_requests HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CEEE83D6E0804A30966F684B0269AD91",
"state": "APPROVED",
"entity": {
"id": "cf010c72-a2cb-48f8-a9fa-1ed99c8d6ec0",
"type": "ORDER",
"reference": "CO1234"
},
"automations": {
"id": "cf010c72-a2cb-48f8-a9fa-1ed99c8d6ec0",
"name": "Request approval on newly activated offers"
},
"responses": [
{
"message": "This is a response message",
"state": "APPROVED",
"authorised_by": {
"id": "23490b97-dd93-3eb4-c3bc-e6828e12e2c1",
"name": "John Doe",
"type": "USER"
},
"authorised_on": 1611930210
}
],
"created_date": 1642508197,
"pending_requests": 2
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}{id}{id}Create a new webhook
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The webhook name
The webhook method type
The webhook url endpoint
Defines how the webhook will be protected
The username that will auth the webhook requests (applicable if url_auth = USERNAME_PASSWORD)
The password that will auth the webhook requests (applicable if url_auth = USERNAME_PASSWORD)
The api key that will auth the webhook requests (applicable if url_auth = API_KEY)
Number of times to retry
Wait for period before retry (in seconds)
Responses
OK
Body
The webhook identifier
POST https://stagingapi.crm.com/backoffice/v1/webhooks HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"name": "CRMdotCOM Delivery",
"method": "POST",
"url_endpoint": "https://crm.com/delivery",
"url_auth": "NO_AUTH",
"username": "johndoe",
"password": "crm.com",
"api_key": "qwert-12345-qwewerwer-123234234-werwerwr"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "API1E31269B76D7A65ACCE45B2E68DFD"
}
{id}Update an existing webhook
Path variables
The webhook (identifier) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The webhook name
The webhook url endpoint
Defines how the webhook will be protected
The username that will auth the webhook requests (applicable if url_auth = USERNAME_PASSWORD)
The password that will auth the webhook requests (applicable if url_auth = USERNAME_PASSWORD)
The api key that will auth the webhook requests (applicable if url_auth = API_KEY)
Number of Times to Retry
Wait for period before retry (in seconds)
Responses
OK
Body
The webhook identifier
PUT https://devapi.crm.com/backoffice/v1/webhooks/CAD1E31269B76D7A65ACCE45B2E68WHI HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"name": "CRMdotCOM Delivery",
"url_endpoint": "https://crm.com/delivery",
"url_auth": "NO_AUTH",
"username": "johndoe",
"password": "crm.com",
"api_key": "qwert-12345-qwewerwer-123234234-werwerwr"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "API1E31269B76D7A65ACCE45B2E68DFD"
}{id}Delete an existing webhook
Path variables
The webhook (identifier) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
DELETE https://devapi.crm.com/backoffice/v1/webhooks/CAD1E31269B76D7A65ACCE45B2E68WHI HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK Retrieve all webhooks
Request parameters
The value of the search (case insensitive) across Name, URL Endpoint
Filter based on the name
Filter based on the url endpoint
Filter based on related automation entity
Filter based on related automation event
Filter based on whether webhook has at least one failed request
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
Information about the organisation’ webhooks
The webhook identifier
The webhook name
The webhook method type
The webhook url endpoint
Defines how the webhook will be protected
The number of pending requests
The number of successful requests
The number of failed requests
Number of times to retry
Wait for period before retry
The page number
The number of records per page
The overal number of records
GET https://devapi.crm.com/backoffice/v1/webhooks HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "API1E31269B76D7A65ACCE45B2E68DFD",
"name": "Registration Name",
"url_endpoint": "https;//crm.com/delivery",
"url_auth": "API_KEY"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}Get details of a single webhook
Path variables
The webhooks (identifier) that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
Information about the organisation’ webhooks
The organisation’s webhook identifier
The webhook name
The webhook method type
The webhook url endpoint
Defines how the webhook will be protected
The webhook auth username (applicable only if url_auth = USERNAME_PASSWORD)
The webhook auth password (applicable only if url_auth = USERNAME_PASSWORD)
Defines the date up until the secret api key will be active
The number of pending requests
The number of successfull requests
The number of failed requests
Number of times to retry
Wait for period before retry (in seconds)
GET https://devapi.crm.com/backoffice/v1/webhooks/API1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "API1E31269B76D7A65ACCE45B2E68DFD",
"name": "CRMdotCOM Delivery",
"url_endpoint": "https://crm.com/delivery",
"url_auth": "USERNAME_PASSWORD",
"username": "johndoe",
"password": "crm.com",
"api_key": "sdfsdfsdf-32423423423-wefsdfsdfdsf-234234234"
}
]
}
Retrieve webhook requests
Request parameters
The value of the search (case insensitive) across Webhook Name, URL Endpoint
Filter based on the webhook
Filter based on the url endpoint
Filter based on the request state
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
Information about the organisation’ webhook requests
The webhook request identifier
The state of the webhook request
The webhook url endpoint
Defines how the webhook will be protected
The request body that was sent
The response that was sent
The total number of request retries
The webhook of the request
The webhook identifier
The webhook name
The automation that triggered the webhook
The automation identifier
The automation name
Information about the related entity that the request is created for
The entity type that the webhook request is created for
The entity’s reference name/code/number
The date that such request was made
The page number
The number of records per page
The overal number of records
GET https://devapi.crm.com/backoffice/v1/webhook_requests HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "API1E31269B76D7A65ACCE45B2E68DFD",
"state": "SUCCESS",
"url_endpoint": "https;//crm.com/delivery",
"url_auth": "USERNAME_PASSWORD",
"body": "POST /crm.com/delivery HTTP/1.1 Host: staging.crm.com Content-Type: application/json api_key: 123456789012-1234-1234-1234-123456789012 Content-Type: text/plain { \"contact_id\": \"123456789012-ABCD-ABCD-ABCD-123456789012\", \"amount\": 20.45 }",
"response": "{ \"status\": { \"code\": \"COM.CRM.EXCEPTION.INVALIDTOKENEXCEPTION\", \"description\": \"The specific token is not valid.\", \"message\": \"The token is invalid, please obtain a new one.\" } }",
"retries": 3,
"webhook": {
"id": "API1E31269B76D7A65ACCE45B2E68WIH",
"name": "CRMdotCOM Delivery"
},
"automation": {
"id": "b63ed1ab-0256-453d-82a4-a8a83a02ea8b",
"name": "Share content to delivery system"
},
"entity": {
"type": "CONTACT",
"reference": "ORD1234ER"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
Resend a number of failed webhook requests
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
List all failed webhook requests that should be resend
Responses
The request has succeeded
{id}/actionsPreview the content of a file that will be imported
Notes
Importing Data should be made based on the following API order
- Upload File Signature
- Optionally, preview the content of the uploaded file via Import Preview
- Submit a request to import the content of the uploaded file, including a couple behavorial options via Import Data
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The file (identiifer) that will be previewed
Defines the number of rows that will be previewed (header row is excluded)
Defines whether the header row values will be excluded from import or not
Defines the mapping between the imported file attribures and system attributes
The imported file attribute that will be mapped to the system’s one
The system attribute that will be mapped to the imported file’s one
Defines whether the system attribute key is a custom one or not
Responses
Body
Details about the file preview per row
The header attribute of the specific row
The previewed values of the specific row
[
"CRM", "CRMI"
]GET https://sandbox.crm.com/backoffice/v1/imports/preview HTTP/1.1
Content-Type: application/json
api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
{
"file_id": "f56f9cd8-9cb2-bbe6-d4d9-ae14bb1f0399",
"preview_rows": 2
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"header": "Organisation Name",
"values": [
"CRM", "CRMI"
]
},
{
"header": "Organisation Type",
"values": [
"BUSINESS", "VENUE"
]
}
]
}
Submit a request for importing data along with processing options
Notes
Importing Data should be made based on the following API order
- Upload File Signature
- Optionally, preview the content of the uploaded file via Import Preview
- Submit a request to import the content of the uploaded file, including a couple behavorial options via Import Data
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The file (identifier) that will be used for importing data
The type of the entity that data will be imported
Defines whether the header row values will be excluded from import or not
Defines whether existing records will be updated or not
Defines whether missing attributes will be created automatically
Defines the mapping between the imported file attribures and system attributes
The imported file attribute that will be mapped to the system’s one
The system attribute that will be mapped to the imported file’s one
Defines whether the system attribute key is a custom one or not
Responses
Body
The import definition identifier
POST https://sandbox.crm.com/backoffice/v1/imports HTTP/1.1
Content-Type: application/json
{
"file_id": "1e347d4d-ab96-6957-fdb6-35e72b3d9185",
"type": "CONTACTS",
"exclude_header": true,
"update_data": "false",
"auto_generate_config": true,
"data_mapping": [
{
"import_key": "contact first name",
"attribute_key": "first_name",
"is_custom": "false"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "1e347d4d-ab96-6957-fdb6-35e72b3d9185"
}
Search for import data definitions
Request parameters
Filter imports based on status
Filter imports based on imported record type
Filter based on the imported date, which may fall within a given date range. The value can be a string with a date in epoch format. Each option must also include an operator. Use up to two options based on the required search (e.g. imported_on[gte]=1618395497&imported_on[lt]=1618395497).
Returns results where the imported date is greater than this value
Returns results where the imported date is greater than or equal to this value
Returns results where the imported date is less than this value
Returns results where the imported date is less then or equal to this value
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The import definition identifier
The export definition status
The type of the entity that data will be imported
The date that such import was made
Details how the import file content will be processed
Defines whether the header row values will be excluded from import or not
Defines whether existing records will be updated or not
Defines whether missing attributes will be created automatically
Details about the uploaded file that was used for import
The file identifier
The file name
Details about the file that contain all failed imported data
The file identifier
The file name
Details about the processed data
The records that were created successfully
The records that were updated successfully
The records that were not changed
The records that were failed to be processed
The total number of records that were imported
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/imports HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "507c17d2-3976-d1e5-ccf5-cf3c1334acc7",
"status": "COMPLETED",
"type": "PRODUCTS",
"imported_on": 1623677135,
"options": {
"exclude_header": true,
"update_data": true,
"auto_generate_config": "false"
},
"file": {
"id": "507c17d2-3976-d1e5-ccf5-cf3c1334acc7",
"name": "contacts.csv"
},
"error_file": {
"id": "507c17d2-3976-d1e5-ccf5-cf3c1334acc7",
"name": "contacts_errors.csv"
},
"processed_results": {
"new": 19,
"updated": 4,
"unchanged": 4,
"errors": 1,
"total": 28
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/actionsApply an action on an existing import definition
Path variables
The import definition (identifier) on which an action will be performed
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The type of action that will be performed
Re-submit an import with FAILED status
Responses
Body
The import definition identifier
POST https://sandbox.crm.com/backoffice/v1/imports/0e2e1e37-b118-7bbc-db46-6cd954e01a89/actions HTTP/1.1
Content-Type: application/json
{
"action": "REPLAY"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "0e2e1e37-b118-7bbc-db46-6cd954e01a89"
}{id}/network{id}{id}{id}/network{id}{id}/activity_feed{id}/switch{id}/masquerade{id}/actions{id}/media_groups{id}/billingCreates a business semantic parent as the primary business.
Request headers
The public api key required for API calls to identify the organisation
Request body
The name of the organisation
A brief description of the organisation
The type of the organisation
Defines whether the organisation is the primary business of the business network
The parent organisation identifier that this organisation belongs to
Determines whether the organisation record will be used for test purposes
Determines whether the sandbox mode is enabled or not
Information about the owner (admin user) of the organisation
The user’s first name
The user’s last name
Information about the owner’s identity
The provider of the identity
The identity’s challenge
The identity’s value (e.g. password)
Information about the owner’s contact information
The name of the contact information
The type of the contact information
The contact information value
The country code of the related contact info of type phone
Information about the organisation’s location
Information about the organisation’s location
The name of the location
The address of the location
Additional address information about the location
The state/province/county of the location
The town/city of the location
The postal code of the location
The country code of the location
The care of information of the location
The latitude of the location
The longitude of the location
The Google textual identifier that uniquely identifies a location
The organisation’s base currency (applicable for service owner/business)
The organisation timezone (applicable for business)
The custom field’s unique key
The custom field’s value
Responses
OK
Body
The organisation identifier
POST /organisations/register HTTP/1.1
Content-Type: application/json
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
{
"name": "Delicious Food Group",
"description": "Lorem Ipsum",
"vat_number": "VAT123456789",
"org_type": "BUSINESS",
"is_business": "true",
"organisation_id": "11",
"test_mode": "false",
"is_sandbox_on": "true",
"owner": {
"first_name": "John",
"last_name": "Doe",
"contact_info": [
{
"name": "",
"type": "EMAIL",
"value": "4499885544"
}
]
},
"location": [
{
"name": "Head Office",
"address_line_1": "Elia Papakyriakou 21",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2415",
"country_code": "CY",
"care_of": "",
"lat": "35.157115",
"lon": "33.313719",
"googleplaceid": "ChIJrTLr-GyuEmsRBfy61i59si0"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{id}/networkExpand the business network with new organisations such as transaction processor, service owners and business
Path variables
The organisation (identifier) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The type of the new organisation
Applicable on the level of a Cloud Operator
Applicable on the level of a Cloud Operator
Applicable on the level of a Service Owner
Applicable on the level of a Business
Applicable on the level of a Business or Merchant
The name of the organisation
A brief description of the organisation
Defines whether the organisation is the primary business of the network
The organisation’s country of agreement code (applicable for service owner/business)
The organisation industry identifier
The organisation industry sectors
The groups of the organisation (only organisation types of Merchant, Venue and Service Point can be grouped)
Information about the owner (admin user) of the organisation
The user’s first name
The user’s last name
Information about the owner’s identity
The provider of the identity
The identity’s challenge
The identity’s value (e.g. password)
Information about the owner’s contact information
The name of the contact information
The type of the contact information
The contact information value
The country code of the related contact info of type phone
Information about the organisation’s contact details
Information about the owner (admin user) of the organisation
The name of the contact information
The type of the organisation’s contact detail
The contact information value
The country code of the related contact detail of type phone
Information about the organisation’s location
Information about the organisation’s location
The name of the location
The address of the location
Additional address information about the location
The state/province/county of the location
The town/city of the location
The postal code of the location
The country code of the location
The care of information of the location
The latitude of the location
The longitude of the location
The Google textual identifier that uniquely identifies a location
Information about the organisation’s transaction acquiring points
Information about the organisation’s external references
The transaction acquiring point name
The transaction acquiring point code
Defines whether the transaction acquiring point is active or not
The transaction acquiring point description
IP address of External Device
Port of the External IP
The transaction acquiring point type
Optional specification of external reference
The organisation business activities
Defines whether the new organisation will have the same industry, industry sectors and business activities as its parent organisation
Details about the organisation profile
The organisation’s registration number
The organisation’s TAX reference number
The organisation’s VAT reference number
The company’s registration country code
The parent organisation identifier that this organisation belongs to
The name that the organisation will have on the cloud (applicable for Service Owner organisations; special characters not allowed)
The tags of the organisation
The organisations (service owners) that the organisation (transaction processor) serves
7c56cc02-48cf-9832-e412-a4ae022cd547Defins whether organisation will support contact registry or not (applicable for Service Owner, Business, Subsidiary)
The custom field’s unique key
The custom field’s value
Details about provisioning an organisation over to WiFi
The integration identifier that organisation will be provisioned for WiFi
The site identifier that will be used to identify the organisation over to WiFi platform
Responses
OK
Body
The organisation identifier
POST https://sandbox.crm.com/backoffice/v1/organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/network HTTP/1.1
Content-Type: application/json
{
"org_type": "VENUE",
"name": "Delicious Food Group",
"description": "Lorem Ipsum",
"is_business": "true",
"country_agreement": "CYP",
"industry_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"industry_sectors": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"groups": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"owner": {
"first_name": "John",
"last_name": "Doe",
"identity": {
"provider": "EMAIL",
"identity_challenge": "jd@crm.com",
"identity_value": "12345"
},
"contact_info": [
{
"name": "",
"type": "EXTENSION",
"value": "4499885544",
"country_code": "CYP"
}
]
},
"contact_info": [
{
"name": "Main Office",
"type": "EMAIL",
"value": "johndoe@deliciousfood.com",
"country_code": "CYP"
}
],
"locations": [
{
"name": "Head Office",
"address_line_1": "Elia Papakyriakou 21",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2415",
"country_code": "CY",
"care_of": "c/o Company",
"lat": 35.157115,
"lon": 33.313719,
"google_place_id": "ChIJrTLr-GyuEmsRBfy61i59si0"
}
],
"taps": [
{
"name": "POS",
"code": "02451",
"is_active": "true",
"description": "pos system",
"external_ip": "82.102.93.164",
"external_port": "9100",
"tap_type": "CARD_TERMINAL",
"external_type": "ALOHA"
}
],
"business_activities": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"inherit_from_parent": "false",
"organisation_profile": {
"registration_number": "1234",
"tax_reference_number": "TAX1234",
"vat_reference_number": "VAT1234",
"registration_country": "CYP"
},
"organisation_id": "e7251be4-89f2-8cea-7a4a-65b679cf6131",
"cloud_name": "crmdotcom",
"organisation_tags": [
"Accounting"
],
"service_organisations": [
"7c56cc02-48cf-9832-e412-a4ae022cd547"
],
"contact_registry": "true",
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
],
"wifi_platform": {
"integration_id": "88165da9-58a9-74cd-3da5-593b901fc0ec",
"site_id": "88quh2m6"
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{id}Update a single organisation
Path variables
The organisation (identifier) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the organisation
A brief description of the organisation
Information about the organisation’s contact details
The identifier of the organisation’s contact detail
The type of the organisation’s contact detail
The value of the organisation’s contact detail
The name of the organisation’s contact detail
The industry of the organisation
The industry sectors of the organisation
The business activities of the organisation
The groups of the organisation (only organisation types of Merchant, Venue and Service Point can be grouped)
Defines whether the new organisation will have the same industry, industry sectors, business activities and reward tags as its parent organisation
Details about the organisation profile
The organisation’s registration number
The organisation’s TAX reference number
The organisation’s VAT reference number
The company’s registrationc country code
The name that the organisation will have on the cloud (applicable for Service Owner organisations; special characters not allowed)
The tags of the organisation
The organisations (service owners) that the organisation (transaction processor) serves
1daf80b1-134b-36eb-7146-76dec04e6c5d
Defines whether organisation supports contact registry or not
Information about the organisation’s location
The location identifier that will be updated
The name of the location
The address of the location
Additional address information about the location
The state/province/county of the location
The town/city of the location
The postal code of the location
The country code of the location
The care of information of the location
The latitude of the location
The longitude of the location
The Google textual identifier that uniquely identifies a location
The custom field’s unique key
The custom field’s value
Defines the partners (their logos will appear on the backend) assigned on this organisation by the service owner. applicable only for organisations of BUSINESS type
The partner identifier
The billing business identifier
The default service identifier
Responses
OK
Body
The organisation identifier
PUT https://sandbox.crm.com/backoffice/v1/organisations/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
Content-Type: application/json
{
"name": "Delicious Food Group",
"description": "Lorem Ipsum",
"contact_info": [
{
"id": "CK1234567890123456789012345678",
"type": "PHONE",
"value": "info@crm.com",
"name": "Head Office"
}
],
"industry_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"industry_sectors": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"business_activities": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"groups": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"inherit_from_parent": "false",
"organisation_profile": {
"registration_number": "1234",
"tax_reference_number": "TAX1234",
"vat_reference_number": "VAT1234",
"registration_country": "CYP"
},
"cloud_name": "crmdotcom",
"organisation_tags": [
"Accounting"
],
"service_organisations": [
"1daf80b1-134b-36eb-7146-76dec04e6c5d"
],
"contact_registry": "true",
"locations": {
"id": "a6cc4f88-cab1-4ab2-98d3-4655789277e2",
"name": "Head Office",
"address_line_1": "Elia Papakyriakou 21",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2415",
"country_code": "CY",
"care_of": "",
"lat": 35.157115,
"lon": 33.313719,
"google_place_id": "ChIJrTLr-GyuEmsRBfy61i59si0"
},
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
],
"partners": [
{
"id": "43f394c0-ece1-43a5-ab7d-b54ce9065fe7"
}
]
}
{id}Removes an organisation
Path variables
The organisation (identifier) that will be removed
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/organisations/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK {id}/networkRetrieve all organisations
Path variables
Parent organisation (identifier) whose child organisations will be retrieved
Request parameters
Filter based on the organisation’s name
Filter based on the organisation’s relationship
(including service provider)
(including service point)
Filter based on the organisation’s group (only Venues can be grouped)
Filter based on the organisation’s industry
Filter based on the organisation’s industry sector
Tag filter for organisation
Filter based on the organisation’s business activity
Filter based on the organisation’s area
Filter based on the organisation’s country
Filter based on the organisation’s town/city
Defines whether and which child organisations total number should be returned
List of Enums for Image Type
Defines whether the organisation group should be returned as part of the response
Defines the free text search parameter based on the provided type (e.g. name)
Defines the entitiy type that the search will be applied
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Defines whether the total number that belong to such organisation should be retrieved (applicable for departments)
Defines whether the operation details of such organisations should be retrieved or not
Defines whether custom fields should be retrieved or not (via List/Get APIs)
Filters based on custom fields (key/value set should be semicolon separated)
Filter based on organisation status
Filter based on TAP code
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
Information about the business network of a business semantic parent organisation
The organisation identifier
The organisatio name
The organisation description
Information about the child organisations
Defines the relationship of the child organisation with the business semantic parent organisation
The total number of child organisations
Information about the organisation’s groups
The organisation group identifier
The organisation group name
Information about the organisation’s location
Information about the organisation’s location
The location identifier
The name of the location
The address of the location
Additional address information about the location
The state/province/county of the location
The town/city of the location
The postal code of the location
The country code of the location
The care of information of the location
The latitude of the location
The longitude of the location
The Google textual identifier that uniquely identifies a location
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
Information about the organisation’s industry
The industry identifier
The industry name
Information about the organisaion’s industry sectors
Information about the industry sectors
The industry sector identifier
The industry sector name
Information about the organisaion’s business activities
Information about the business activity
The business activity identifier
The business activity name
The total number of users for that organisation (applicable for departments)
The organisation operation details (retrieved only if operation_details = true)
Details about the organisation’s working hours
The day of the week that the organisation is open
The time that the organisation opens
The time that the organisation closes
The opening hours for each organisation’s operation type
Details about the organisation’s availability to offer its services
The organisation’s operation type
Defines whether the organisation is temporary closed for offering its services
Defines whether organisation supports contact registry
The custom field’s unique key
The custom field’s value
The status of the organisation
The date that such entity was created
The page number
The number of records per page
The overal number of records
GET /organisations/{id}/network HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "CRM.COM Cyprus",
"description": "Lorem Ipsum",
"child_organisations": [
{
"relationship": "MERCHANTS",
"count": 21
}
],
"locations": [
{
"name": "Head Office",
"address_line_1": "Elia Papakyriakou 21",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2415",
"country_code": "CY",
"care_of": "",
"lat": "35.157115",
"lon": "33.313719",
"googleplaceid": "ChIJrTLr-GyuEmsRBfy61i59si0"
}
],
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"type": "PROFILEIMAGE",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/offer.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/offer.jpg"
}
]
}
],
"industry": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Restaurant"
},
"industry_sectors": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Bar"
}
],
"business_activities": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Bar & Grill"
}
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
GET https://sandbox.crm.com/backoffice/v1/organisations/d332dd8a-254e-47c9-ba1f-3f369877a9b3/network?relationship=VENUE HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "CRM.COM Cyprus",
"description": "Lorem Ipsum",
"groups": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Seasonal"
}
],
"locations": [
{
"id": "LOC123456234567345674567895678IK",
"name": "Head Office",
"address_line_1": "Elia Papakyriakou 21",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2415",
"country_code": "CY",
"care_of": "",
"lat": 35.157115,
"lon": 33.313719,
"googleplaceid": "ChIJrTLr-GyuEmsRBfy61i59si0"
}
],
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"usage_type": "ATTACHMENT",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/logo.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/logo.jpg"
}
]
}
],
"industry": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Restaurant"
},
"industry_sectors": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Bar"
}
],
"business_activities": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Bar & Grill"
}
],
"users_count": 24,
"operation_details": {
"opening_hours": [
{
"day_of_week": "MONDAY",
"opens": "09:00",
"closes": "20:00",
"operation": "PICK_UP"
}
],
"short_term_operations": [
{
"operation": "DELIVERY",
"is_closed": "false"
}
]
},
"contact_registry": "true"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Get details of a single Organisation
Path variables
The organisation (identifier) that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The organisation identifier
The organisation name
The organisation description
The organisation type
Determines whether the organisation record will be used for test purposes
Determines whether the sandbox mode is enabled or not
Defines whether the organisation is the primary business of the business network
Information about the organisation’s groups
The organisation group identifier
The organisation group name
Information about the organisation’s contact details
Information about the owner (admin user) of the organisation
The contact detail identifier
The name of the contact information
The type of the contact information
The value of the specific contact information
The country code related to the contact detail of type phone
Information about the organisation’s locations
Information about the organisation’s location
The location identifier
The name of the location
The address of the location
Additional address information about the location
The state/province/county of the location
The town/city of the location
The postal code of the location
The country code of the location
The care of information of the location
The latitude of the location
The longitude of the location
The Google textual identifier that uniquely identifies a location
Information about the organisation’s transaction acquiring points (taps)
Information about the organisation’s external references
The transaction acquiring point identifier
The transaction acquiring point name
The transaction acquiring point code
Defines whether the transaction acquiring point is active or not
The transaction acquiring point description
IP address of External Device
Port of the External IP
The transaction acquiring point type
The transaction acquiring point that the event was submitted from (id or code must be specified). TAP and Organisation (id) attributes are semi-optional
The transaction acquiring point identifier
The transaction acquiring point code
Information about the organisation’s industry
The industry identifier
The industry name
Information about the organisation’s industry sectors
Information about the industry sectors
The industry sector identifier
The industry sector name
Information about the organisation’s business activities
Information about the business activity
The business activity identifier
The business activity name
Defines whether the new organisation will have the same industry, industry sectors and business activities as its parent organisation
Details about the organisation profile
The organisation’s registration number
The organisation’s TAX reference number
The organisation’s VAT reference number
The company’s registrationc country code
The parent organisation identifier that this organisation belongs to
The name that the organisation will have on the cloud (applicable for Service Owner organisations; special characters not allowed)
The tags of the organisation
The organisations (service owners) that the organisation (transaction processor) serves
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
Defines whether the organisation supports contact registry
The custom field’s unique key
The custom field’s value
The status of the organisation
Defines the partners that are assigned to this organisation and their logos will be shown on the back-end SPA. Applicable only for organisations of type Business, where Service Owners will be responsible for assigning such information
The partner identifier
The partner name
The date that such entity was created
Details regardifn the billing business
The billing business identifier
The billing business name
The default service assigned to the organisation
The service identifier
The service name
The service SKU
GET https://sandbox.crm.com/backoffice/v1/organisations/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Delicious Bite",
"description": "Lorem Ipsum",
"org_type": "SERVICE_OWNER",
"test_mode": "false",
"is_sandbox_on": "false",
"is_business": "false",
"groups": [
{
"id": "OGD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Seasonal"
}
],
"contact_info": [
{
"id": "CON123456234567345674567895678IK",
"name": "Main Office",
"type": "PHONE",
"value": "johndoe@deliciousfood.com",
"country_code": "CYP"
}
],
"locations": [
{
"id": "LOC123456234567345674567895678IK",
"name": "Head Office",
"address_line_1": "Elia Papakyriakou 21",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2415",
"country_code": "CY",
"care_of": "c/o Company",
"lat": 35.157115,
"lon": 33.313719,
"google_place_id": "ChIJrTLr-GyuEmsRBfy61i59si0"
}
],
"taps": [
{
"id": "TAP123456234567345674567895678IK",
"name": "ePOS",
"code": "EP12",
"is_active": "true",
"description": "electronic POS",
"external_ip": "82.102.93.164",
"external_port": "9100",
"tap_type": "EXTERNAL_REF",
"external_type": {
"id": "4c01d5e4-02c9-ae89-4a3c-eaeb3174fcf0",
"code": "TAP001"
}
}
],
"industry": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DRT",
"name": "Restaurant"
},
"industry_sectors": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DWQ",
"name": "Bar"
}
],
"business_activities": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DBU",
"name": "Bar & Grill"
}
],
"inherit_from_parent": "false",
"organisation_profile": {
"registration_number": "1234",
"tax_reference_number": "TAX1234",
"vat_reference_number": "VAT1234",
"registration_country": "CYP"
},
"organisation_id": "7e8e39de-2f80-d2fe-b1f9-25b0cf4b2fbf",
"cloud_name": "crmdotcom",
"organisation_tags": [
"Accounting"
],
"service_organisations": [
{
"id": "ed165bb7-666e-d55c-7e3d-1127909d10a3",
"name": "CRMdotCOM"
}
],
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"usage_type": "ATTACHMENT",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/logo.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/logo.jpg"
}
]
}
],
"contact_registry": "true",
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
],
"status": "SUSPEND",
"partners": [
{
"id": "43f394c0-ece1-43a5-ab7d-b54ce9065fe7",
"name": "Yellow Umbrella Corp."
}
]
}
{id}/activity_feedGet the activity feed of a single organisation
Path variables
The organisation (identifier) whose activity will be retrieved
Request parameters
The activity type
The created date of the activity (no time)
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
Details about the activity feed
The activity (feed) identifier
The entity’s number
The entity’s reference number
The entity’s code
The entity’s life cycle state
The entity’s created date
The activity (feed) type
The activity (feed) direction
The activity (feed) notes
The entity’s type name
The entity’s total amount
The entity’s currency
The entity’s due date in case of Invoices
The entity that the topup was performed for
The top up identifier
The number or code of the topup entity
The type of the topup entity
The page number
The number of records per page
The overal number of records
GET https://stagingapi.crm.com/backoffice/v1/organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/activity_feed HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"activity_feed": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "I10003",
"reference_number": "Ref12345678",
"code": "123456789ABE2364",
"state": "POSTED",
"created_date": 1576486645,
"activity_type": "INVOICE",
"direction": "OUTGOING",
"notes": "This Invoice is created for November 2019",
"type": "INVOICE",
"total_amount": 200,
"currency": "EUR",
"due_date": 1576486645,
"topup_entity": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "AC00123 John Johnson",
"type": "ACCOUNT"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/switchSwitch the user to another organisation
Path variables
The organisation (identifier) that will be switched to
Notes
As part of “changing organisations that an user belongs to” flow, the user will have a different role as assigned to him when he was invited to the organisation that was switched to
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
POST /organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/switch HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK {id}/masqueradeSwitch the user to another organisation
Path variables
The organisation (identifier) that will be masqueraded to
Notes
As part of “masquerade” flow, the masqueraded user will have the same role as the one from the initial organisation that such user signed in.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
POST https://sandbox.crm.com/backoffice/v1/organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/masquerade HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK {id}/actionsPerform an action on a single organisation
Path variables
The organisation (identifier) that an action will be applied on it
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The action that will be applied on the organisation
Enable live mode on the organisation
The organisation name that will be used when copying an organisation (applicable when action == COPY)
Responses
OK
Body
The organisation identifier
POST https://sandbox.crm.com/backoffice/v1/organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/actions HTTP/1.1
Content-Type: application/json
{
"action": "MODE"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{id}/media_groupsLink an organisation with one or many media groups
Path variables
The organisation (identifier) that media groups will be updated
Notes
Uploading media for an organisation requires the execution of the following APIs
- Create new Media Group
- Create Organisation Media Groups
- Upload Media
- Perform Cloudinary Upload (where CRM will send all signature details)
- Cloudinary service calls back CRM media group (using an internal callback)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The media group identifier
Responses
POST https://sandbox.crm.com/backoffice/v1/organisations/sdfsfsdf-32-fwef-wef-wefwef23/media_groups HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
[
{
"media_group_id": "3f1f9e63-7f40-4e5e-bc42-11a162f7f1fb"
}
]
HTTP/1.1 200 OK Retrieve all organisations to be added as merchants or venues to an existing business
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Integration Adapter to provide import
External ID for the integration to retrieve the venues / outlets, in the case of JCC a merchant ID
Responses
The request has succeeded
Body
Information about the business network of a business semantic parent organisation
The organisation identifier
The organisatio name
The organisation description
Information about the child organisations
Defines the relationship of the child organisation with the business semantic parent organisation
The total number of child organisations
Information about the organisation’s groups
The organisation group identifier
The organisation group name
Information about the organisation’s location
Information about the organisation’s location
The location identifier
The name of the location
The address of the location
Additional address information about the location
The state/province/county of the location
The town/city of the location
The postal code of the location
The country code of the location
The care of information of the location
The latitude of the location
The longitude of the location
The Google textual identifier that uniquely identifies a location
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
Information about the organisation’s industry
The industry identifier
The industry name
Information about the organisaion’s industry sectors
The industry sector identifier
The industry sector name
Information about the organisaion’s business activities
The business activity identifier
The business activity name
The total number of users for that organisation (applicable for departments)
The organisation operation details (retrieved only if operation_details = true)
Details about the organisation’s working hours
The day of the week that the organisation is open
The time that the organisation opens
The time that the organisation closes
The opening hours for each organisation’s operation type
Details about the organisation’s availability to offer its services
The organisation’s operation type
Defines whether the organisation is temporary closed for offering its services
Defines whether organisation supports contact registry
The page number
The number of records per page
The overal number of records
POST https://sandbox.crm.com/backoffice/v1/organisations/import HTTP/1.1
Content-Type: application/json
{
"integration": "JCC_MERCHANT",
"external_id": "0000257"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "CRM.COM Cyprus",
"description": "Lorem Ipsum",
"child_organisations": [
{
"relationship": "TRANSACTION_PROCESSOR",
"count": 21
}
],
"groups": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Seasonal"
},
""
],
"locations": [
{
"id": "LOC123456234567345674567895678IK",
"name": "Head Office",
"address_line_1": "Elia Papakyriakou 21",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2415",
"country_code": "CY",
"care_of": "",
"lat": 35.157115,
"lon": 33.313719,
"googleplaceid": "ChIJrTLr-GyuEmsRBfy61i59si0"
}
],
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"usage_type": "ATTACHMENT",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/logo.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/logo.jpg"
}
]
}
],
"industry": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Restaurant"
},
"industry_sectors": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Bar"
}
],
"business_activities": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Bar & Grill"
}
],
"users_count": 24,
"operation_details": {
"opening_hours": [
{
"day_of_week": "MONDAY",
"opens": "09:00",
"closes": "20:00",
"operation": "DELIVERY"
}
],
"short_term_operations": [
{
"operation": "PICK_UP",
"is_closed": "false"
}
]
},
"contact_registry": "true"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/billingRetrieves a relationship between an organisation as the billing business and a contact.
Path variables
The organisation (identifier) that billing relationship will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Details about the organisation that does the billing
The organisation identifier
The organisation name
This returns the public API key for the billing organisation
Authentication details of the contact that will be billed due to its billing relaiton to the billing organisation
This returns the jwt token associated to the contact of the billing organisation
Refresh token used when access token get expired
Expiration of access token
Billing Contact details
The contact’s unique identifier
Contact’s title
Contact first name
GET https://sandbox.crm.com/backoffice/v1/organisations/db560dec-4097-655e-25b3-d0fe95698bd0/billing HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"organisation": {
"id": "db560dec-4097-655e-25b3-d0fe95698bd0",
"name": "CRM billing",
"api_key": "5bd2fd1d-3f49-3f51-fddc-76bb419880c7"
},
"billing_contact": {
"access_token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhMjc4ZDNlNS05YjhlLTQzNmUtOTIzMC03MGYzZTJkZjFjYTUiLCJleHAiOjE1Njg1NTQxMjJ9.LemqPPThkqfakkKS6CdkNvV1Lnc88CWirEpHOPnWjJPQz02zgkKSwfbvrEsl3OmR2LUhDILsOXf4x-GPFmNJCg",
"refresh_token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhMjc4ZDNlNS05YjhlLTQzNmUtOTIzMC03MGYzZTJkZjFjYTUiLCJleHAiOjE1Njg1NTQxMjJ9.LemqPPThkqfakkKS6CdkNvV1Lnc88CWirEpHOPnWjJPQz02zgkKSwfbvrEsl3OmR2LUhDILsOXf4x-GPFmNJCg",
"exp": 1,
"contact": {
"id": "",
"title": "Mr",
"first_name": "John",
"company_name": "",
"last_name": "Doe",
"avatar": "avatar",
"is_verified": true
},
"organisations": [
{
"external_id": "QWERTY12345671234567324ETFTGBY78",
"org_type": "SERVICE_OWNER",
"name": "CRMdotCOM"
}
]
}
}
{id}/apikeys{id}/apikeys/{apikey_id}{id}/apikeys/{apikey_id}{id}/apikeys{id}/apikeys/{apikey_id}{id}/apikeys/{apikey_id}{id}/apikeysCreate an active API Key for a specific organisation
Path variables
The organisation (identifier) where an API Key will be created
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The api key name
Defines the type of the api key
Responses
OK
Body
The api key identifier
The non-encrypted secret key that will be used for subsuquent API authentication
POST /organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/apikeys HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"name": "Registration Portal",
"environment": "TEST",
"type": "SECRET"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "API1E31269B76D7A65ACCE45B2E68DFD",
"key": "123465789"
}{id}/apikeys/{apikey_id}Update a single api key of a specific organisation
Path variables
The organisation (identifier) whose api key will be updated
The api key (identifier) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The api key name
Defines whether the api key will be active or not
Responses
OK
Body
The api key identifier
PUT /organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/apikeys/SEC1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
Content-Type: application/json
{
"name": "Registration Portal",
"is_active": "false"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "API1E31269B76D7A65ACCE45B2E68DFD"
}{id}/apikeys/{apikey_id}Delete a single api key of a specific organisation
Path variables
The organisation (identifier) whose api key will be deleted
The api key (identifier) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/apikeys/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK {id}/apikeysRetrieve all API Keys for a specific organisation
Path variables
The organisation (identifier) whose api keys will be retrieved
Request parameters
Filter based on the name
Filter based on the api key type
Filters based on whether API Keys are active or not
Filters the default API Key
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
Information about the organisation’ api keys
The api key identifier
The api key name
Defines the type of the api key
Defines whether the api (public or secret) key is active or not
The public api key’s value
The secret api key obfuscated value
The secret api key encrypted value
Defines the date up until the secret api key will be active
Defines if the api key is the default one (applicable only for public API keys)
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/apikeys HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "API1E31269B76D7A65ACCE45B2E68DFD",
"name": "Registration Name",
"type": "PUBLIC",
"is_active": "true",
"public_key": "API1E31269B76D",
"obfuscated": "********MG12",
"encrypted": "qwertyasd123",
"active_end": 1580292120,
"is_default": "false"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/apikeys/{apikey_id}Get details of a single API Key
Path variables
The organisation (identifier) whose api keys will be retrieved
The api key (identifier) that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
Information about the organisation’ api keys
The organisation’s api key identifier
The api key name
Defines the type of the api key
Defines whether the api (public or secret) key is active or not
The public api key’s value
The secret api key obfuscated value
The secret api key encrypted value
Defines the date up until the secret api key will be active
Defines if the api key is the dwfault one (applicable only for public API keys)
Retrieve details for a Public API Key
GET /organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/apikeys/API1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "API1E31269B76D7A65ACCE45B2E68DFD",
"name": "Registration Key",
"type": "PUBLIC",
"is_active": "true",
"public_key": "API1E31269B76D"
}
]
}Retrieve details for a Secret API Key
GET /organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/apikeys/API1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "API1E31269B76D7A65ACCE45B2E68DFD",
"name": "Payment Gateway",
"type": "SECRET",
"is_active": "true",
"obfuscated": "********ML71",
"encrypted": "qwerty1234a8",
"active_end": 1580292120
}
]
}
{id}/apikeys/{apikey_id}Roll a single api key of a specific organisation
Path variables
The organisation (identifier) whose api key will be rolled
The api key (identifier) that will be rolled
Notes
Only secret keys can be rolled. The previous key will be revoked (and no longer can be used until expired), while a new one will be generated based on GUID standard methods.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Defines up until when the api key will be valid (applicable only for secret api key)
Responses
OK
Body
The organisation’s api key identifier
The non-encrypted api key value that will be used for subsuquent API authentication
POST /organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/apikeys/API1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "API1E31269B76D7A65ACCE45B2E68DFD"
}Search for organisation’s business activities
Request parameters
The business activity name
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The business activity identifier
The business activity name
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/organisations/businessactivities HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": ""
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}/accounts{id}/accounts{id}/accountsCreate an account for a specific organisation. An Account can only be created for a Business or a Merchant or a Service Provider.
Path variables
The organisation (identifier) that an account will be created
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of account
The currency for the account
Defines whether the account is the primary one
The billing address identifier
The account classification identifier
Responses
Body
The organisation account identifier
POST https://sandbox.crm.com/backoffice/v1/organisations/c6e6bcc8-ef76-45a9-a7c1-b45efaa6fdb4/accounts HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"name": "USD Second Accont",
"currency_code": "EUR",
"is_primary": true,
"billing_address_id": "4AD9C84FA60F9FE407140E20F707726A",
"classification_id": "4AD9C84FA60F9FE407140E20F707726A"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "c6e6bcc8-ef76-45a9-a7c1-b45efaa6fdb4"
}
{id}/accountsList all accounts of an organisation
Path variables
The organisation (identifier) whose accounts wil be retrieved
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Retrive only the primary account of an Organisation
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The account identifier
Defines whether the account is the primary one
The account name
The account number
The life cycle state of the account
The account currency code
The account balance
The account credit limit
The account overdue amount
Account Classification Details
The classification identifier
The classification name
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/organisations/c6e6bcc8-ef76-45a9-a7c1-b45efaa6fdb4/accounts HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"is_primary": true,
"name": "Default",
"number": "AC123456",
"life_cycle _state": "ACTIVE",
"currency_code": "EUR",
"balance": 12.33,
"credit_limit": 1.22,
"overdue_amount": 1.11,
"classification": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "VIP"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/operation_details{id}/operation_details{id}/operation_detailsUpdate an organisation’s operational details (e.g. opening hours)
Path variables
The organisation (identifier) whose operation details will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Details about the organisation’s working hours
The day of the week that the organisation is open
The time that the organisation opens
The time that the organisation closes
The opening hours for each organisation’s operation type
Details about the organisation’s availability to offer its services
The organisation’s operation
Defines whether the organisation is temporary closed for offering its services
Responses
OK
Body
The organisation identifier
PUT https://stagingapi.crm.com/backoffice/v1/organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/operation_details HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"opening_hours": [
{
"day_of_week": "MONDAY",
"opens": "09:00",
"closes": "20:00",
"operation": "ANY"
}
],
"short_term_operations": [
{
"operation": "ANY",
"is_closed": "false"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{id}/operation_detailsRetrieve an organisation’s operational details (e.g. opening hours)
Path variables
The organisation (identifier) whose operation details will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
Details about the organisation’s working hours
The day of the week that the organisation is open
The time that the organisation opens
The time that the organisation closes
The opening hours for each organisation’s operation type
Details about the organisation’s availability to offer its services
The organisation’s operation type
Defines whether the organisation is temporary closed for offering its services
GET https://stagingapi.crm.com/backoffice/v1/organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/operation_details HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"opening_hours": [
{
"day_of_week": "MONDAY",
"opens": "09:00",
"closes": "20:00",
"operation": "PICK_UP"
}
],
"short_term_operations": [
{
"operation": "DELIVERY",
"is_closed": "false"
}
]
}{orggroup_id}{orggroup_id}{orggroup_id}Create an organisation group
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The organisation group name
The organisation group description
Responses
OK
Body
The organisation group identifier
POST /organisationgroups HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"name": "Seasonal",
"description": "Lorem Ipsum"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{orggroup_id}Update an existing organisation group
Path variables
The organisation group (identifier) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The organisation group name
The organisation group description
Responses
OK
Body
The organisation group identifier
PUT /organisationgroups/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"name": "Seasonal",
"description": "Lorem Ipsum"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{orggroup_id}Delete an existing organisation group
Path variables
The organisation group (identifier) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE /organisationgroups/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK Retrieve all organisation groups
Request parameters
Filter based on the organisation group name
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
Information about the organisation groups
The organisation group identifier
The organisation group name
The organisation group description
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/organisationgroups HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "API1E31269B76D7A65ACCE45B2E68DFD",
"name": "Nicosia Dinners",
"description": "Lorem Ipsum"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{orggroup_id}Get details of a single organisation group
Path variables
The organisation group (identifier) whose secret key will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The organisation group identifier
The organisation group name
The organisation group description
GET /organisationgroups/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "API1E31269B76D7A65ACCE45B2E68DFD",
"name": "Seasonal",
"description": "true"
}{id}/licenses{id}/licensesReturns list of all licenses used by the organisation
Path variables
The orginaisation (identifier) for which the licenses will be retreived
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The list of licenses of an organisation
The license identifier
The name of the license
The description of the license
GET https://sandbox.crm.com/backoffice/v1/organisations/124c227e-85b7-84d6-f19a-f1dc69101b69/licenses HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"licenses": [
{
"id": "bae010f4-7e70-d66e-32fb-31d716e1b824",
"name": "Basic Rewards",
"description": "The basic Rewards Package"
}
]
}{id}/locations{id}/locations/{location_id}{id}/locations/{location_id}{id}/locationsAdd a new location for an existing Organisation
Path variables
The organisation (identifier) whose locations will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the location
The address of the location
Additional address information about the location
The state/province/county of the location
The town/city of the location
The postal code of the location
The country of the location
The care of information of the location
The latitude of the location
The longitude of the location
The Google textual identifier that uniquely identifies a location
Responses
OK
Body
The organisation’s location identifier
POST /organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/locations HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"name": "Head Office",
"address_line_1": "Elia Papakyriakou 21",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2415",
"country_code": "CY",
"care_of": "",
"lat": "35.157115",
"lon": "33.313719",
"googleplaceid": "ChIJrTLr-GyuEmsRBfy61i59si0"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{id}/locations/{location_id}Update a location for an existing Organisation
Path variables
The organisation (identifier) that will be updated
The organisation’s location (identifier) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the location
The address of the location
Additional address information about the location
The state/province/county of the location
The town/city of the location
The postal code of the location
The country of the location
The care of information of the location
The latitude of the location
The longitude of the location
The Google textual identifier that uniquely identifies a location
Responses
OK
Body
The organisation’s location identifier
PUT /organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/locationsCAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"name": "Head Office",
"address_line_1": "Elia Papakyriakou 21",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2415",
"country_code": "CY",
"care_of": "",
"lat": "35.157115",
"lon": "33.313719",
"googleplaceid": "ChIJrTLr-GyuEmsRBfy61i59si0"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{id}/locations/{location_id}Delete a location for an existing Organisation
Path variables
The organisation (identifier) whose location will be removed
The organisation’s (identifier) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE /organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/locationsCAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK {id}/payment_methods{id}/payment_methods/{payment_method_id}{id}/payment_methods/{payment_method_id}{id}/payment_methods{id}/payment_methodsAdd a new payment method for an organisation
Path variables
The organisation (identifier) that a payment method will be created
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the payment method
The payment method’s type
Marks the payment method as the organisation’s primary one
Marks the payment method as the backup
Notes related to te payment method
The account’s main information. Required and applicable if the payment method type is ACCOUNT
The account name
Information regarding the account’s payment gateway
The payment gateway related to the payment method
The identifier used on payment gateway
The bank details.Required and applicable if the payment method is set to BANK
The bank account number.
The IBAN code.
The name of the customer’s bank
Institution number of the customer’s bank.
The identifier of the bank branch
The bank account swift number
The sort code
The mandate (sequence) type
The type of the event
The payment gateway’s integration identifier
The country the bank account is located in.
The card’s main information. Required and applicable if the payment method type is CARD
The card’s name
The card’s brand
The card’s first 6 digits
The card’s lat 4 digits
The card’s expiration month
The card’s expiration year
The card’s coutry of issue (3 code based)
Details about the cardholder owner
The name of the card holder
The address related to the card
Additional address information related to the card
The city related to the card
The zip code related to the card
The state related to the card
The country related to the card
Details about the gateway that a card related token was issued
Defines the gateway that issued such token
The gateway integration (identifier)
The card related token
Responses
OK
Body
The payment method identifier
POST https://sandbox.crm.com/backoffice/v1/organisations/4db61210-49b0-0267-6de6-82ca63a35903/payment_methods HTTP/1.1
Content-Type: application/json
{
"name": "Primary payment method",
"type": "SETTLEMENT_ACCOUNT",
"is_primary": "true",
"is_backup": "false",
"notes": "some notes",
"settlement_account": {
"name": "Primary Account",
"payment_gateway": {
"gateway": "JCC_MERCHANT",
"gateway_identifier": "0000257"
}
},
"account_debit": {
"account_name": "",
"account_number": "001002001",
"iban": "0143240434320434",
"bank": "Barclays",
"bank_code": "0032933-1123",
"branch": "Ascot",
"swift": "12345678",
"sort_code": "20-02-53",
"mandate": {
"reference": "",
"sign_date": 1
},
"account_type": "SAVINGS",
"integration_id": ""
},
"card": {
"name": "Default Card",
"brand": "VISA",
"first6": "424242",
"last4": "4242",
"expiration_month": 1,
"expiration_year": 2020,
"country_of_issue": "CYP",
"card_holder_details": {
"card_holder_name": "John Doe",
"address_line_1": "Elia Papakyriakou",
"address_line_2": "7 Tower Star",
"address_city": "Nicosia",
"address_zip": "2415",
"address_state": "Nicosia",
"address_country": "CYP"
},
"gateway_token": [
{
"gateway": "SETTLE",
"integration_id": "bce504a4-f712-5262-183c-f58218a7a0ed",
"token": "Xt5EWLLDS7FJjR1c"
}
]
}
}
{id}/payment_methods/{payment_method_id}Update an existing payment method for an organisation
Path variables
The organisation (identifier) whose paymeny method will be updated
The payment method (identifier) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Marks the payment method as the organisation’s primary one
Marks the payment method as the backup
The payment method notes
The account’s main information. Required and applicable if the payment method type is ACCOUNT
The account name
Information regarding the account’s payment gateway
The payment gateway related to the payment method
The identifier used on payment gateway
The bank details.Required and applicable if the payment method is set to BANK
The bank account number.
The IBAN code.
The name of the customer’s bank
Institution number of the customer’s bank.
The identifier of the bank branch
The bank account swift number
The sort code
The country the bank account is located in.
The mandate (sequence) type
The type of the event
Responses
OK
Body
The payment method identifier
PUT https://sandbox.crm.com/backoffice/v1/organisations/2b2460d3-9753-148e-2f5b-f30c0562f5a5/payment_methods/5a56dec4-144c-0d73-f749-9030879280ca HTTP/1.1
Content-Type: application/json
{
"name": "",
"is_primary": "true",
"is_backup": "false",
"notes": "some notes",
"settlement_account": {
"name": "Primary Account",
"payment_gateway": {
"gateway": "JCC_MERCHANT",
"gateway_identifier": "0000257"
}
},
"account_debit": {
"account_name": "",
"account_number": "001002001",
"iban": "0143240434320434",
"bank": "Barclays",
"bank_code": "0032933-1123",
"branch": "Ascot",
"swift": "12345678",
"sort_code": "20-02-53",
"mandate": {
"reference": "",
"sign_date": 1
},
"account_type": "SAVINGS",
"integration_id": ""
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "5a56dec4-144c-0d73-f749-9030879280ca"
}
{id}/payment_methods/{payment_method_id}Remove a payment method from an organisation
Path variables
The organisation (identifier) whose payment method will be removed
The payment method (identifier) that will be removed
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://staging.crm.com/backoffice/v1/organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/payment_methods/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
HTTP/1.1 200 OK {id}/payment_methodsList payment methods related to an organisation account
Path variables
The organisation (identifier) whose payment methods will be retrieved
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Filter based on payment method type
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The payment method identifier
The payment method identifier
The payment method type
Indicates which payment mehod is the organisation’s primary one
Indicates which payment mehod is the organistaion’s backup one
Notes related to the payment method
The account details (applicable if the payment method is set to ACCOUNT)
The account name
Information regarding the account’s payment gateway
The payment gateway related to the payment method
The identifier used on payment gateway
The bank details.Required and applicable if the payment method is set to BANK
The bank account number.
The IBAN code.
The name of the customer’s bank
Institution number of the customer’s bank.
The identifier of the bank branch
The bank account swift number
The sort code
The country the bank account is located in.
The type of the event
The card’s main information. Required and applicable if the payment method type is CARD
The card’s name
The card’s brand
The type of the event
The first 6 digits of the card. Either the card number or the first 6 and last 4 digits must be specified
The last 4 digits f the card. Either the card number or the first 6 and last 4 digits must be specified
The card expiration month
The card expiration year
The card issue country (3 char country code)
Information about the card holder
The name of the card holder
The address related to the card
Additional address information related to the card
The city related to the card
The zip code related to the card
The state related to the card
The country related to the card
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/organisations/ff27b927-d346-4369-aba3-4478de764816/payment_methods HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "ff27b927-d346-4369-aba3-4478de764816",
"name": "",
"payment_method_type": "CARD",
"is_primary": "true",
"is_backup": "false",
"notes": "Payment Method Notes",
"settlement_account": [
{
"name": "Primary Account",
"payment_gateway": {
"gateway": "JCC_MERCHANT",
"gateway_identifier": "1245"
}
}
],
"account_debit": {
"account_name": "",
"account_number": "001002001",
"iban": "0143240434320434",
"bank": "Barclays",
"bank_code": "0032933-1123",
"branch": "Ascot",
"swift": "12345678",
"sort_code": "20-02-53",
"account_type": "SAVINGS",
"mandate": {
"reference": "",
"sign_date": 1
},
"gateway_token": [
{
"token": "",
"gateway": "JCC",
"integration": {
"id": "",
"name": ""
}
}
]
},
"card": {
"name": "Default Card",
"brand": "VISA",
"funding_type": "CREDIT",
"first6": "",
"last4": "",
"expiration_month": 1,
"expiration_year": 2020,
"country_of_issue": "CYP",
"cvc": "",
"card_holder_details": {
"card_holder_name": "John Doe",
"address_line_1": "Elia Papakyriakou",
"address_line_2": "7 Tower Star",
"address_city": "Nicosia",
"address_zip": "2415",
"address_state": "Nicosia",
"address_country": "CYP"
},
"gateway_token": [
{
"token": "",
"gateway": "JCC_MERCHANT",
"integration": {
"id": "",
"name": ""
}
}
]
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
Disable Enable Products for an Organisation
{id}/products{id}/productsRetrieve all products which are temporarily not available for sale for the specified organisation
Path variables
The organisation (identifier) whose product availability will be retrieved
Request parameters
Search for a product using its SKU, its name or description
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Defines the product of which availability is set
The product identifier
The product SKU
The product name
Defines whether the product is available or not
The supported supply method for the product
The type of the event
Delivered to the customer’s address
Picked up by the customer from a venue
Online sales of services
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/organisations/52ed5363-e747-4f41-b91f-e6c5b5e32376/products HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"product": {
"id": "c4301882-573a-f04c-7884-5228e7844981",
"sku": "FE1234",
"name": "Freddo Espresso"
},
"availability": "DISABLED",
"supply_method": [
"PICK_UP"
]
}
]
}
{id}/tags{id}{id}{id}{id}/tagsCreate a new organisation tag
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The tag name
Responses
OK
Body
The tag identifier
POST https://stagingapi.crm.com/backoffice/v1/organisation_tags HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"name": "Restaurant"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "178d86ab-3245-5b39-d145-f44e0ef61188"
}{id}Update a specific organisation tag
Path variables
The organisation tag (identifier) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The tag name
Responses
OK
Body
The tag identifier
PUT https://stagingapi.crm.com/backoffice/v1/organisation_tags/a3dedbef-89e1-5783-ad78-2f0c91086ca5 HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"name": "Restaurant"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "178d86ab-3245-5b39-d145-f44e0ef61188"
}{id}Delete a specific organisation tag
Path variables
The organisation tag (identifier) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://stagingapi.crm.com/backoffice/v1/organisation_tags/a3dedbef-89e1-5783-ad78-2f0c91086ca5 HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK Search through all organisation tags
Request parameters
The organisation tag name
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The tag identifier
The tag name
Defines the organisation that owns the tag
The organisation identifier
The page number
The number of records per page
The overal number of records
GET https://stagingapi.crm.com/backoffice/v1/organisation_tags HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "a3dedbef-89e1-5783-ad78-2f0c91086ca5",
"name": "Restaurant"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}Get details for a specific organisation tag
Path variables
The organisation tag (identifier) to be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The tag identifier
The tag name
GET https://stagingapi.crm.com/backoffice/v1/organisation_tags/03e80aae-3613-078c-1aa4-3130de25140a HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "6ed98c88-ce30-b47d-0c75-dcfb8316c95a",
"name": "Restaurant"
}{id}/reward_commercial_terms{id}/reward_commercial_terms{id}/reward_commercial_termsUpdate the reward commercial terms for a specific organisation
Path variables
The organisation (identifier) that reward commercial terms will be set
Notes
Reward Commercial Terms can be assigned only on Business and Merchant/Service Provider organisation types.
Only users of Business organisation types can amend Reward Commercial Terms related to their Business and Merchants/Service Providers.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Defines whether the organisation can contribute to the customers awards/spends
Defines the reward schemes that the organisation can contribute to the customers awards/spends
Defines how the organisation will be settled
Defines the contribution fee that the organisation will cover on each award
Explicit contribution that will overwrite the default one
On which type the contribution will be applied
The entity id on which the contribution will be applied
The explicitly defined contribution
Details about customer purchase restrictions
The maximum number of purchases that a customer can submit in a day
The maximum purchase amount that a customer can submit
Responses
Success
Body
The organisation identifier
PUT https://stagingapi.crm.com/backoffice/v1/organisations/7cc1b26a-459f-4b47-a09f-6b121ae947da/reward_commercial_terms HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"is_blocked": "false",
"reward_schemes": [
"7fdd1338-7064-4fe6-8f4f-0a02324d45c5"
],
"management_fee": 99.99,
"default_contribution": 99.99,
"credit_expired_awards": "true",
"explicit_contributions": [
{
"type": "REWARD_OFFER",
"id": "39081643-21b5-4782-a149-69a8bbc744be",
"contribution": 49.99
}
],
"customer_selfservice_purchases": "true"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "7cc1b26a-459f-4b47-a09f-6b121ae947da"
}
{id}/reward_commercial_termsReturns the reward commercial terms of an organisation
Path variables
The organisation (identifier) whose reward commercial terms will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
Details about the changes on the terms state
Defines whether the organisation can contribute to the customers awards/spends
The date that the state has changed
The user that changed the state
The user identifier
The user name
Defines the reward schemes that the organisation can contribute to the customers awards/spends
["7fdd1338-7064-4fe6-8f4f-0a02324d45c5"]The reward scheme identifier
The reward scheme name
Defines how the organisation will be settled
Defines the contribution fee that the organisation will cover on each award
Explicit contribution that will overwrite the default one
On which type the contribution will be applied
The entity id that the contribution will be applied
The entity name that the contribution will be applied
The explicitly defined contribution
Details about customer purchase restrictions
The maximum number of purchases that a customer can submit in a day
The maximum purchase amount that a customer can submit
GET https://sandbox.crm.com/backoffice/v1/organisations/7cc1b26a-459f-4b47-a09f-6b121ae947da/reward_commercial_terms HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"state_details": {
"state": "NOT_BLOCKED",
"date": 1593607273,
"user": {
"id": "7454cc68-e855-4356-8984-377f8d77640a",
"name": "John Doe"
}
},
"reward_schemes": [
{
"id": "7fdd1338-7064-4fe6-8f4f-0a02324d45c5",
"name": "CRM Loyalty"
}
],
"settlement_method": "ON_SPEND",
"default_contribution": 99.99,
"explicit_contributions": [
{
"type": "REWARD_OFFER",
"id": "39081643-21b5-4782-a149-69a8bbc744be",
"name": "1% cashback on all products",
"contribution": 49.99
}
],
"customer_selfservice_purchases": "true",
"purchases_restrictions": {
"max_purchases": 1,
"max_purchase_amount": 9.01
}
}
{id}/taps{id}/taps/{tap_id}{id}/taps/{tap_id}{id}/taps{id}/taps{tap_id}{id}/tapsCreate a transaction acquiring point for an existing Organisation
Path variables
The organisation (identifier) on which a tap will be created
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Information about the organisation’s external references
The transaction acquiring point name
The transaction acquiring point code
Defines whether the transaction acquiring point is active or not
The transaction acquiring point description
IP address of External Device
Port of the External IP
The transaction acquiring point type
Optional specification of external reference
Responses
OK
Body
The organisation’s transaction acquiring point identifier
POST /organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/taps HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"name": "POS01",
"value": "123456789",
"is_active": "true"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{id}/taps/{tap_id}Update a transaction acquiring point for an existing Organisation
Path variables
The organisation’s transaction acquiring point (identifier) that will be updated
The transaction acquiring point (identifier) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The transaction acquiring point code
Determines whether the transaction acquiring point is active or not
The transaction acquiring point description
IP address of External Device
Port of the External IP
The transaction acquiring point type
Optional specification of external reference
Responses
OK
Body
The transaction acquiring point identifier
PUT /organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/taps/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"value": "123456789",
"is_active": "true"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{id}/taps/{tap_id}Delete a transaction acquiring point for an existing organisation
Path variables
The organisation (identifier) whose tap will be deleted
The transaction acquiring point (identifier) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
PUT /organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/taps/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK {id}/tapsSearch transaction acquiring points for a specific organisation
Path variables
The organisation (identifier) whose transaction acquiring point will be retrieved
Request parameters
The value of the search (case insensitive) across Name, Code
The transaction acquiring point name
The transaction acquiring point code
Filters transaction acquiring points whether are active or not
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
Information about the organisation’s external references
The transaction acquiring point identifier
The transaction acquiring point name
The transaction acquiring point code
Defines whether the transaction acquiring point is active or not
The transaction acquiring point description
IP address of External Device
Port of the External IP
The transaction acquiring point type
The transaction acquiring point that the event was submitted from (id or code must be specified). TAP and Organisation (id) attributes are semi-optional
The transaction acquiring point identifier
The transaction acquiring point code
The page number
The number of records per page
The overal number of records
GET https://devapi.crm.com/backoffice/v1/organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/taps HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "TAP1E31269B76D7A65ACCE45B2E68DFD",
"name": "POS",
"code": "P01",
"is_active": "true",
"description": "pos system"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
GET https://sandbox.crm.com/backoffice/v1/organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/taps?is_active=true HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "TAP1E31269B76D7A65ACCE45B2E68DFD",
"name": "POS",
"code": "P01",
"is_active": "true",
"description": "pos system",
"external_ip": "82.102.93.164",
"external_port": "9100",
"tap_type": "GENERIC",
"external_type": "STRIPE_MERCHANT"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/taps{tap_id}Get details for a transaction acquiring point
Path variables
The organisation (identifier) whose transaction acquiring point will be retrieved
The transaction acquiring point (identifier) that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
Information about the organisation’s external references
The transaction acquiring point identifier
The transaction acquiring point name
The transaction acquiring point code
Defines whether the transaction acquiring point is active or not
The transaction acquiring point description
IP address of External Device
Port of the External IP
The transaction acquiring point type
The transaction acquiring point that the event was submitted from (id or code must be specified). TAP and Organisation (id) attributes are semi-optional
The transaction acquiring point identifier
The transaction acquiring point code
GET https://sandbox.crm.com/backoffice/v1/organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/tapsTAP1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": {
"id": "TAP1E31269B76D7A65ACCE45B2E68DFD",
"name": "POS",
"code": "0012465",
"is_active": "true",
"description": "pos system",
"external_ip": "82.102.93.164",
"external_port": "9100",
"tap_type": "POS"
}
}
{id}/wifi/sites{id}/wifi/sites{id}/wifi/import{id}/wifi/sites/{s_id}/networks{id}/wifi/sites/{s_id}/networks{id}/wifi/sites/{s_id}/guest_control{id}/wifi/sites/{s_id}/guest_control{id}/wifi/sites/{s_id}/devices{id}/wifi/sitesPath variables
The organisation (identifier) where a site will be created
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The WiFi platform integration
The organisation site identifier as provided from WiFi platform
Responses
Body
The organisation network site identifier
POST https://sandbox.crm.com/backoffice/v1/organisations/35b9bc9c-466b-de7a-f23b-ed7a227e309f/wifi/sites HTTP/1.1
Content-Type: application/json
api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
{
"integration_id": "c6932bcf-b7e8-4fcc-b168-85ea400fb8ed",
"site_id": "88quh2m6"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "0633ab11-9090-001c-5998-936ae44ff5e0"
}{id}/wifi/sitesRetrieve all network sites for an organisation
Path variables
The organisation (identifier) whose sites will be retrieved
Request parameters
Filter based on integration
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The site identifier
Details about the integration
The integration identifier
The integration name
The WiFi platform site id
Details about the guest control settings
Defines the redirection URL (landing page) that contacts will access when joining a guest wifi network
Details about the wifi networks related to the site
The network identifier
the network name
Defines whether the network is enabled or not
Defines whether the guest access is enabled or not
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/organisations/35b9bc9c-466b-de7a-f23b-ed7a227e309f/wifi/sites HTTP/1.1
api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "21f8a49e-b0c3-0334-b708-b2ef9cac8adb",
"integration": {
"id": "81ed6bcd-39ec-214c-5124-9e5ac6cb5dc4",
"name": "UniFi"
},
"site_id": "88quh2m6"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/wifi/importRetrieve WiFi data for a specific organisation from a WiFi platform
Path variables
The organisation (identifier) that WiFi data will be imported
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The external reference of the organisation over to the WiFi platform
Defines which data should be imported
Responses
The request has succeeded
Body
The organisation identifier
POST https://sandbox.crm.com/backoffice/v1/organisations/5e4f4825-b378-d856-c393-1cf3fde458dd/wifi/import HTTP/1.1
Content-Type: application/json
{
"site_id": "wer232rw",
"type": "DEVICES"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "5e4f4825-b378-d856-c393-1cf3fde458dd"
}{id}/wifi/sites/{s_id}/networksUpdate a WiFi network for an organisation
Path variables
The organisation (identifier) whose networks will be updated
The site (identifier) of which networks will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The network (identifier) that will be updated
The network name that will be updated
Defines whether the network is enabled or not
Defines whether the network has enabled the guest access or not
Responses
Body
The organisation identifier
PUT https://sandbox.crm.com/backoffice/v1/organisations/add25d0e-54fc-c005-ca5e-60f167c35578/wifi/sites/02b80141-8b0a-9803-0762-b76e50d34e9e/networks HTTP/1.1
Content-Type: application/json
api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
[
{
"network_id": "fecbacb3-0a03-219a-b86c-6a3b31032410",
"is_enabled": "true",
"is_guest_enabled": "false"
}
]
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "add25d0e-54fc-c005-ca5e-60f167c35578"
}{id}/wifi/sites/{s_id}/networksRetrieve an organisation’s supported networks
Path variables
The organisation (identifier) of which networks will be retrieved
The site (identifier) of which networks will be retrieved
Request parameters
Filters based on whether the network is enabled or not
Filters based on whether the network has enabled the guest access or not
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The network identifier
The network name
Defines whether the network is enabled or not
Defines whether the network has enabled the guest access or not
GET https://sandbox.crm.com/backoffice/v1/organisations/35b9bc9c-466b-de7a-f23b-ed7a227e309f/wifi/sites/02b80141-8b0a-9803-0762-b76e50d34e9e/networks HTTP/1.1
api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "619387ec31d36b2cf6f9d8af",
"name": "CRM-Nicosia",
"is_enabled": "true",
"is_guest_enabled": "false"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/wifi/sites/{s_id}/guest_controlUpdate an organisation’s guest control settings
Path variables
The organisation (identifier) whose guest control will be updated
The site (identifier) of which guest control will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Defines the redirection URL (landing page) that contacts will access when joining a guest wifi network
Responses
Body
The organisation network site identifier
PUT https://sandbox.crm.com/backoffice/v1/organisations/35b9bc9c-466b-de7a-f23b-ed7a227e309f/wifi/sites/85b8181b-a1f2-8642-2400-3f9476bfc031/guest_control HTTP/1.1
Content-Type: application/json
api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
{
"redirect_url": "https://crm.com/;anding-page"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "0633ab11-9090-001c-5998-936ae44ff5e0"
}{id}/wifi/sites/{s_id}/guest_controlRetrieve guest control settings for an organisation
Path variables
The organisation (identifier) of which guest control will be retrieved
The site (identifier) of which guest control will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Defines the redirection URL (landing page) that contacts will access when joining a guest wifi network
GET https://sandbox.crm.com/backoffice/v1/organisations/35b9bc9c-466b-de7a-f23b-ed7a227e309f/wifi/sites/5464d7c1-8bb4-357c-33de-3e0059c6b984/guest_control HTTP/1.1
api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
HTTP/1.1 200 OK
Content-Type: application/json
{
"redirect_url": "https://crm.com/landing-page"
}{id}/wifi/sites/{s_id}/devicesRetrieve devices (access points) from WiFi network for a specific organisation
Path variables
The organisation (identifier) of which devices will be retrieved
The site (identifier) of which devices will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The organisation identifier
The device name
The device mac address
GET https://sandbox.crm.com/backoffice/v1/organisations/35b9bc9c-466b-de7a-f23b-ed7a227e309f/wifi/sites/7ae2d47f-39ca-377f-66c1-4f707795b7e3/devices HTTP/1.1
api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"name": "CRM-Nicosia",
"mac-address": "00:00:5e:00:53:af"
}
]
}{id}Creates a single communication for a speciifc Contact
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
The name of the communication
The GUID of the Contact that the communication will be sent to
The channel that the communication is sent through
The integration that will send the communication
The language of the communication
The recipient’s address or phone according to the channel
Title of push notification (applicable for INAPP channels)
Subtitle (iOS only) of push notification (applicable for INAPP channels)
The actual subject of the communication sent (applicable for EMAIL channels)
The actual content of the communication sent
If set to True then the email and sms opt-out preferences of contact will be ignored
Image for push notification
Push notification URL (deep linking)
The message type that a provisioning provider will send (applicable and required only if the selected integrator is a provisioning provider)
Email Communication (send by provisioning provider)
On Screen Display Communication (send by provisioning provider)
Responses
The request has succeeded
Body
The communication identifier
POST https://sandbox.crm.com/backoffice/v1/communications HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"name": "Happy Birthday",
"contact_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"channel": "EMAIL",
"integration_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"language": "ENG",
"recipient": "customer@crm.com",
"title": "New Festive Beverages",
"subtitle": "20% discount for December",
"subject": "New Rewards Offer",
"content": "",
"ignore_preferences": "true",
"in_app_image_url": "",
"in_app_click_link_url": "",
"message_type": "OSD"
}
{id}Retrieve a specific communication
Path variables
The ID of the communication to be retrieved
Responses
The request has succeeded
Body
The name of the communication
The state of the communication
The channel that the communication is sent through
Has the recipient viewed the communication?
The datetime that the recipient viewed the communication
Has the recipient archived the communication?
The date links in the communication where first clicked by the recipient
The date and time that the communication was created
The language of the communication
The default sender
The email or number of the recipient
Title of push notification (applicable for INAPP channels)
Subtitle (iOS only) of push notification (applicable for INAPP channels)
The actual subject of the communication sent (if applicable)
The actual content of the communication sent
Image for push notification
Push notification URL (deep linking)
The contact that the communication was delivered to
The unique identifier of the contact
The full name of the contact
The unique code of the contact
The message type that a provisioning provider will send (applicable and required only if the selected integrator is a provisioning provider)
Email Communication (send by provisioning provider)
On Screen Display Communication (send by provisioning provider)
GET https://stagingapi.crm.com/backoffice/v1/communications/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"name": "Happy Birthday",
"life_cycle_state": "PENDING",
"channel": "EMAIL",
"is_viewed": true,
"viewed_on": 1583846861,
"is_archived": true,
"clicked_on": 1583846865,
"created_on": 1583846861,
"language": "ENG",
"sender": "dev@crm.com",
"recipient": "jon@crm.com",
"subject": "",
"content": "",
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
}
}
Retrieves all available communications
Request parameters
The contact ID for which the communications will be retrieved
The life cycle state of the communications to be retrieved
The channel of the communications to be retrieved
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Responses
The request has succeeded
Body
The communication ID
The name of the communication plan in case this communication was created based on a plan
The state of the communication
The channel that the communication is sent through
Has the recipient viewed the communication?
The datetime that the recipient viewed the communication
Has the recipient archived the communication?
The date links in the communication where first clicked by the recipient
The date and time that the communication was created
The communication’s language
The default sender
The email or number of the recipient
The actual subject of the communication sent (if applicable)
The actual content of the communication sent
Title of push notification (applicable for INAPP channels)
Subtitle (iOS only) of push notification (applicable for INAPP channels)
Image for push notification
Push notification URL (deep linking)
The contact that the communication was delivered to
The unique identifier of the contact
The full name of the contact
The unique code of the contact
The message type that a provisioning provider will send (applicable and required only if the selected integrator is a provisioning provider)
Email Communication (send by provisioning provider)
On Screen Display Communication (send by provisioning provider)
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/communications HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Happy Birthday",
"life_cycle_state": "PENDING",
"channel": "EMAIL",
"is_viewed": true,
"viewed_on": 1583846865,
"is_archived": true,
"clicked_on": 1583846865,
"created_on": 1583846865,
"language": "ENG",
"sender": "dev@crm.com",
"recipient": "jon@crm.com",
"subject": "Welcome to our company",
"content": "Dear sir/madam...",
"title": "New Festive Beverages",
"subtitle": "20% discount for December",
"in_app_image_url": "",
"in_app_click_link_url": "",
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Smith",
"code": "H8893M70"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}{id}{id}Creates a communication template
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
The name of the communication template
Communication template related entity
Channel of communication - subject to integrations
The language that the content is provided in (3-digits)
Title - applicable if template is for push notifications
Subtitle - applicable if template is for push notifications
The subject of the communication of the rich content
The content in rich format
The content in plain format
Image for push notification
Type of image
Push notification URL (deep linking)
Defines whether the communication template is the default one
Responses
The request has succeeded
Body
The communication template identifier
POST https://sandbox.crm.com/backoffice/v1/communication_templates HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"name": "New Rewards Offer Template",
"entity": "INVOICE",
"channel": "SMTP",
"contents": [
{
"language": "ENG",
"title": "New Festive Beverages",
"subtitle": "20% discount for December",
"subject": "",
"rich_content": "",
"plain_content": "",
"in_app_image_url": "",
"in_app_image_type": "UPLOAD",
"in_app_click_link_url": ""
}
]
}
{id}Update a communication template
Path variables
The communication template identifier to be updated
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
Communication template unique id
The name of the communication template
Communication template content id
The language that the content is provided in (3-digits)
Title - applicable if template is for push notifications
Subtitle - applicable if template is for push notifications
The subject of the communication of the rich content
The content in rich format
The content in plain format
Image for push notification
Type of image
Push notification URL (deep linking)
Defines whether the communication template is the default one
Responses
The request has succeeded
Body
The communication template identifier
PUT https://sandbox.crm.com/backoffice/v1/communication_templates/{id} HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"id": "e82c88c8-0c5a-4fc9-97fc-06bed0506578",
"name": "General invoice",
"contents": [
{
"id": "db56a528-fe5a-49d0-8424-87f76caee81a",
"language": "ENG",
"title": "New Festive Beverages",
"subtitle": "20% discount for December",
"subject": "",
"rich_content": "",
"plain_content": "",
"in_app_image_url": "",
"in_app_image_type": "UPLOAD",
"in_app_click_link_url": ""
}
]
}
Retrieves all available communication templates
Request parameters
The communication template related entity
Channel of communication - subject to integrations
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Retrieves the communication templates based on their names
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Responses
The request has succeeded
Body
Unique id of communication template
The name of the communication template
Communication template related entity
Channel of communication
Defines whether the communication template is the default one
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/communication_templates HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"name": "New Rewards Offer Template",
"entity": "INVOICE",
"channel": "SMS"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}Retrieve a single communication template
Path variables
The communication template id
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Responses
The request has succeeded
Body
Communication template unique id
The name of the communication template
Communication template related entity
Channel of communication
Communication template content id
The language that the content is provided in (3-digits)
Title - provided if template is for push notifications
Subtitle (iOS only) - provided if template is for push notifications
The subject of the communication of the rich content
The content in rich format
The content in plain format
Image for push notification
Type of image
Push notification URL (deep linking)
Defines whether the communication template is the default one
GET https://sandbox.crm.com/backoffice/v1/communication_templates/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "e82c88c8-0c5a-4fc9-97fc-06bed0506578",
"name": "New Rewards Offer Template",
"entity": "INVOICE",
"channel": "EMAIL",
"contents": [
{
"id": "db56a528-fe5a-49d0-8424-87f76caee81a",
"language": "ENG",
"title": "New Festive Beverages",
"subtitle": "20% discount for December",
"subject": "",
"rich_content": "",
"plain_content": "",
"in_app_image_url": "",
"in_app_image_type": "UPLOAD",
"in_app_click_link_url": ""
}
]
}
{id}Delete a communication template
Path variables
The communication template id to be deleted
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Responses
Use this API to send a transaction as an email or view it as a web page (to print), the output is based on a configured communication template which must be specified.
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
Details of entity to be output
Output entity type
Output entity id (e.g. invoice id)
Communication template id to be used for output
Output type
Transaction is sent to the Contact’s email address
Transaction is viewed as a web page (can be printed using web browser)
Responses
The request has succeeded
Body
The communication template identifier
POST https://sandbox.crm.com/backoffice/v1/printout HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"entity": {
"name": "INVOICE",
"id": "007c08166f95-8c54d563-b991-4b76-8a83"
},
"template_id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"action": "EMAIL"
}{id}{id}{id}Creates a single communication plan
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The communication plan’s name
The datetime that the communication plan ends running
The datetime that the communication plan will start running
A list of segments that the communications will be sent to
the segment ID
A list of communication contents set up based on the channels and languages enabled
the IDs of different contents used in this communication plan. Different languages and type of text
The language that the content is provided in (3-digitis)
Title for INAPP push notifications
Subtitle for INAPP push notifications (iOS only)
The subject of the communication of the rich content (not for INAPP)
The content in rich format
The content in plain format
Image for push notification
Type of image
Push notification URL (deep linking)
A list of integrations that will send the emails. One integration/connector per channel should be provided
The message type that a provisioning provider will send (applicable and required only if the selected integrator is a provisioning provider)
Email Communication (send by provisioning provider)
On Screen Display Communication (send by provisioning provider)
The repeat frequency provided as a cron expression pattern
The life cycle state of the Communication Plan
Responses
The request has succeeded
Body
The communication plan identifier
POST https://sandbox.crm.com/backoffice/v1/communication_plans HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"name": "New Reward Offers",
"end_date": 12345678,
"start_date": 12345678,
"preferred_channel": "WHATSAPP",
"segments": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"contents": [
{
"language": "ENG",
"title": "New Festive Beverages",
"subtitle": "20% discount for December",
"subject": "",
"rich_content": "",
"plain_content": "",
"in_app_image_url": "",
"in_app_image_type": "UPLOAD",
"in_app_click_link_url": ""
}
],
"integrations": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"frequency": "0 0 12 * * ?",
"life_cycle_state": "POSTED"
}
{id}Updates an existing communication plan
Path variables
The ID of the communication plan to be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The communication plan’s name
The datetime that the communication plan will start running
The datetime that the communication plan ends running
A list of segments that the communications will be sent to
the segment ID
A list of communication contents set up based on the channels and languages enabled
the IDs of different contents used in this communication plan. Different languages and type of text
The language that the content is provided in (3-digitis)
Title for INAPP push notifications
Subtitle for INAPP push notifications (iOS only)
The subject of the communication of the rich content (not for INAPP)
The content in rich format
The content in plain format
Image for push notification
Image type
Push notification URL (deep linking)
A list of integrations that will send the emails. One integration/connector per channel should be provided
The message type that a provisioning provider will send (applicable and required only if the selected integrator is a provisioning provider)
Email Communication (send by provisioning provider)
On Screen Display Communication (send by provisioning provider)
The repeat frequency provided as a cron expression pattern
The life cycle state of the Communication Plan
Responses
The request has succeeded
Body
The communication plan identifier
PUT https://sandbox.crm.com/backoffice/v1/communication_plans/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"name": "New Reward Offer",
"end_date": 12345678,
"start_date": 112345678,
"preferred_channel": "SMS",
"segments": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"contents": [
{
"language": "ENG",
"title": "New Festive Beverages",
"subtitle": "20% discount for December",
"subject": "",
"rich_content": "",
"plain_content": "",
"in_app_image_url": "",
"in_app_image_type": "UPLOAD",
"in_app_click_link_url": ""
}
],
"integrations": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"frequency": "0 0 12 * * ?",
"life_cycle_state": "DRAFT"
}
{id}Deletes a single communication plan
Path variables
The ID of the communication plan to be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://devapi.crm.com/backoffice/v1/communication_plans/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
HTTP/1.1 200 OK Retrieves all available communication plans
Request parameters
The value of the search across the plan name
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The communication plan identifier
The communication plan name
The datetime that the communication plan will start running
The datetime that the communication plan ends running
The life cycle state of the Communication Plan
The integration identifier
The name of the integration
The channel that the communication is sent through
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
The page number
The number of records per page
The overal number of records
GET https://devapi.crm.com/backoffice/v1/communication_plans HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "New Reward Offers",
"end_date": 12345678,
"start_date": 12345678
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}Retrieves a specific communication plan
Path variables
The unique ID of the communication plan to be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The name of the communication plan
The datetime that the communication plan ends running
The datetime that the communication plan will start running
A list of segments that the communications will be sent to
the segment ID
The ID of the segment
The name of the segment
A list of communication contents set up based on the channels and languages enabled
the IDs of different contents used in this communication plan. Different languages and type of text
The language that the content is provided in (3-digits)
Title for INAPP push notifications
Subtitle for INAPP push notifications (iOS only)
The subject of the communication of the rich content (not for INAPP)
The content in rich format
The content in plain format
Image for push notification
Type of image
Push notification URL (deep linking)
A list of integrations that will send the communications. One integration/connector per channel should be provided
The unique identifier
The name of the integration
The channel that the communication is sent through
The repeat frequency provided as a cron expression pattern
The message type that a provisioning provider will send (applicable and required only if the selected integrator is a provisioning provider)
Email Communication (send by provisioning provider)
On Screen Display Communication (send by provisioning provider)
The life cycle state of the Communication Plan
GET https://sandbox.crm.com/backoffice/v1/communication_plans/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1 {id}{id}{id}Create a new contact (person or company)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The contact identifier. if not supplied one will be generated
User readable code for the contact
Type of contact support types include Person and Company.
Defines whether the contatc is classified as Tax Exempt or not. Defaults to False.
Company Name if the Contact represents a company, required attribute if the type is a Company.
The title of the contact. Applicable only if the type is PERSON
The first name of the contact. Applicable and mandatory only if the type is PERSON
The middle name of the contact. Applicable only if the type is PERSON
The last name of the contact. Applicable and mandatory only if the type is PERSON
The contact’s preferred language for communication
The contact’s unique statutory number
Notes for the contact
The contact setting for receiving sms. Default value is false
The contact setting for receiving emails. Default value is false
If set to true, then a single account is created for the contact usig the system’s default settings and no further input is needed.
The contact’s category.
The contact’s email address
The contact’s referral code
The contact’s loyalty identifier
The country code that the contact agreed to register to
Information about the contact’s demographic. Applicable only if the contact type is PERSON
The gender of the contact
The country code for the country of residence
Information about the contact’s passport
The passport number
The passport’s issue country code
The passport’s expiration date
Information about the contact’s id. Applicable only if the contact is type of PERSON
The id number
The id’s issue country code
The id’s expiration date
The contact’s name day. Applicable only if the contact is type of PERSON
The month of the name day
The day of the name day
Information about the contact’s data of birth. Applicable only if the contact is type of PERSON
The birth year
The birth month
The birth day
Information about the company’s profile. Applicable only if contact_type is COMPANY
The company’s industry unique ID
The profile year
The annual turnover
The date that the company was established on
The company’s number of employees
The company’s registration number
The company’s registrationc country code
The company’s tax reference number
The company VAT registration numnber
The company’s industry sectors IDs
Information about the contact’s addresses
Information about an address of the contact
The address type. Many of the same type.
A short name to allow it to be easily recognised in a list
Defines whether the address is the primary one (used for billing or communication purposes)
The address line 1 (main address information
The address line 2 (additional information)
The address state/province/county
The address town/city
The address postal code
The address country code (3 char code based)
The latitude of the address
The longitude of the address
The Google textual identifier that uniquely identifies an address
The address care of
Optional basic account settings for a financial contact
The account name
Indicates the primary account of the contact
The account credit limit
The account currency
The account classification identifier
The account’s payment terms
The custom field’s unique key
The custom field’s value
Responses
The request has succeeded
Body
The contact identifier
Create a contact for a person
POST https://sandbox.crm.com/backoffice/v1/contacts HTTP/1.1
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"code": "0010202311",
"contact_type": "COMPANY",
"is_tax_exempt": "false",
"company_name": "Good Burger",
"title": "Sir",
"first_name": "Louis",
"middle_name": "Aloz",
"last_name": "Kozior",
"preferred_language_code": "ENG",
"statutory_number": "231224-1222000",
"notes": "Notes",
"sms_opt_out": "true",
"email_opt_out": "false",
"create_default_account": true,
"category_id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"email_address": "bill@gmail.com",
"referral_code": "REF123",
"loyalty_identifier": "1234567897415",
"country_agreement": "CYP",
"demographics": {
"gender": "MALE",
"country_of_residence": "USA",
"passport": {
"passport_number": "K)123456",
"issue_country_code": "GRC",
"expiration_date": 13423423222
},
"id_details": {
"id_number": "132465",
"issue_country_code": "CYP",
"expiration_date": 1129876567
},
"name_day": {
"month": 4,
"day": 12
},
"date_of_birth": {
"year": 1999,
"month": 12,
"day": 31
}
},
"company_profile": {
"industry_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"profile_year": 2019,
"annual_turnover": 450000,
"established_on": 98765342,
"number_of_employees": 200,
"registration_number": "123456",
"registration_country": "CYP",
"tax_reference_number": "TAX1234",
"vat_registration_number": "VAT1234",
"industry_sectors": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]
},
"addresses": [
{
"address_type": "BUSINESS",
"address_name": "My sister's house",
"is_primary": "true",
"address_line_1": "Elia Papakyriakou",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2000",
"country_code": "CYP",
"lat": 35.157115,
"lon": 33.313719,
"google_place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
"care_of": "n/a"
}
],
"phones": [
{
"is_primary": true,
"country_code": "CYP",
"number": "238065437",
"phone_type": "MOBILE"
}
],
"accounts": [
{
"name": "AR001",
"is_primary": true,
"credit_limit": 250.12,
"currency_code": "GBP",
"classification_id": "356215f1-8775-c949-cc18-b6da670d319a",
"payment_terms_id": "356215f1-8775-c949-cc18-b6da670d319a"
}
],
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{id}Update a Contact, it is possible to supply a partial body so that only supplied items will be updated.
Path variables
The contact identifier that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Company Name if the Contact represents a company, required attribute if the type is a Company.
The title of the contact. Applicable only if the type is PERSON
The first name of the contact. Applicable and mandatory only if the type is PERSON
The middle name of the contact. Applicable and mandatory only if the type is PERSON
The last name of the contact. Applicable and mandatory only if the type is PERSON
The preferred language for the contact (used on communications, translations, etc)
The contact’s category
Notes for the contact
The contact’s statutory number
A person’s demographic details (applicable only if contact type is PERSON)
The gender of the contact
A company’s profile (applicable only if contact type is COMPANY)
The company’s Industry ID
The company’s Industry Sectors.
A list of phones that should be set on the contact
The custom field’s unique key
The custom field’s value
The contact’s email address
The contact setting for receiving sms.
The contact setting for receiving emails.
Defines whether the contact is tax exempt or not
The address type. Many of the same type.
Responses
OK
Body
The updated contact identifier
PUT https://sandbox.crm.com/backoffice/v1/contacts/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
Content-Type: application/json
{
"company_name": "Good Burger",
"title": "Sir",
"first_name": "Louis",
"middle_name": "Aloz",
"last_name": "Kozior",
"preferred_language_code": "ENG",
"category_id": "",
"notes": "Notes",
"statutory_number": "EF12345",
"demographics": {
"gender": "FEMALE",
"country_of_residence": "",
"passport": {
"passport_number": "",
"issue_country_code": "GRC",
"expiration_date": 129876567
},
"id_details": {
"id_number": "",
"isssue_country_code": "CYP",
"expiration_date": 1
},
"name_day": {
"month": 10,
"day": 4
},
"date_of_birth": {
"year": 2018,
"month": 10,
"day": 16
}
},
"company_profile": {
"industry_id": "4AD9C84FA60F9FE407140E20F707726A",
"profle_year": 1,
"annual_turnover": 1,
"established_on": 1,
"number_of_employees": 1,
"registration_number": "",
"registration_country": "",
"tax_reference_number": "",
"vat_registration_number": "",
"industry_sectors": [
"4AD9C84FA60F9FE407140E20F707726A"
]
},
"phones": [
{
"id": "",
"is_primary": true,
"country_code": "44",
"number": "238065437",
"phone_type": "FAX"
}
],
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
],
"email_address": "bill@gmail.com",
"sms_opt_out": true,
"email_opt_out": true,
"is_tax_exempt": "false",
"addresses": [
{
"address_type": "ALTERNATIVE",
"address_name": "My sister's house",
"is_primary": "true",
"address_line_1": "",
"address_line_2": "Thomas V",
"state_province_county": "Active",
"town_city": "",
"postal_code": "",
"country_code": "CYP",
"lat": "",
"lon": "",
"google_place_id": "",
"is_billing": true
}
]
}
Search for Contacts
Request parameters
The value of the search across Full Name, Company Name, Contact Code, Phone Number, Email Address, Loyalty Identifier or Serial number of a purchased/rental device (case insensitive)
Unique Code of Contact
The first name of contact. Applicable only when searching for physical persons
The last name of contact. Applicable only when searching for physical persons
The name of the company. Applicable only when searching for companies
The email address of the contact
The phone number of the contact
The contact’s unique statutory number
If set to true then information about the primary account and wallet will be also retrieved
The customer identification medium
The contact’s loyalty identifier
Filter based on contact registration date
Returns results where the registration date is greater than this value
Returns results where the registration date is greater than or equal to this value
Returns results where the registration date is less than this value
Returns results where the registration date is less then or equal to this value
The unique identifier of the organisation that owns the contact
Defines the additional metrics to be retrieved in the response (comma separated)
Filters contacts based on the country code that the contact agreed to registered to
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Defines whether custom fields should be retrieved or not (via List/Get APIs)
Filters based on custom fields (key/value set should be semicolon separated)
If specified, then the balance of the account is as of this date is calculated
filtering by list of tag ids.
Defines whether additional information will be retrieved or not
The complete phone number of the contact which includes the country’s dial code
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The contact identifier
The contact code
Type of contact support types include Person and Company.
The contact full name
The contact statutory number
The date on which the contact was registered in CRM.COM
Details about the event classification
The category identifier
The category name
Details about contact addresses
The address identifier
The address type. Many of the same type.
A short name to allow it to be easily recognised in a list
Defines whether the address is the primary one
The address line 1
The address line 2
The address state/province/county
The address town/city
The address postal code
The address country (based on ISO 3 char code)
The latitude of the address
The longitude of the address
The Google textual identifier that uniquely identifies an address
The address care of
Details about contact’s phone
The phone identifier
Defines whether the phone is the primary one
The phone country code
The phone number
The contact’s email
The primary account of the contact. Available only if “financials” parameter is set to True
Account details
The account identifier
The account number
The account life cycle state
The account currency (code)
The account overdue amount
The account’s running balance as calculated at the time of the Web API call
The account’s balance as of a specific date (calculated only if this date is specified in the input parameters)
Details about the event classification
The classification identifier
The classification name
Wallet related to the primary account
Wallet identifier
Wallet code
The wallet life cycle state
Wallet total balance
Wallet’s Open Balance
Wallet’s Commerce Balance
Currency code
The interaction status of the contact, retrieved by REDIS
Retrieves the metrics requested
Subscription metrics
Defaults to current timestamp
Total number of Subscriptions
Reward Schemes metrics
Defaults to current timestamp
Total number of Schemes
The contact’s assigned KYC profile
The KYC Profile identifier
The name of the KYC profile
The status of the KYC profile assigned to Contact
The contact’s loyalty identifiers (cards)
The unique identifier of the loyalty identifier (CIM)
The loyalty identifier
The country code on which the contact agreed to register to
The custom field’s unique key
The custom field’s value
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/contacts HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"code": "ABC-123",
"contact_type": "PERSON",
"contact_name": "John CRM Doe",
"statutory_number": "EF00001231",
"registered_on": 1,
"category": {
"id": "c8d83493-3f50-40df-adb0-762ec5f41863",
"name": "Delivery Purchase"
},
"addresses": [
{
"id": "0df9936c-7d5f-a878-4c05-9b942aa14295",
"address_type": "HOME",
"address_name": "My house",
"is_primary": true,
"address_line_1": "Elia Papakyriakou",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2015",
"country": "CYP",
"lat": 35.157115,
"lon": 33.313719,
"google_place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
"care_of": "n/a"
}
],
"phones": [
{
"id": "60bcca96-4965-4d56-8341-cb6f5ae61803",
"phone_type": "LANDLINE",
"is_primary": "true",
"country_code": "357",
"number": "99999999"
}
],
"email_address": "bill@gmail.com",
"financials": {
"account": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "AR123",
"life_cycle_state": "ACTIVE",
"currency_code": "EUR",
"overdue_amount": 1,
"balance": 200,
"as_of_date_balance": 1,
"classification": {
"id": "c8d83493-3f50-40df-adb0-762ec5f41863",
"name": "Delivery Purchase"
}
},
"wallet": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"code": "9000545655567800",
"life_cycle_state": "EFFECTIVE",
"balance": 9.99,
"open_balance": 4.45,
"commerce_balance": 5.54,
"currency_code": ""
}
},
"interaction_status": "",
"metrics": {
"subscriptions": {
"timestamp": 1589791784,
"total": 2
},
"schemes": {
"timestamp": 1589791784,
"total": 2
}
},
"kyc_profile": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Standard"
},
"kyc_status": "PENDING",
"loyalty_identifiers": [
{
"id": "3311eb31-1f2c-5d8f-ae0d-d22595bbfb7a",
"identifier": "234234234324234234234234"
}
],
"country_agreement": "CYP",
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
],
"additional_information": {
"number_of_subscriptions": 1,
"number_of_signed_up_reward_schemes": 1
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
Retrieves the list of contacts (can be filtered based on contact attributes)
Notes
Recommended to be used when creating new Orders, Service Requests, Activities or via external integrations (e.g. POS Integrators)
Request parameters
The value of the search across Full Name (Person or Company), Contact Code, Phone Number, Email Address and Loyalty Identifier (case insensitive)
The contact code
The full name of contact. Applicable only when searching for physical persons
The name of the company. Applicable only when searching for companies
The email address of the contact
The phone number of the contact
The contact’s loyalty identifier
The customer identification medium
Filters contacts based on the country code that the contact agreed to registered to
If set to true then information about the primary account and wallet will be also retrieved
If set to true then any Gift passes redeemed by the customer will also be retrieved
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The contact identifier
The contact code
Type of contact support types include Person and Company.
The contact full name (person OR company)
The contact’s email
Details about contact’s phone
The phone identifier
Defines whether the phone is the primary one
The phone country code
The phone number
The contact’s loyalty identifiers (cards)
The unique identifier of the loyalty identifier (CIM)
The loyalty identifier
The contact’s redeemed Gift passes (set as CIM)
The pass code
Details about the contact financials. Available only if “include_financials” parameter is set to True
Details about the account
The account identifier
The account number
The account currency (code)
Defines whether the account is the primary one
The account life cycle state
The Wallet related to the retrieved Account
Wallet identifier
Wallet code
The wallet life cycle state
Currency code
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/customers HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"code": "ABC-123",
"contact_type": "COMPANY",
"contact_name": "John CRM Doe",
"email_address": "info@crm.com",
"phones": [
{
"id": "60bcca96-4965-4d56-8341-cb6f5ae61803",
"phone_type": "LANDLINE",
"is_primary": "true",
"country_code": "357",
"number": "99999999"
}
],
"loyalty_identifiers": [
{
"id": "3311eb31-1f2c-5d8f-ae0d-d22595bbfb7a",
"identifier": "234234234324234234234234"
}
],
"gift_passes": [
{
"code": "SIOT9W5GGKQQ4"
}
],
"financials": [
{
"account": {
"id": "f77dde12-dcf1-7605-48a4-a10679029b0e",
"number": "AR1234",
"currency_code": "EUR",
"is_primary": "true",
"life_cycle_state": "ACTIVE"
},
"wallet": {
"id": "f77dde12-dcf1-7605-48a4-a10679029b0e",
"code": "9000043334321111",
"life_cycle_state": "EFFECTIVE",
"currency_code": "EUR"
}
}
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Get details for a specific contact
Path variables
The contact (identifier) that should be returned
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The contact identifier
The contact’s unique code
Type of contact support types include Person and Company.
The name of the company if the contact type is COMPANY
The title of the contact. Applicable only if the type is PERSON
The first name of the contact. Applicable and mandatory only if the type is PERSON
The middle name of the contact. Applicable and mandatory only if the type is PERSON
The last name of the contact. Applicable and mandatory only if the type is PERSON
The full name of the Contact taking into consideration the name display settings
The contact’s preferred language for communication
Notes for the contact
The contact’s unique statutory code
Defines whether the contact is Tax Exempt or not
Details about the event classification
The category identifier
The category name
Details about the contact’s dmographic information (applicable for PERSON contects)
The gender of the contact
The contact’s country of residence
Details about the contact’s passport
The passport number
The issue country for the passport
The expiration date for the passport
Details about the ID (applicable for PERSON contects)
The ID number
The country that issued such ID
The expiration date for the ID
Details about the contact nameday (applicable for PERSON contects)
The nameday month
The nameday day
Details about the contact birthday (applicable for PERSON contects)
The year of birth
The month of birth
The day of birth
A company’s profile. Applicable only if contact_type is COMPANY
The company’s Industry details
The company’s Industry Sectors
Details about the contact’s phones
The phone identifier
The phone type
Defines whether the phone number is the primary one
The phone country code (based on ISO 3 char code)
The phone number
Defines whether Phone number has been verified
The custom field’s unique key
The custom field’s value
The contact’s email
The contact’s consent state
The interaction status of the contact, retrieved by REDIS
The contact’s total spend amount in the last 12 months, retrieved from REDIS
The contact referral code
The contact’s authorisation credentials
The name of the authorisation credential
The value of the credential
Defines whether credential has been verified or not
The country code on which the contact agreed to register to
Details about the contact’s addresses
The address identifier
The address type. Many of the same type.
A short name to allow it to be easily recognised in a list
Defines whether the address is the primary one
The address line 1
The address line 2
The address state/province/county
The address town/city
The address postal code
The address country (based on ISO 3 char code)
The latitude of the address
The longitude of the address
The Google textual identifier that uniquely identifies an address
The address care of
Defines whether the contact is anonymized
GET https://sandbox.crm.com/backoffice/v1/contacts/ba28b216-d9be-7c12-8305-3427cfa6ed4a HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "ba28b216-d9be-7c12-8305-3427cfa6ed4a",
"code": "ABC-123",
"contact_type": "COMPANY",
"company_name": "Louis Kozior",
"title": "Sir",
"first_name": "Mark",
"middle_name": "Jason",
"last_name": "Johnson",
"contact_name": "Mark Jason Johnson",
"preferred_language_code": "ENG",
"notes": "Notes",
"statutory_number": "EF-12345",
"is_tax_exempt": "true",
"category": {
"id": "c8d83493-3f50-40df-adb0-762ec5f41863",
"name": "Delivery Purchase"
},
"demographics": {
"gender": "MALE",
"country_of_residence": "",
"passport": {
"passport_number": "PASS1234",
"issue_country_code": "GRC",
"expiration_date": 129876567
},
"id_details": {
"id_number": "ID1234",
"issue_country_code": "CYP",
"expiration_date": 129876567
},
"name_day": {
"month": 10,
"day": 4
},
"date_of_birth": {
"year": 2018,
"month": 10,
"day": "16"
}
},
"company_profile": {
"industry": {
"id": "",
"name": ""
},
"industry_sectors": [
{
"id": "342343234234",
"name": ""
}
],
"profile_year": 1999,
"annual_turnover": 1,
"established_on": 1,
"number_of_employees": 1,
"registration_number": "",
"registration_country": "",
"tax_reference_number": "",
"vat_registration_number": ""
},
"phones": [
{
"id": "5203665d-281d-ad97-6643-ae1038d2f6b7",
"phone_type": "MOBILE",
"is_primary": true,
"country_code": "CYP",
"number": "238065437",
"is_verified": true
}
],
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
],
"email_address": "bill@gmail.com",
"consent_state": "ACCEPTED",
"interaction_status": "",
"total_spend": "250",
"sms_opt_out": true,
"email_opt_out": true,
"referral_code": "REF123",
"credentials": [
{
"name": "EMAIL",
"value": "johndoe@gmail.com",
"is_verified": "true"
}
],
"country_agreement": "CYP",
"addresses": [
{
"id": "0df9936c-7d5f-a878-4c05-9b942aa14295",
"address_type": "ALTERNATIVE",
"address_name": "My house",
"is_primary": true,
"address_line_1": "Elia Papakyriakou",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2015",
"country": "CYP",
"lat": 35.157115,
"lon": 33.313719,
"google_place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
"care_of": "n/a"
}
],
"is_anonymised": "false"
}
{id}Delete an existing contact
Path variables
The contact identifier that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
DELETE https://sandbox.crm.com/backoffice/v1/contacts/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK {id}/activity_feed{id}/activity_feedRetrieves Contact’s activity feed
Path variables
The contact identifier that the activity will be retrieved for
Request parameters
Filter based on activity type
Filter based on the performed date, which may fall within a given date range. The value can be a string with a date in epoch format. Each option must also include an operator. Use up to two options based on the required search (e.g. performed_on[gte]=1618395497&performed_on[lt]=1618395497).
Returns results where the performed date is greater than this value
Returns results where the performed date is greater than or equal to this value
Returns results where the performed date is less than this value
Returns results where the performed date is less then or equal to this value
The page number that should be retrieved
The size (total records) of each page
Defines on which attribute the results should be sorted
Defines how the results will be ordered
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The activity unique ID
The entity’s number
The entity’s reference number
The entity’s code
The entity’s life cycle state
The date and time where the activity was created
The activity type
The entity’s direction.
The notes of the activity
The entity’s type name
The entity’s total amount
The currency code provided in the entity
The activity name
The entity’s due date in case of Invoices
The entity’s expiration date in case of Awards
The name of the reward offer that provided the Award
The name of the merchant that the activity was performed for
The entity that the topup was performed for
The unique ID of the topup entity
The number or code of the topup entity
The type of the topup entity
The origin entity that the transfer was performed from
The unique ID of the transfer origin entity
The number or code of the transfer origin entity
The type of the transfer origin entity
The destination entity that the transfer was performed for
The unique ID of the transfer destination entity
The number or code of the transfer destination entity
The type of the transfer destination entity
Id of Contact receiving transfer of funds
The full name of the contact that the transfer was sent to
The unique code of the contact that the transfer was sent to
The referred by account details
The referred by account identifer
The referred by account name
The referred by account number
The referred by contact details
The referred by contact identifier
The referred by contact name
The ad hoc return purchase details
The ad hoc return purchase reference number
The date that the ad hoc return purchase is requested
The amoount that the customer was debitied due to ad hoc return
The currency code of the ad hoc return request
The ad hoc return request amount
Payment method(s)
payment method id
Payment method
An identifier that briefly describes the contact’s payment method (The last 4 digits for cards, the email for Paypal accounts or the wallet number
How an entity is allocated (e.g. a credit note)
The financial transaction type unique identifier
The financial transaction type name
Purchase discount amount
scheduled date
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/contacts/13cc9948-3560-e10a-e1e4-a73610054933/activity_feed HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"activity_feed": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "I10003",
"reference_number": "Ref12345678",
"code": "123456789ABE2364",
"state": "POSTED",
"created_date": 1576486645,
"activity_type": "ACTIVITY",
"direction": "OUTGOING",
"notes": "This Invoice is created for November 2019",
"type": "INVOICE",
"total_amount": 200,
"currency": "EUR",
"name": "",
"due_date": 1576486645,
"expiration_date": 1576486645,
"reward_offer": "Happy Birthday Offer",
"merchant_name": "Bakery Nicosia",
"topup_entity": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "AC00123 John Johnson",
"type": "WALLET"
},
"transfer_origin_entity": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "AC00123 John Johnson",
"type": "ACCOUNT"
},
"transfer_dest_entity": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "W00123 John Johnson",
"type": "ACCOUNT",
"contact": {
"id": "",
"name": "John Smith",
"code": "89904678"
}
},
"referred_by_account": {
"id": "4bab629d-0d6b-f93b-4664-82cea61c1481",
"name": "John Doe",
"number": "AR0000112346"
},
"referred_by_contact": {
"id": "4bab629d-0d6b-f93b-4664-82cea61c1422",
"name": "John Doe"
},
"ad_hoc_return": {
"reference_number": "qwewe234-dfsf234324-dwrwerw",
"ad_hoc_return_date": 1601636257,
"amount": 299.99,
"currency": "EUR",
"request_amount": 999.99
},
"payment": [
{
"id": "",
"method": "CARD",
"identifier": "**** 1234"
}
],
"allocations": [
{
"id": "",
"name": "Purchase"
}
],
"purchase_discount": 2.4,
"financials": "",
"owner": {
"id": "&686786876HGHJDG",
"name": "John Doe"
},
"priority": "LOW",
"date": "",
"from_time": "",
"to_time": ""
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/addresses{id}/addresses/{address_id}{id}/addresses/{address_id}{id}/addresses/{id}/addressesAdd a new address to an existing contact. A contact can have multiple addresses
Path variables
The contact identifier that the address should be added
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Information about an address of the contact
The address type. Many of the same type.
A short name to allow it to be easily recognised in a list
Defines whether the address is the primary one (used for billing or communication purposes)
The address line 1 (main address information
The address line 2 (additional information)
The address state/province/county
The address town/city
The address postal code
The address country code (3 char code based)
The latitude of the address
The longitude of the address
The Google textual identifier that uniquely identifies an address
The address care of
Responses
Successful Request
Body
The address identifier
POST https://devapi.crm.com/backoffice/v1/contacts/CAD1E31269B76D7A65ACCE45B2E68DFD/addresses HTTP/1.1
Content-Type: application/json
{
"address_type": "HOME",
"care_of": "",
"is_primary": true,
"address_line_1": "",
"address_line_2": "Thomas V",
"state_province_county": "Active",
"town_city": "",
"postal_code": "",
"country_code": "CYP"
}{id}/addresses/{address_id}Update an existing address of a contact
Path variables
The contact identifier that will be updated
The address identifier that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Information about an address of the contact
The address type. Many of the same type.
A short name to allow it to be easily recognised in a list
Defines whether the address is the primary one (used for billing or communication purposes)
The address line 1 (main address information
The address line 2 (additional information)
The address state/province/county
The address town/city
The address postal code
The address country code (3 char code based)
The latitude of the address
The longitude of the address
The Google textual identifier that uniquely identifies an address
The address care of
Responses
Successful Request
Body
The address identifier
PUT https://sandbox.crm.com/backoffice/v1/contacts/CAD1E31269B76D7A65ACCE45B2E68DFD/addresses/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
Content-Type: application/json
{
"type": "HOME",
"address_name": "",
"care_of": "",
"is_primary": true,
"address_line_1": "",
"address_line_2": "Thomas V",
"state_province_county": "Active",
"town_city": "",
"postal_code": "",
"country_code": "CYP",
"lat": 35.157115,
"lon": 33.313719,
"google_place_id": "ChIJrTLr-GyuEmsRBfy61i59si0"
}
{id}/addresses/{address_id}Removes a contact address. A single address can be removed at a time
Path variables
The contact identifier that will be updated
The contact identifier that will be removed
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
DELETE /contacts/CAD1E31269B76D7A65ACCE45B2E68DFD/addresses/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
Authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK {id}/addresses/Lists the addresses associated to the contact.
Path variables
id of contact
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
Value to search by name etc.
Responses
Body
The address identifier
The address type. Many of the same type.
A short name to allow it to be easily recognised in a list
Defines whether the address is the primary one
The address line 1
The address line 2
The address state/province/county
The address town/city
The address postal code
The address country (based on ISO 3 char code)
The latitude of the address
The longitude of the address
The Google textual identifier that uniquely identifies an address
The address care of
GET https://sandbox.crm.com/backoffice/v1/contacts/{id}/addresses/ HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "0df9936c-7d5f-a878-4c05-9b942aa14295",
"address_name": "My house",
"address_type": "HOME",
"is_primary": true,
"address_line_1": "Elia Papakyriakou",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2015",
"country": "CYP",
"lat": 35.157115,
"lon": 33.313719,
"google_place_id": "ChIJrTLr-GyuEmsRBfy61i59si0"
}
]
}
{id}/files{id}/files/{file_id}{id}/files{id}/filesConnect an uploaded file to an existing contact
Path variables
The contact (identifier) that file will be attached
Notes
Integrating file upload for Contacts should be based on the following APIs
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The file (identifier) to be attached
URL of the file to be attached
The file description
Responses
Body
The service request identifier
POST https://sandbox.crm.com/backoffice/v1/service_requests/66451204-4404-894c-4dc6-486c540ece40/files HTTP/1.1
Content-Type: application/json
{
"file_id": "30526723-24a3-e4e3-1a75-b26b1b41f05c",
"url": "https://crmcom.sharepoint.com/:x:/s/servicerequests/EZx2qopbvfN3uj1o3dOqbPm52Ct6bg?rtime=w0ic-hfG2Ug",
"description": "Screenshot sent by customer"
}{id}/files/{file_id}Delete a specific contact attachment file
Path variables
The contact (identifier) that file will be deleted
The attachment file (identifier) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/contacts/66451204-4404-894c-4dc6-486c540ece40/files/04c0bebd-8bb0-0b3e-e1a6-716a0fd200b1 HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK {id}/filesRetrieve all attachment files for a specific contact
Path variables
The contact (identifier) that files will be retrieved
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The attachment identifier
The mime type of the uploaded file
The attachement description
The attachement file details
The file identifier
The file URL endpoint
The file name
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/contacts/66451204-4404-894c-4dc6-486c540ece40/files HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "3ae9d64a-8a3b-f1e1-eed6-05b307f926fb",
"mime": "png",
"description": "this is a brief description of this image",
"file": {
"id": "0317868f-28f8-9f56-d248-5a78718b38cc",
"name": "img.png"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/cards{id}/cardsAdd a card on a contact (card will be hashed and added as a cim)
Path variables
The contact (identifier) on which a card will be added
Notes
PAN Based
A card will be hashed only based on the provided 16digit PAN number.
Card Details Based
A card will be hashed based on the provided last 4 digit, expiration month/year and card owner surname.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The card pan number
The card last 4 digits
The card expiration month
The card expiration year
Details about the card owner
The card owner surname
Information regarding the card tokenization via a payment gateway
The integration (identifier) which is used in the front end
Responses
POST https://sandbox.crm.com/backoffice/v1/contacts/3904d9c5-0356-f1c8-9622-b8b39287e251/cards HTTP/1.1
Content-Type: application/json
{
"pan_number": "4242424242424242",
"gateway_token": [
{
"integration_id": "d693bbcc-d38c-5463-88fd-2e0279150070"
}
]
}
HTTP/1.1 200 OK POST https://sandbox.crm.com/backoffice/v1/contacts/3904d9c5-0356-f1c8-9622-b8b39287e251/cards HTTP/1.1
Content-Type: application/json
{
"last4": "4242",
"exp_month": 12,
"exp_year": 24,
"card_owner": {
"surname": "doe"
},
"gateway_token": [
{
"integration_id": "d693bbcc-d38c-5463-88fd-2e0279150070"
}
]
}
HTTP/1.1 200 OK {id}/consents{id}/anonymize{id}/consentsUpdates the Consent state of the Contact
Path variables
The contact identifier that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The contact’s consent state
Responses
Successful Request
Body
The unique identifier of the contact
PUT https://stagingapi.crm.com/backoffice/v1/contacts/CAD1E31269B76D7A65ACCE45B2E68DFD/consents HTTP/1.1
Content-Type: application/json
{
"consent_state": "REJECTED"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{id}/anonymizeContact Anonymisation is the process of encrypting or removing personally identifiable data from data sets so that the person can no longer be identified directly or indirectly.
Path variables
The contact identifier that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The contact unique identifier to whom the user will transfer the wallet money
POST https://sandbox.crm.com/backoffice/v1/contacts/CAD1E31269B76D7A65ACCE45B2E68DFD/anonymize HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{id}/loyalty_identifiers{id}/loyalty_identifiers/{loyalty_id}{id}/loyalty_identifiers{id}/loyalty_identifiersAdd a new loyalty identifier to an existing contact. A contact can have multiple loyalty identifiers
Path variables
The contact (identifier) whose loyalty identifier will be created
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The loyalty identifier
Responses
Successful Request
Body
The unique identifier of the loyalty identifier (CIM)
POST https://sandbox.crm.com/backoffice/v1/contacts/CAD1E31269B76D7A65ACCE45B2E68DFD/loyalty_identifiers HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"identifier": "123234345624356213"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "891d84dd-4b3b-84b3-ba87-aa63fed3b88a"
}{id}/loyalty_identifiers/{loyalty_id}Removes a contact loyalty identifier. A single loyalty identifier can be removed at a time
Path variables
The contact (identifier) whose phone will be removed
The loylaty (identifier) (CIM based) that will be removed
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
DELETE https://sandbox.crm.com/backoffice/v1/contacts/CAD1E31269B76D7A65ACCE45B2E68DFD/loyalty_identifiers/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK {id}/loyalty_identifiersRetrieve the loyalty identifiers for a specific contact
Path variables
The contact (identifier) wholse loyalty identiers will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The unique identifier of the loyalty identifier (CIM)
The loyalty identifier
GET https://sandbox.crm.com/backoffice/v1/contacts/CAD1E31269B76D7A65ACCE45B2E68DFD/loyalty_identifiers HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "1adaae9e-6dbb-f389-e5d0-8288f0c87a62",
"identifier": "2143454566754"
}
]
}{id}/relationships{id}/relationships{id}/relationships/{child_id}{id}/relationships/{id}/relationshipsThis process creates a relationship between a parent contact and a child contact
Path variables
the GUID of the parent ie.business or main member
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
POST https://sandbox.crm.com/backoffice/v1/contacts/{id}/relationships HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"contact_id": "JKHDSJKHDSKJHDKJHS",
"role": "HR Manager",
"relationship": "FAMILY",
"first_name": "John",
"last_name": "Smith",
"email": "john.smith@yahoo.com",
"phone": {
"country_code": "+27",
"number": "744444121"
}
}{id}/relationshipsThis process creates a relationship between a parent contact and a child contact.
Path variables
The GUID of the parent ie.business or main member
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
id of child contact
Role of contact
The relationship of contact
PUT https://sandbox.crm.com/backoffice/v1/contacts/{id}/relationships HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"id": "JKSDKJHDSKJH",
"role": "HR Manager",
"relationship": "FAMILY"
}{id}/relationships/{child_id}The following process deletes the relationship between a two contacts.
Path variables
The parent contact (identifier)
The child contact (identifier)
DELETE https://sandbox.crm.com/backoffice/v1/contacts/JHDKJHADKJHSDKJH/relationships/JGDSKJGHDKJH HTTP/1.1 {id}/relationships/Lists all the relationships for the contact. Also retrieves the deatils of the contact ie. name and role for the contact relationship.
Path variables
The contact identifier whose relationships will be retrieved
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
This field will determine whether to show the PARENT or the CHILD information.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The id of the relationship.
The role specified of the child contact.
The relationship of contact
Details relating to the contact.
The id of the child contact
The first name of the child contact
Email relating to the contact
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/contacts/CAD1E31269B76D7A65ACCE45B2E68DFD/relationships/ HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "JHDKJHDKAJHD",
"role": "HR Manager",
"relationship": "EMPLOYEE",
"contact": {
"id": "KJDKJHADKH",
"name": "John Smith",
"email": "john.smith@gmail.com",
"phone": {
"country_code": "",
"number": ""
}
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
The following process relates to tag functionality for contacts
{id}/tags{id}/tags{id}/tags/{tag_id}{id}/tags{id}/tagsThe following process adds tags to a contact
Path variables
The contact GUID
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
the content relating to the tag
The tag id
POST https://sandbox.crm.com/backoffice/v1/contacts/HRDGSWRSFVSDSDBSDSSDDE/tags HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"tags": [
{
"id": "FDHNFDBR675765ghdh"
}
]
}{id}/tagsThe following process updates tags for a contact
Path variables
The contact GUID
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
the content relating to the tag
The tag id
PUT https://sandbox.crm.com/backoffice/v1/contacts/{id}/tags HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"tags": [
{
"id": "JGFJHGJHSDGHJSG"
}
]
}{id}/tags/{tag_id}Deletes a tag on a contact.
Path variables
The id of the contact.
The id of the tag
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/contacts/JFGJKSFGJFSGH/tags/KJDFHKJGFSJHG HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK {id}/tagsThe following process retrieves the tags for a contact
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
the tag ID
Name of Tag
Colour of tag
GET https://sandbox.crm.com/backoffice/v1/contacts/{id}/tags HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "JKGJHFSDJHGDSJHGA",
"name": "Maintenance",
"colour": "The colour of the tag"
}
]
}{id}/kyc_profile{id}/kyc_profile{id}/kyc_profileUpdate the contact’s KYC profile
Path variables
The contact identifier that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The id of the KYC to be provided to the contact
Responses
Successful Request
Body
The unique identifier of the contact
PUT https://stagingapi.crm.com/backoffice/v1/contacts/CAD1E31269B76D7A65ACCE45B2E68DFD/kyc HTTP/1.1
Content-Type: application/json
{
"kyc_id": "4AD9C84FA60F9FE407140E20F707726A"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726A"
}{id}/kyc_profileSet the KYC profile status of a Contact as Verified
Path variables
The contact identifier that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The contact identifier
POST https://stagingapi.crm.com/backoffice/v1/contacts/CAD1E31269B76D7A65ACCE45B2E68DFD/kyc/verify HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{id}/organisations{id}/organisationsContact joins an existing organisation
Path variables
The contact (registry) (identifier) that will sign up/out to/from an organisation
Notes
Contacts should belong to the service owner registry and via API integration a user can sign up/off such contacts to/from a business that utilise such service owner contact registry
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The action that should be applied on the organisation
The organisation identifier that the action will be applied
Defines whether the contact has accepted the client service (applicable only if action = SIGNUP)
The contact setting for receiving emails (applicable only if action = SIGNUP)
The contact setting for receiving sms (applicable only if action = SIGNUP)
The contact setting for consent (applicable only if action = SIGNUP)
Responses
The request has succeeded
POST https://sandbox.crm.com/backoffice/v1/contacts/0b2c2111-0294-59f1-8a39-92039444a2f6/organisations HTTP/1.1
Content-Type: application/json
{
"action": "SIGNUP",
"organisation_id": "db50a590-7de3-3b2d-33a6-91a25e83d3e6",
"service_acceptance": "true",
"email_opt_out": "false",
"sms_opt_out": "false",
"consent_state": "ACCEPTED",
"referral_code": "1234"
}
HTTP/1.1 200 OK POST https://sandbox.crm.com/backoffice/v1/contacts/0b2c2111-0294-59f1-8a39-92039444a2f6/organisations HTTP/1.1
Content-Type: application/json
{
"action": "SIGNOFF",
"organisation_id": "db50a590-7de3-3b2d-33a6-91a25e83d3e6"
}
HTTP/1.1 200 OK {id}/otp{id}/validate-otp{id}/otpRequest a one-time-password for a specific contact. The request sends an outbound validation number that can be used to verify the contact.
Path variables
The contact (identifier) that a one-time-password will be created for
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Send otp to contact’s email address
Send otp to contact’s primary phone number
Responses
Request Successfull
Body
The obfuscated value of the email or sms used to send the otp
The one time password auth id
POST https://sandbox.crm.com/backoffice/v1/contacts/33749faa-4ef0-426d-f9f0-83b91bf5ab3f/tokens HTTP/1.1
Content-Type: application/json
{
"intent": "SPEND",
"spend_amount": 14.52
}
HTTP/1.1 200 OK {id}/validate-otpVerifies an one time password that was sent to contact
Path variables
The contact (identifier) for which the one-time-password will be validated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
One Time Password Auth Id
The OTP that should be used for verification purposes
Responses
The request has succeeded
Body
The contact identifier
Changes the password for a contact’s identity
Request body
The token that will verify that the client is trusted (required only if the identity is EMAIL based)
The new password
Responses
The request has succeeded
POST https://stagingapi.crm.com/backoffice/v1/contacts/change_password HTTP/1.1
Content-Type: application/json
{
"token": "ABCTKN123456798VGP2020",
"password": "wsxcde421qadfg"
}
HTTP/1.1 200 OK Allow for management of payment methods for contacts.
{id}/payment_methods{id}/payment_methods/{payment_method_id}{id}/payment_methods/{payment_method_id}{id}/payment_methods{id}/payment_methodsAdd a new payment method for a contact. The payment method’s details will be passed over to a Payment Gateway Integrator
Path variables
The contact’s unique identifier
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the payment method
Only Account Debits are allowed to be added as payment methods in the back-end
If the new payment method is the first one for the contact, then it will be automatically set as the primary one. If another primary method exists, then this new payment method becomes the new primary.
If another backup method exists, then this new payment method becomes the new backup
The bank details.Required and applicable if the payment method is set to BANK
The bank account number.
The IBAN code.
The name of the customer’s bank
Institution number of the customer’s bank.
The identifier of the bank branch
The bank account swift number
The sort code
The mandate (sequence) type
The type of the event
The payment gateway’s integration identifier
The country the bank account is located in.
The card’s main information. Required and applicable if the payment method type is CARD
The card’s name
The card’s brand
The card’s first 6 digits
The card’s lat 4 digits
The card’s expiration month
The card’s expiration year
The card’s coutry of issue (3 code based)
Details about the cardholder owner
The name of the card holder
The address related to the card
Additional address information related to the card
The city related to the card
The zip code related to the card
The state related to the card
The country related to the card
Details about the gateway that a card related token was issued
Defines the gateway that issued such token
The gateway integration (identifier)
The card related token
Responses
Body
POST https://sandbox.crm.com/backoffice/v1/contacts/{id}/payment_methods HTTP/1.1
Content-Type: application/json
{
"name": "",
"type": "CARD",
"is_primary": true,
"is_backup": true,
"notes": "",
"account_debit": {
"account_name": "",
"account_number": "001002001",
"iban": "0143240434320434",
"bank": "Barclays",
"bank_code": "0032933-1123",
"branch": "Ascot",
"swift": "12345678",
"sort_code": "20-02-53",
"mandate": {
"reference": "",
"sign_date": 1
},
"account_type": "SAVINGS",
"integration_id": "",
"account_holder_details": {
"account_holder_name": "",
"address_line_1": "",
"address_line_2": "",
"address_state": "",
"address_city": "",
"address_zip": "",
"address_coutry": "",
"use_billing_address": true
},
"country": "CY",
"currency": "EUR"
},
"card": {
"name": "Default Card",
"brand": "VISA",
"first6": "424242",
"last4": "4242",
"expiration_month": 1,
"expiration_year": 2020,
"country_of_issue": "CYP",
"card_holder_details": {
"card_holder_name": "John Doe",
"address_line_1": "Elia Papakyriakou",
"address_line_2": "7 Tower Star",
"address_city": "Nicosia",
"address_zip": "2415",
"address_state": "Nicosia",
"address_country": "CYP"
},
"gateway_token": [
{
"gateway": "SETTLE",
"integration_id": "bce504a4-f712-5262-183c-f58218a7a0ed",
"token": "Xt5EWLLDS7FJjR1c"
}
]
}
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": ""
}
{id}/payment_methods/{payment_method_id}Update a payment method for a contact
Path variables
The contact identifier for which a payment method will be added
The payment method id that will be updated
Notes
JCC Merchant Gateway
- Perform Fingerprint to retrieve the card masked & hashed numbers and the country of issue
- Set the retrieved masked number, hashed number and country of issue on the related “card” collection
Settle Gateway
- Set the phone country code, phone number and msisdn (phone country + number) on the related “phone” collection
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Marks the payment method as the contact’s primary one
Marks the payment method as the backup
Notes related to te payment method
The bank details.Required and applicable if the payment method is set to BANK
The bank account number.
The IBAN code.
The name of the customer’s bank
Institution number of the customer’s bank.
The identifier of the bank branch
The bank account swift number
The sort code
The country the bank account is located in.
The mandate (sequence) type
The type of the event
Applicable only when updating a payment method of type Card
Responses
Body
The unique identifier of the updated payment method
PUT https://sandbox.crm.com/backoffice/v1/contacts/{id}/payment_methods/{payment_method_id} HTTP/1.1
Content-Type: application/json
{
"name": "",
"is_primary": true,
"is_backup": true,
"notes": "",
"account_debit": {
"account_name": "",
"account_number": "001002001",
"iban": "0143240434320434",
"bank": "Barclays",
"bank_code": "0032933-1123",
"branch": "Ascot",
"swift": "12345678",
"sort_code": "20-02-53",
"country": "CY",
"mandate": {
"reference": "",
"sign_date": 1
},
"currency": "EUR",
"account_type": "SAVINGS",
"account_holder_details": {
"account_holder_name": "",
"address_line_1": "",
"address_line_2": "",
"address_state": "",
"address_city": "",
"address_zip": "",
"address_coutry": "",
"use_billing_address": true
}
},
"card": {
"exp_month": "12",
"exp_year": "25"
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4dc0809f-ed91-4b68-b912-5bd6064d901e"
}
{id}/payment_methods/{payment_method_id}Deletes a payment method for a contact
Path variables
The id of the contact
The id of the payment method.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/contacts/JGKDJHAK76786JUGJHDG/payment_methods/SHDGJKSHDJKHS86876HGFHDGSFHSF HTTP/1.1 {id}/payment_methodsList of Payment methods allocated to contact
Path variables
The contact identifier whose payment methods will be retrieved
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Filters the contact’s payment methods based on type
Credit/Debit/Prepaid cards
Wallet related to either a card, bank account or has a monetary value
Collect money directly from an account
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The payment method identifier
Indicates which payment mehod is the contact’s primary one
Indicates which payment mehod is the contact’s backup one
The type of the event
Credit/Debit/Prepaid cards
Wallet related to either a card, bank account or has a monetary value
Collect money directly from an account
The card’s main information. Required and applicable if the payment method type is CARD
The card’s name
The card’s brand
The type of the event
The first 6 digits of the card. Either the card number or the first 6 and last 4 digits must be specified
The last 4 digits f the card. Either the card number or the first 6 and last 4 digits must be specified
The card expiration month
The card expiration year
The card issue country (3 char country code)
Information about the card holder
The name of the card holder
The address related to the card
Additional address information related to the card
The city related to the card
The zip code related to the card
The state related to the card
The country related to the card
The bank details.Required and applicable if the payment method is set to BANK
The bank account number.
The IBAN code.
The name of the customer’s bank
Institution number of the customer’s bank.
The identifier of the bank branch
The bank account swift number
The sort code
The country the bank account is located in.
The type of the event
The card’s main information. Required and applicable if the payment method type is CARD
The email used when registering to the walled-based payment method
The phone used when registering to the walled-based payment method
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/contacts/CAD1E31269B76D7A65ACCE45B2E68DFD/payment_methods HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "",
"is_primary": true,
"is_backup": true,
"payment_method_type": "CARD",
"card": {
"name": "Default Card",
"brand": "VISA",
"funding_type": "CREDIT",
"first6": "",
"last4": "",
"expiration_month": 1,
"expiration_year": 2020,
"country_of_issue": "CYP",
"cvc": "",
"card_holder_details": {
"card_holder_name": "John Doe",
"address_line_1": "Elia Papakyriakou",
"address_line_2": "7 Tower Star",
"address_city": "Nicosia",
"address_zip": "2415",
"address_state": "Nicosia",
"address_country": "CYP"
},
"gateway_token": [
{
"token": "",
"gateway": "SETTLE",
"integration": {
"id": "",
"name": ""
}
}
]
},
"account_debit": {
"account_name": "",
"account_number": "001002001",
"iban": "0143240434320434",
"bank": "Barclays",
"bank_code": "0032933-1123",
"branch": "Ascot",
"swift": "12345678",
"sort_code": "20-02-53",
"country": "CY",
"currency": "EUR",
"account_type": "SAVINGS",
"mandate": {
"reference": "",
"sign_date": 1,
"termination_date": 1,
"type": "ONEOFF"
},
"account_holder_details": {
"account_holder_name": "",
"address_line_1": "",
"address_line_2": "",
"address_city": "",
"address_state": "",
"address_zip": "",
"address_country": ""
},
"gateway_token": [
{
"token": "",
"gateway": "JCC_MERCHANT",
"integration": {
"id": "",
"name": ""
}
}
]
},
"wallet": {
"email": "jsmith@email.com",
"phone": {
"name": "",
"country_code": "",
"number": "",
"msisdn": ""
},
"gateway_token": [
{
"token": "",
"gateway": "SETTLE",
"integration": {
"id": "",
"name": ""
}
}
]
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/phones{id}/phones/{phone_id}{id}/phones/{phone_id}{id}/phonesAdd a new phone to an existing contact. A contact can have multiple phones
Path variables
The contact identifier that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Defines whether this phone will be the primary one or not
The phone number
The phone country code
Defines whether phone verification will be required or not
Responses
Successful Request
Body
The phone identifier
POST /contacts/CAD1E31269B76D7A65ACCE45B2E68DFD/phones HTTP/1.1
Content-Type: application/json
{
"is_primary": true,
"number": "",
"country_code": "GRC"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}{id}/phones/{phone_id}Update the phone of an existing contact
Path variables
The contact identifer that will be updated
The phone identifier that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Defines whether the phone is the primary one or not
The phone number
The phone country code
Defines whether the phone needs to be verified or not
Responses
Successful Request
Body
The phone identifier
{id}/phones/{phone_id}Removes a single contact phone.
Path variables
The contact identifier whose phone will be removed
The phone identifier that will be removed
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
DELETE /contacts/CAD1E31269B76D7A65ACCE45B2E68DFD/phones/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
HTTP/1.1 200 OK {id}/statement{id}/statement_details{id}/export_statement{id}/statementRetrieves the account balance information for a specific Contact based on the selected period, for the signed-in organisation. Used in conjunction with Get Account Statement Details to produce a Contact statement.
Path variables
The contact identifier to retrieve account and wallet balances for
Request parameters
Contact’s account id to retrieve balance information for, semi-optional with currency_code
Specify the 3-char account currency for which the statement will be produced, semi-optional with account_id. Default is the primary account’s currency
Starting statement period month
Ending statement period month
Starting statement period year
Ending statement period year
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
Account unique identifier
Account number
Account 3-char currency code
Statement period
Statement period months
Starting month
Ending month
Statement period year
Starting year
Ending year
Opening balances for account
Closing balances for account
Total credited amount to the account for the selected period
Total debited amount to the account for the selected period
GET https://sandbox.crm.com/backoffice/v1/contacts/76D7A65ACCE45B2E68DFDCAD1E31269B/statement?account_id=da60dd8f-b124-439d-a7fe-e1bdbd484c71¤cy_code=EUR&from_month=3&to_month=3&from_year=2022&to_year=2022 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "c8079ee1-8081-4be1-ab09-5091f55b2d4e",
"number": "A3900853",
"currency_code": "EUR",
"period": {
"month": {
"from": 3,
"to": 3
},
"year": {
"from": 2022,
"to": 2022
}
},
"opening_balance": 34.04,
"closing_balance": 31.65,
"total_credits": 8.99,
"total_debits": 2.72
}
GET https://sandbox.crm.com/backoffice/v1/contacts/76D7A65ACCE45B2E68DFDCAD1E31269B/statement?as_of_date=1635324343 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"type": "ACCOUNT",
"id": "c8079ee1-8081-4be1-ab09-5091f55b2d4e",
"number": "A3900853",
"is_primary": true,
"currency_code": "EUR",
"opening_balances": {
"balance": 34.94
}
},
{
"type": "WALLET",
"id": "c8079ee1-8081-4be1-ab09-5091f55b2d4e",
"number": "4349900943219923",
"currency_code": "EUR",
"opening_balances": {
"open": 10.05,
"commerce": 23.99,
"balance": 34.94
}
}
]
}
{id}/statement_detailsRetrieves all the statement detail lines for a single Contact account, for the given period, used in conjunction with Get Accounts Statement API to create a Contact statement
Path variables
The contact identifier for which to retrieve account journals for
Request parameters
Contact’s account id to retrieve detail lines for, semi-optional with currency_code
3-char account currency of the account, semi-optional with account_id
Starting statement period month
Ending statement period month
Starting statement period year
Ending statement period year
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
Statement detail lines
Account unique id
Transaction date
Type of financial transaction
Transaction amount
3-char currency code of transaction
Financial activity information
The reference number of the transaction if available (e.g. reference number of a payment or a transfer)
The activity entity unique id number (e.g. id of an invoice)
Transaction details
Current running balance of account
GET https://sandbox.crm.com/backoffice/v1/contacts/76D7A65ACCE45B2E68DFDCAD1E31269B/statement_details?account_id=da60dd8f-b124-439d-a7fe-e1bdbd484c71¤cy_code=EUR&from_month=3&to_month=3&from_year=2022&to_year=2022 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "d2ea1d75-0805-4d8c-b212-f31064ee3bff",
"number": "A3900853",
"date": "2343342445",
"type": "DEBIT",
"amount": 3.59,
"currency_code": "EUR",
"activity": {
"type": "ACHIEVEMENT_CANCELLATION",
"number": "90508992",
"id": "61c943c8-dfeb-4c09-a25c-b054f48bf244"
},
"details": "Sally's Flower Shop",
"running_balance": "12.84"
}
]
}
{id}/export_statementUse this API to export the contact statement in PDF or CSV format to the user’s email, or send to the contact’s email address
Path variables
The contact id to export statement for
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
Contact’s account id to export
3-char account/wallet currency
Statement period starting month
Statement period ending month
Statement period starting year
Statement period ending year
How the statement will be sent (in which format)
Sent to the Contact’s email address
Responses
The request has succeeded
POST https://sandbox.crm.com/backoffice/v1/contacts/da60dd8f-b124-439d-a7fe-e1bdbd484c71/export_statement HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"account_id": "da60dd8f-b124-439d-a7fe-e1bdbd484c71",
"currency_code": "EUR",
"from_month": 3,
"to_month": 3,
"from_year": 2022,
"to_year": 2022,
"format": "EMAIL"
}{id}/applications{id}/applications/{app_id}{id}/applicationsList of applications that are used by a specific contact
Path variables
The contact (identifier) whose applications usage will be retrieved
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The application usage identifier
The platform on which the application was downloaded
The date on which the first uage was recorded
Details about the application
The application identiier
The application name
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/contacts/CAD1E31269B76D7A65ACCE45B2E68DFD/applications HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"first_usage_date": 1598598647,
"platform": "IOS",
"application": {
"id": "af9c61d3-7685-e31f-3387-27c42858e868",
"name": "Best Coffee App"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/applications/{app_id}Remove an application from a contact
Path variables
The contact (identifier) whose application usage will be retrieved
The application (identifier) usage record identifier that will be removed
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
DELETE https://sandbox.crm.com/backoffice/v1/contacts/CAD1E31269B76D7A65ACCE45B2E68DFD/applications/57561166-6aa5-3ce5-2269-c38febe7e888 HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK {id}/identities{id}/identitiesRetrieve a list of contact identities based on search criteria (e.g. all contact identities)
Path variables
The contact (identifier) whose identities will be retrieved
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The contact identity identifier
The contact identity username
The contact identity type
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/contacts/5fa7ff61-a960-cfa3-2f93-68a67058489a/identities HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "09e4d464-3bae-1eab-1c7c-9166979300fd",
"username": "johndoe@crm.com",
"type": "EMAIL_PASSWORD"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}/cancel{id}{id}/rewardsCreate a new achievement customer event in posted life cycle state
Notes
Customer identification can be achieved by providing one of the following attributes
Request headers
The secret api key required for API calls to ensure that the client is trusted
Authorization Token
Request body
The achievement customer event identifier
The contact identifier that the achievement is created for
The value for a single contact identification medium representing the customer that the achievement is created for
The contact code that the achievement is created for
The achievement reference number
The date that the achievement was performed
The amount related with the achievement
The purchase classification
The customer event classification identifier
The customer event classification name
The transaction acquiring point that the event was submitted from (id or code must be specified). TAP and Organisation (id) attributes are semi-optional
The transaction acquiring point identifier
The transaction acquiring point code
The organisation that the achievement was submitted from. Merchant TAP and Organisation (id) are semi-optional
Responses
The request has succeeded
Body
The achievement identifier
POST https://sandbox.crm.com/backoffice/v1/achievements HTTP/1.1
Content-Type: application/json
{
"id": "CEEE83D6E0804A30966F684B0269AD91",
"contact_id": "79adca27-e50d-40d2-b025-e7d4710a1053",
"classification": {
"name": "Performance"
},
"organisation_id": "5eb64e17-154f-4e47-ab8b-14e56c0be3e8"
}{id}/cancelCancels an existing achievement customer event and as a result any related awards will be reversed
Path variables
The achievement (identifier) that will be cancelled
Request headers
The secret api key required for API calls to ensure that the client is trusted
Authorization Token
Responses
The request has succeeded
Body
The achievement identifier
POST https://sandbox.crm.com/backoffice/v1/achievements/4c01d5e4-02c9-ae89-4a3c-eaeb3174fcf0/cancel HTTP/1.1
api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}Search for achievement customer events
Request parameters
The contact (identifier) who performed the achievement
The contact code who performed the achievement
The achievement reference number
Filter achievement events for which the performed date falls within a given date range (e.g. performed_date.[gte]=1618395497&performed_date.[lt]=1618395497)
Filter achievement events for which the related amount falls within a given amount range (e.g. amount.[gte]=0.99&amount.[lt]=1.99)
The life cycle state of the achievement event
The classification related to the achievement customer event
The organisation that the achievement customer event was performed
The transaction acquiring point that captured the achievement event
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The achievement identifier
The achievement reference number
The date on which the achievement was performed
The export definition status
The amount related to the achievement
Details about the related contact
The contact identifier
The contact full name
The contact unique code
Details about the related contact’s account
The account identifier
The account name
The account unique number
Details about the event classification
The classification identifier
The classification name
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/achievements HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CEEE83D6E0804A30966F684B0269AD91",
"reference_number": "REF1234",
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Doe",
"code": "CO1234"
},
"account": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "ACR1234 John Doe",
"number": "ACR1234"
},
"life_cycle_state": "POSTED",
"classification": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Delivery"
},
"total_amount": 1,
"organisation": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "Bravo Coffee"
},
"performed_on": 1576486645
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Get details for a single achievement customer event
Path variables
The achievement (identifier) that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The achievement identifier
The achievement reference number
A unique code assigned to the achievement
The export definition status
The date on which the achievement was performed
The amount related with the achievement
Details about the related contact
The contact identifier
The contact full name
The contact unique code
Details about the related contact’s account
The account identifier
The account name
The account unique number
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
Details about the transaction acquiring point that captured such event
The transaction acquiring point identifier
The transaction acquiring point name
The transaction acquiring point code
Details about the event classification
The classification identifier
The classification name
Information (dynamic) about the award/spend amounts
The amount in real currency that was spent via the customer event
Information about the fees that were applied on achievement
The total fee amount (sum of all fee amounts)
The wallet fee that was applied on provided awards
Details about the customer event related top-up financial transaction
The top-up identifier
The top-up code
GET https://devapi.crm.com/backoffice/v1/purchases/CEEE83D6E0804A30966F684B0269AD91 HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CEEE83D6E0804A30966F684B0269AD91",
"reference_number": "REF001",
"life_cycle_state": "CANCELLED",
"reduction_method": "BACK_END",
"payment_medium_identifer": "424242",
"performed_on": 1576486645,
"total_net_amount": 1.59,
"total_tax_amount": 0.41,
"discount_amount": 0.5,
"total_amount": 1.5,
"requested_spend_amount": 1,
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Doe",
"code": "CO1234"
},
"account": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "ACR1234 John Doe",
"number": "ACR1234"
},
"organisation": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "Bravo Coffee"
},
"tap": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "ePOS",
"code": "TAP00012"
},
"rewards": {
"total_award_amount": 121.99,
"total_spend_amount": 12.22,
"total_automatic_spend_amount": 2.22,
"total_instant_discount_amount": 4.49,
"total_spend_request_amount": 4.51
},
"products": [
{
"product_sku": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"sku": "SKU00012",
"name": "Cappuccino",
"description": "Cappuccino Coffee"
}
"quantity": 1,
"net_amount": 1.08,
"tax_amount": 0.51,
"total_amount": 1.59
},
{
"product_family": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "Chocolates"
},
"quantity": 1,
"net_amount": 1.08,
"tax_amount": 0.51,
"total_amount": 1.59
}
]
}
{id}/rewardsGet reward details (awards/spends) for a specific achievement customer event
Path variables
The achievement (identifier) for which rewards details will be retrieved
Request parameters
Filter based on reward type
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
Details about the reward (award/spend) breakdown
The reward type
The reward offer that the promotion pass will consume.
The reward offer identifier
The reward offer name
The reward spend method
The award/spend amount
GET https://sandbox.crm.com/backoffice/v1/achievement/CEEE83D6E0804A30966F684B0269AD91/rewards HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"type": "AWARD",
"reward_offer": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "1% cashback on all products"
},
"spend_method": "INSTANT_DISCOUNT",
"amount": 9.99
}
]
}
{id}/cancel{id}{id}/rewards{id}Create a new purchase customer event in posted life cycle state
Notes
Customer identification can be achieved by providing one of the following attributes
- contact id - a unique contact identifier (usually GUID based)
- cim - a unique identification medium representing the customer (e.g. phone number, hashed card number)
- contact token - an OTP token as requested by a contact via CRM.COM applications
- contact code - a unique contact code (usually 8 or 16 characters long)
- contact (mask) card - a minimum set of card details (surname, exp date, last 4 digits), but still covered by PCI compliance
Product SKUs and Product Families will be created automatically if they are submitted in a purchase and do not exist in CRM.COM.
Integrating purchase estimates in a “submit purchase” flow that following APIs should be called
POST /estimates/purchasesPOST /purchasesby providing the estimates identifier as return from previous API call
Attribute “disable spends” from Purchase Estimates can be explicitly ovewritten by Submit Purchase.
Request headers
The secret api key required for API calls to ensure that the client is trusted
Authorization Token
Request body
The purchase customer event identifier
The purchase reference number
The purchase estimation (identifier) that can be used instead of specifying (again) all purchase attributes
The reduction method that was applied on the related spend
The date that the customer event was performed
Defines whether spend resolution should be disabled or not (if disable spend requests, including instant spends, will not be taken into consideration)
The unique identifier of the payment medium used in the purchase e.g. the first 8 digits of a credit card
The contact identifier that the purchase is created for
The value for a single contact identification medium representing the contact that the purchase is created for.
- This should be set to the pass code for purchases using gift passes
The contact code that the purchase is created for
The OTP token that will identify the contact
The card’s last 4 digits
The card’s expiration month
The card’s expiration year
Details about the card owner
The card’s owner surname
Information related with the spend request that should be created as part of the purchase
The amount to be spent by the specified spend request in system currency
Defines whether the purchase will be posted successfully only if requested spend amount is fully covered by the available wallet balance - applicable only for Front-End Reduction purchases and only when requested spend amount is specified
The purchased products. Applicable and required when net/tax/total amounts are not provided
The purchased product sku (product sku and product family are semi-optional)
The purchased product name
The purchased product family (product sku and product family are semi-optional)
The purchased product net amount
The purchased product vat amount
The purchased product total amount (net and vat amount)
The purchased quantity
The transaction acquiring point that the event was submitted from (id or code must be specified). TAP and Organisation (id) attributes are semi-optional
The transaction acquiring point identifier
The transaction acquiring point code
The transaction acquiring point that the event was submitted from (id or code must be specified). TAP and Organisation (id) attributes are semi-optional
The transaction acquiring point identifier
The transaction acquiring point code
The organisation that the purchase was submitted from. Merchant/Venue TAP and Organisation (id) are semi-optional
The discount of the purchase
The purchase net amount. Applicable when products (sku/family) are not provided
The purchase tax amount. Applicable when products (sku/family) are not provided
The purchase total amount (net + tax - discount). Applicable when products (sku/family) are not provided
The purchase classification
The customer event classification identifier
The customer event classification name
Details about the pass
Pass type
The pass code. For Promotion passes - a Promotion pass will be generated and redeemed as part of the process, the contact_id should also be provided
The pass assocaited pin (if applicable) should be set here for validation
- If validation is successful, the Purchase Event will be created and wallet funds will be consumed
- If validation is unsuccessful, the Purchase Event won’t be created and wallet funds won’t be consumed
The pass one time password (if applicable) - not implemented yet for passes
The transaction reference number that will be used for matching purchases (TP Match Mode)
Responses
The request has succeeded
Body
The purchase identifier
The purchase reference number (applicable only for Front-End Reduction)
The total award amount (applicable only for Front-End Reduction)
The sum of all spends (instant discount, auto spends, spends on request). Applicable only for Front End Reduction
The spend related to instant discount. Applicable only for Front End Reduction
The spend related to auto spend requests. Applicable only for Front End Reduction
The actual spent amount related to requested spend. Applicable only for Front End Reduction. If spend_request.amount has not been set - ‘null’ will be returned, if spend_request.amount has been set but no wallet funds can be consumed - 0.00 will be returned.
The wallet’s open balance amount that was spent. Applicable only for Front End Reduction
The wallet’s commerce balance amount that was spent. Applicable only for Front End Reduction
Create a (back-end reduction) purchase of classification Delivery with spend request and pass code redemption
POST https://sandbox.crm.com/backoffice/v1/purchases HTTP/1.1
api_key: adea79a6-fe7f-2e92-56c7-9a0685ffa290
Content-Type: application/json
{
"id": "b2fbaa45-af26-4dba-b866-546a26dee1f9",
"reference_number": "O00123",
"cim": "acd11adc-51cc-5d41-f1dd-f625a18b3ff3",
"reduction_method": "BACK_END",
"products": [
{
"product_sku": "10023401",
"product_name": "Soda",
"net_amount": 1.00,
"tax_amount": 0.02,
"total_amount": 1.02,
"quantity": 1
},
{
"product_sku": "20057809",
"product_name": "Caramel Donut",
"net_amount": 10.00,
"tax_amount": 0.19,
"total_amount": 10.19,
"quantity": 10
}
],
"classification": {
"name": "Delivery"
},
"spend_request": {
"amount": 1.21
},
"pass": {
"code": 1234
},
"outlet_tap": {
"code": "8239"
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "b2fbaa45-af26-4dba-b866-546a26dee1f9",
"reference_number": "RF123",
"total_award": null,
"total_spend": null,
"instant_discount": null,
"auto_spend": null,
"spend_on_request": null,
"total_open_spend": null,
"total_commerce_spend": null
}
Create a (front-end reduction) purchase of classification Delivery with spend request and pass code redemption
POST https://sandbox.crm.com/backoffice/v1/purchases HTTP/1.1
api_key: adea79a6-fe7f-2e92-56c7-9a0685ffa290
Content-Type: application/json
{
"id": "b2fbaa45-af26-4dba-b866-546a26dee1f9",
"reference_number": "O00123",
"contact_id": "acd11adc-51cc-5d41-f1dd-f625a18b3ff3",
"reduction_method": "FRONT_END",
"products": [
{
"product_sku": "10023401",
"product_name": "Soda",
"net_amount": 1.00,
"tax_amount": 0.02,
"total_amount": 1.02,
"quantity": 1
},
{
"product_sku": "20057809",
"product_name": "Caramel Donut",
"net_amount": 10.00,
"tax_amount": 0.19,
"total_amount": 10.19,
"quantity": 10
}
],
"classification": {
"name": "Delivery"
},
"spend_request": {
"amount": 1.21
},
"pass": {
"code": 1234
},
"outlet_tap": {
"code": "8239"
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "b2fbaa45-af26-4dba-b866-546a26dee1f9",
"reference_number": "RF123",
"total_award": 1.4,
"total_spend": 1.21,
"instant_discount": 0.21,
"auto_spend": null,
"spend_on_request": 1.00,
"total_open_spend": 1.12,
"total_commerce_spend": 0.09
}
Create a purchase based on a purchase estimates
POST https://sandbox.crm.com/backoffice/v1/purchases HTTP/1.1
api_key: adea79a6-fe7f-2e92-56c7-9a0685ffa290
Content-Type: application/json
{
"id": "b2fbaa45-af26-4dba-b866-546a26dee1f9",
"reference_number": "RF000001",
"estimation_id": "42c48837-7f19-6bfd-3789-7fd672c556c7",
"reduction_method": "FRONT_END"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "41dc3d8a-5ab2-3dc8-83d5-33501eb1949f",
"reference_number": "RF123",
"total_award": 1.4,
"total_spend": 2.21,
"instant_discount": 0.21,
"auto_spend": 1.51,
"spend_on_request": 0.49,
"total_open_spend": 1.12,
"total_commerce_spend": 0.09
}
Create a purchase against a contact (OTP) token
POST /purchases HTTP/1.1
api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
Content-Type: application/json
{
"id": "191e36d5-2afc-3715-1b7c-5e38528c48b3",
"contact_token": "123456",
"reduction_method": "FRONT_END",
"products": [
{
"product_sku": "FREDESPR001",
"product_name": "Freddo Espresso",
"net_amount": 4.15,
"tax_amount": 1.04,
"total_amount": 5.19,
"quantity": 2
},
{
"product_sku": "ICL0001",
"product_name": "Iced Caramel Latter",
"net_amount": 5.15,
"tax_amount": 1.04,
"total_amount": 6.19,
"quantity": 1
}
],
"discount_amount": 1.56,
"merchant_tap": {
"code": "EK123456"
},
"outlet_tap": {
"code": "CD123456"
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "191e36d5-2afc-3715-1b7c-5e38528c48b3",
"reference_number": "RF000001",
"total_award": 0.54,
"total_spend": 1.72,
"instant_discount": 0.21,
"auto_spend": 1.51,
"spend_on_request": 0.00
}
Create a purchase without a contact, and customer will reclaim it via scanning a QR/Barcode from mobile applications
POST https://sandbox.crm.com/backoffice/v1/purchases HTTP/1.1
api_key: adea79a6-fe7f-2e92-56c7-9a0685ffa290
Content-Type: application/json
{
"id": "b2fbaa45-af26-4dba-b866-546a26dee1f9",
"reference_number": "O00123",
"reduction_method": "BACK_END",
"products": [
{
"product_sku": "10023401",
"product_name": "Soda",
"net_amount": 1.00,
"tax_amount": 0.02,
"total_amount": 1.02,
"quantity": 1
},
{
"product_sku": "20057809",
"product_name": "Caramel Donut",
"net_amount": 10.00,
"tax_amount": 0.19,
"total_amount": 10.19,
"quantity": 10
}
],
"classification": {
"name": "Delivery"
},
"outlet_tap": {
"code": "8239"
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "b2fbaa45-af26-4dba-b866-546a26dee1f9",
"reference_number": "O00123",
"total_award": null,
"total_spend": null,
"total_open_spend": null,
"total_commerce_spend": null,
"instant_discount": null,
"auto_spend": null,
"spend_on_request": null
}
{id}/cancelCancel an existing customer’s purchase and as a result any related awards/spends will be reversed
Path variables
The purchase (identifier) that will be canceled
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The purchase identifier
POST https://sandbox.crm.com/backoffice/v1/purchases/ccca2889-301b-40ad-aed9-9c3a78e6e50b/cancel HTTP/1.1
api_key: adea79a6-fe7f-2e92-56c7-9a0685ffa290
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "ccca2889-301b-40ad-aed9-9c3a78e6e50b"
}Search for purchase customer events
Request parameters
The contact identifier who performed the purchase
The contact code who performed the purchase
The purchase’s reference number
The life cycle state of the customer event
The classification related to the purchase customer event
The organisation that the purchase customer event was performed
The transaction acquiring point that captured the customer event
Filters customer events that have greater or equal total amount as specified
Filters purchaes that have less or equal total amount as specified
Filter based on the total amount, which may fall within a given amount range. The value can be a string with an amount in numeric format. Each option must also include an operator. Use up to two options based on the required search (e.g. total_amount[gte]=12.99&total_amount[lt]=99.99).
Returns results where the total amount is greater than this value
Returns results where the total amount is greater than or equal to this value
Returns results where the total amount is less than this value
Returns results where the total amount is less then or equal to this value
The date from which the purchase was performed.If not specified, then the last 10 purchases will be returned
The date until which the purchase was performed
Filter based on the performed date, which may fall within a given date range. The value can be a string with a date in epoch format. Each option must also include an operator. Use up to two options based on the required search (e.g. performed_on[gte]=1618395497&performed_on[lt]=1618395497).
Returns results where the performed date is greater than this value
Returns results where the performed date is greater than or equal to this value
Returns results where the performed date is less than this value
Returns results where the performed date is less then or equal to this value
Filter purchases that an ad hoc return was applied on them
Filter purchase based on the applied ad hoc return reference number
Filter based on transaction reference number
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The purchase identifier
The purchase’s reference number
The reduction method that was applied on the related spend
The export definition status
The purchase’s total net amount of all products’ net amount
The purchase’s total tax amount of all products’ tax amount
The purchase’s discount amount
The purchase’s total amount
The date on which the purchase was performed
Details about the related contact
The contact identifier
The contact full name
The contact unique code
Details about the related contact’s account
The account identifier
The account name
The account unique number
Details about the event classification
The classification identifier
The classification name
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
The page number
The number of records per page
The overal number of records
GET https://stagingapi.crm.com/backoffice/v1/purchases HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJmYmNmZjFmNS0zNDE2LTRkZWMtYTk3NC05YjA4MjBhMWQxNmIiLCJmdWxsX25hbWUiOiJHaW9yZ29zIFNha2thcyIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJjdXJyZW50X29yZ2FuaXNhdGlvbl9pZCI6IjViZjNmOTkyLTE4ZGQtNGYzYi05ZTc0LTAyYWRkNGU1ZmJkNSIsInByaW1hcnlfb3JnYW5pc2F0aW9uX2lkIjoiNWJmM2Y5OTItMThkZC00ZjNiLTllNzQtMDJhZGQ0ZTVmYmQ1IiwiY3VycmVudF9vcmdhbmlzYXRpb25fbmFtZSI6IlN0YWdpbmciLCJpc3MiOiJodHRwczovL3d3dy5jcm0uY29tIiwiZ3JvdXBzIjpbIlZJRVdfT1JHQU5JU0FUSU9OUyIsIk1BTkFHRV9PUkdBTklTQVRJT05fR1JPVVBTIiwiTUFOQUdFX09SR0FOSVNBVElPTlMiLCJBTExPV19UT19NQVNRVUVSQURFIiwiTUFOQUdFX1VTRVJTIiwiVklFV19VU0VSUk9MRVMiLCJNQU5BR0VfVVNFUlJPTEVTIiwiTUFOQUdFX0FQSUtFWVMiLCJERUxFVEVfUk9MTF9BUElLRVlTIiwiU0VUX1VQX0lOVEVHUkFUSU9OUyIsIlZJRVdfQ09OVEFDVFMiLCJNQU5BR0VfQ09OVEFDVFMiLCJNQU5BR0VfQUNDT1VOVFMiLCJTRVRfVVBfQ09OVEFDVFMiLCJTRVRfVVBfRklOQU5DSUFMUyIsIlZJRVdfRklOQU5DSUFMX1RSQU5TQUNUSU9OUyIsIk1BTkFHRV9GSU5BTkNJQUxfVFJBTlNBQ1RJT05TIiwiU0VUX1VQX0NVU1RPTUVSX0VWRU5UUyIsIlZJRVdfQ1VTVE9NRVJfRVZFTlRTIiwiTUFOQUdFX0NVU1RPTUVSX0VWRU5UUyIsIk1BTkFHRV9XQUxMRVRTIiwiVklFV19XQUxMRVRfVFJBTlNBQ1RJT05TIiwiTUFOQUdFX1dBTExFVF9UUkFOU0FDVElPTlMiLCJTRVRfVVBfUFJPRFVDVFMiLCJWSUVXX1JFV0FSRF9TQ0hFTUVTIiwiTUFOQUdFX1JFV0FSRF9TQ0hFTUVTIiwiVklFV19SRVdBUkRfT0ZGRVJTIiwiTUFOQUdFX1JFV0FSRF9PRkZFUlMiLCJTRVRfVVBfUkVXQVJEUyIsIk1BTkFHRV9QTEFURk9STSJdLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJnX3Nha2thc0Bjcm0uY29tIiwicHJpbWFyeV9vcmdhbmlzYXRpb25fbmFtZSI6IlN0YWdpbmciLCJ0eXBlIjoiYWNjZXNzIiwiZW1haWwiOiJnX3Nha2thc0Bjcm0uY29tIiwiaWF0IjoxNTkxMTc5NjM1LCJhdXRoX3RpbWUiOjE1OTExNzk2MzUsImV4cCI6MTU5MTE4NjgzNSwianRpIjoiYjRlZDk1MmUtNTI4Ny00ZWVmLWE4N2YtN2FhYTIwYmI0OGM5In0.iydf6Yi-H6v9P44Jb8htXayfbsXQxtHMOKquVqChpDM3IrVBolLS6mZ3dPCu7aoMejRK_OgIrriABC54Eh2yX7bgOiClZYhAQbdu3BAnykhiywEgrULD3RXkwS90gtOq-Uu8lE8b9Bm1lBcOr3HRwzlS8pweSh7nGR93i7XzxOwgRmfHMa17IC9t3GNKxVjyanG8gPTpvJI9f1nMvAad-y-rG4T90DiVJQ_uDCKmCJ0eCwgH_v4jQvcRnufW9F_7wI8VbYiIzYMuQC8f0DGZFif57FKl6_HQIYOH22JB6M9bQrJoEGDKWLqjfDEVerLiyyQf05zYvLTHvI_P6Gcn-Q
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CEEE83D6E0804A30966F684B0269AD91",
"reference_number": "REF1234",
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Doe",
"code": "CO1234"
},
"account": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "ACR1234 John Doe",
"number": "ACR1234"
},
"life_cycle_state": "POSTED",
"reduction_method": "BACK_END",
"classification": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Delivery"
},
"total_net_amount": 1.51,
"total_tax_amount": 0.49,
"discount_amount": 1,
"total_amount": 1,
"organisation": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "Bravo Coffee"
},
"performed_on": 1576486645
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Get details for a single purchase customer event
Path variables
The purchase (identifier) that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The purchase identifier
The purchase reference number
A unique code assigned to the purchase
The export definition status
The reduction method that was applied on the related spend
The unique identifier of the payment medium used in the purchase e.g. the first 8 digits of a credit card
The date on which the purchase was performed
The purchase’s total net amount of all product lines’ net amount
The purchase’s total tax amount of all product lines’ tax amount
The purchase’s discount amount
The purchase’s total amount
The amount in real currency that was requested to be spend via the customer event
Details about the related contact
The contact identifier
The contact full name
The contact unique code
Details about the related contact’s account
The account identifier
The account name
The account unique number
Details about the event classification
The classification identifier
The classification name
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
Details about the transaction acquiring point that captured such event
The transaction acquiring point identifier
The transaction acquiring point name
The transaction acquiring point code
Information (dynamic) about the award/spend amounts
The amount in real currency that was spent via the customer event
The total amount (automatic + instant+ spend on request) in real currency that was spent via the customer event
The total amount in real currency that was spent automatically via the customer event
The total amount in real currency that was spent instantly via the customer event
The total amount in real currency that was actually spent on request via the customer event (may differ than the requested_spend_amount)
Details of ad hoc return of goods
The amount that the customer was debited due to ad hoc return of goods
The date that ad hoc retun of goods was applied
The ad hoc return reference number
The amount that was returned
Information about the purchase’s product line items
Information about the product sku
The product identifier
The product sku
The product name
The product description
Information about the product family
The product family identifier
The product family
The quantity of the line item
The net amount of the line item
The tax amount of the line item
The total amount (net + tax) of the line item
Details about the customer event pass
The pass identifier
The pass code
Details about the customer event related invoice
The invoice identifier
The invoice number
The invoice reference number
Details about the customer event related credit note
The credit note identifier
The credit note number
The credit note reference number
Information about the fees that were applied on purchase
The total fee amount (sum of all fee amounts)
The wallet fee that was applied on provided awards
The wallet fee that was applied on spends
The transaction reference number (TP Match Mode)
Defines whether spend resolution should be disabled or not (if disable spend requests, including instant spends, will not be taken into consideration)
GET https://devapi.crm.com/backoffice/v1/purchases/CEEE83D6E0804A30966F684B0269AD91 HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CEEE83D6E0804A30966F684B0269AD91",
"reference_number": "REF001",
"life_cycle_state": "CANCELLED",
"reduction_method": "BACK_END",
"payment_medium_identifer": "424242",
"performed_on": 1576486645,
"total_net_amount": 1.59,
"total_tax_amount": 0.41,
"discount_amount": 0.5,
"total_amount": 1.5,
"requested_spend_amount": 1,
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Doe",
"code": "CO1234"
},
"account": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "ACR1234 John Doe",
"number": "ACR1234"
},
"organisation": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "Bravo Coffee"
},
"tap": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "ePOS",
"code": "TAP00012"
},
"rewards": {
"total_award_amount": 121.99,
"total_spend_amount": 12.22,
"total_automatic_spend_amount": 2.22,
"total_instant_discount_amount": 4.49,
"total_spend_request_amount": 4.51
},
"products": [
{
"product_sku": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"sku": "SKU00012",
"name": "Cappuccino",
"description": "Cappuccino Coffee"
}
"quantity": 1,
"net_amount": 1.08,
"tax_amount": 0.51,
"total_amount": 1.59
},
{
"product_family": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "Chocolates"
},
"quantity": 1,
"net_amount": 1.08,
"tax_amount": 0.51,
"total_amount": 1.59
}
]
}
{id}/rewardsGet reward details (awards/spends) for a specific purchase customer event
Path variables
The purchase (identifier) for which rewards details will be retrieved
Request parameters
The reward type
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
Details about the reward (award/spend) breakdown
The reward type
The reward offer that the promotion pass will consume.
The reward offer identifier
The reward offer name
The reward spend method
The award/spend amount
The awarded product (free product)
The awarded product type
The awarded product identifier
The awarded product name
GET https://devapi.crm.com/backoffice/v1/purchases/CEEE83D6E0804A30966F684B0269AD91/rewards HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"type": "AWARD",
"reward_offer": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "1% cashback on all products"
},
"spend_method": "INSTANT_DISCOUNT",
"amount": 9.99
}
]
}
Performs an ad hoc return of goods for a speciifc customer
Notes
No purchase customer events will be cancelled
When an ad hoc return of goods transaction takes place, the customer wallet will be debited for an amount proportional based on the return amount, the identified purchase transaction amount and the award (on total transaction value) provided on that purchase.
debit amount = (return amount/purchase total amount)*award amount
Any spend amount on such purchase should be ignored, as the spend is an event that is triggered real-time and returning any spend amounts can be a complex process due to different spend conditions that apply on awards that the Customer has earned from previous purchases.
Request headers
The secret api key required for API calls to ensure that the client is trusted
Request body
The contact id that the customer event is created for (either contact_id or cim must be specified)
The value for a single contact identification medium representing the customer event is created for (either contact_id or cim must be specified)
The amount (real currency) of purchased goods that are returned
The transaction acquiring point that the event was submitted from (id or code must be specified). TAP and Organisation (id) attributes are semi-optional
The transaction acquiring point identifier
The transaction acquiring point code
The transaction acquiring point that the event was submitted from (id or code must be specified). TAP and Organisation (id) attributes are semi-optional
The transaction acquiring point identifier
The transaction acquiring point code
The ad hoc return reference number
The date that the ad hoc return is requested
Responses
The request has succeeded
Body
The purchase identifier that ad hoc return is performed against
Create return of goods using contact identifier
POST https://sandbox.crm.com/backoffice/v1/purchases/ad_hoc_return HTTP/1.1
api_key: adea79a6-fe7f-2e92-56c7-9a0685ffa290
Content-Type: application/json
{
"contact_id": "41dc3d8a-5ab2-3dc8-83d5-33501eb1949f",
"amount": 14.56,
"merchant_tap": {
"code": "EK123456"
},
"outlet_tap": {
"code": "CD123456"
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "ccca2889-301b-40ad-aed9-9c3a78e6e50b"
}Create return of goods using contact cim (e.g. hashed card number)
POST https://sandbox.crm.com/backoffice/v1/purchases/ad_hoc_return HTTP/1.1
api_key: adea79a6-fe7f-2e92-56c7-9a0685ffa290
Content-Type: application/json
{
"cim": "82707d78dd30dcc18d03393f79824aa6a719ef909f16a4b3cdc46e09e0688e07",
"amount": 14.56,
"merchant_tap": {
"code": "EK123456"
},
"outlet_tap": {
"code": "CD123456"
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "ccca2889-301b-40ad-aed9-9c3a78e6e50b"
}Create a new batch to submit a number of purchase events
Notes
Customer identification can be achieved by providing one of the following attributes
- contact id - a unique contact identifier (usually GUID based)
- cim - a unique identification medium representing the customer (e.g. phone number, hashed card number)
- contact token - an OTP token as requested by a contact via CRM.COM applications
- contact code - a unique contact code (usually 8 or 16 characters long)
- contact (mask) card - a minimum set of card details (surname, exp date, last 4 digits), but still covered by PCI compliance
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
The batch unique identifier
The batch name
A list of purchase events
The purchase customer event identifier
The contact identifier that the purchase is created for (customer identification can be made either using contact_id, contact_code, cim or contact_token)
The contact code that the purchase is created for (customer identification can be made either using contact_id, contact_code, cim or contact_token)
The value for a single contact identification medium representing the customer that the purchase is created for (customer identification can be made either using contact_id, contact_code, cim or contact_token)
The OTP token that will identify the contact (customer identification can be made either using contact_id, contact_code, cim or contact_token)
The card’s last 4 digits
The card’s expiration month
The card’s expiration year
Details about the card owner
The card’s owner surname
The purchase reference number
The unique identifier of the payment medium used in the purchase e.g. the first 8 digits of a credit card
The date that the customer event was performed
The reduction method that was applied on the related spend
The purchased products. Applicable and required when net/tax/total amounts are not provided
The purchased product sku (product sku and product family are semi-optional)
The purchased product name
The purchased product family (product sku and product family are semi-optional)
The purchased product net amount
The purchased product vat amount
The purchased product total amount (net and vat amount)
The purchased quantity
Information related with the spend request that should be created as part of the purchase
The amount to be spent by the specified spend request in system currency
Defines whether the purchase will be posted successfully only if requested spend amount is fully covered by the available wallet balance - applicable only for Front-End Reduction purchases and only when requested spend amount is specified
The transaction acquiring point that the event was submitted from (id or code must be specified). TAP and Organisation (id) attributes are semi-optional
The transaction acquiring point identifier
The transaction acquiring point code
The transaction acquiring point that the event was submitted from (id or code must be specified). TAP and Organisation (id) attributes are semi-optional
The transaction acquiring point identifier
The transaction acquiring point code
The organisation that the purchase was submitted from. Merchant/Venue TAP and Organisation (id) are semi-optional
The discount of the purchase
The purchase net amount. Applicable when products (sku/family) are not provided
The purchase tax amount. Applicable when products (sku/family) are not provided
The purchase total amount (net + tax - discount). Applicable when products (sku/family) are not provided
The purchase classification
The customer event classification identifier
The customer event classification name
Details about the pass
Pass type
The pass code. For Promotion passes - a Promotion pass will be generated and redeemed as part of the process, the contact_id should also be provided
The pass assocaited pin (if applicable) should be set here for validation
- If validation is successful, the Purchase Event will be created and wallet funds will be consumed
- If validation is unsuccessful, the Purchase Event won’t be created and wallet funds won’t be consumed
The pass one time password (if applicable) - not implemented yet for passes
Defines whether spend resolution should be disabled or not (if disable spend requests, including instant spends, will not be taken into consideration)
The transaction reference number that will be used for matching purchases (TP Match Mode)
Responses
The request has succeeded
Body
The batch identifier
POST https://sandbox.crm.com/backoffice/v1/purchases/batches HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"id": "65bd03bf-b33e-469d-a8cc-505654d3df49",
"name": "EOD Events",
"events": [
{
"id": "CEEE83D6E0804A30966F684B0269AD91",
"contact_id": "79adca27-e50d-40d2-b025-e7d4710a1053",
"cim": "4A30966F684B0269AD91",
"contact_token": "123456",
"reference_number": "RF000001",
"payment_medium_identifier": "42424242",
"performed_on": 1572423477,
"reduction_method": "FRONT_END",
"products": [
{
"product_sku": "FREDESPR001",
"product_name": "Freddo Espresso",
"product_family": "Chocolates",
"net_amount": 14.15,
"tax_amount": 1.04,
"total_amount": 15.19,
"quantity": 2
}
],
"spend_request": {
"amount": 2.12
},
"merchant_tap": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"code": "TAP001"
},
"outlet_tap": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"code": "TAP002"
},
"organisation_id": "5eb64e17-154f-4e47-ab8b-14e56c0be3e8",
"discount_amount": 14.56,
"net_amount": 121.1,
"tax_amount": 10.1,
"total_amount": 131.2,
"classification": {
"id": "c8d83493-3f50-40df-adb0-762ec5f41863",
"name": "Delivery Purchase"
},
"pass": {
"code": "1231231231231231",
"otp": "2345"
}
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "65bd03bf-b33e-469d-a8cc-505654d3df49"
}
Get a list of purchase batches and process status
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Responses
The request has succeeded
Body
The batch identifier
The batch name
The date on which the batch was performed
The number of items submitted
The number of events that were successfully processed
The number of events that were failed to be processed
The number of events that were processed
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/purchases/batches HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "65bd03bf-b33e-469d-a8cc-505654d3df49",
"name": "EOD File",
"start_date": 1606814571,
"event_count": 1,
"event_success": 1,
"event_failure": 1,
"processed": 1
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Retrieve details for a specific batch of purchase events
Path variables
The batch (identifier) that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The batch identifier
The batch name
The date on which the batch was performed
A list of all processed purchase events
The purchase event identifier
The purchase event reference number
The time that the purchase event was processed
The status of the processed purchase event
GET https://sandbox.crm.com/backoffice/v1/purchases/batches/65bd03bf-b33e-469d-a8cc-505654d3df49 HTTP/1.1
api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "65bd03bf-b33e-469d-a8cc-505654d3df49",
"name": "EOD Batch",
"start_date": 1606814160,
"events": [
{
"id": "65bd03bf-b33e-469d-a8cc-505654d3dfQQ",
"reference_number": "RF000001",
"processed_at": 1606814160,
"process_status": "PENDING"
}
]
}
{id}/cancel{id}{id}/cancelCancel an existing customer’s referral and as a result any related awards will be reversed
Path variables
The referral (identifier) that will be canceled
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The referral event identifier
POST /referrals/CEEE83D6E0804A30966F684B0269AD91/cancel HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CEEE83D6E0804A30966F684B0269AD91"
}Search for referral customer events
Request parameters
The referred contact identifier
The referred by contact identifier
The referral’s reference number
The date from which the referral was performed
The date until which the referral was performed
Filter based on the performed date, which may fall within a given date range. The value can be a string with a date in epoch format. Each option must also include an operator. Use up to two options based on the required search (e.g. performed_on[gte]=1618395497&performed_on[lt]=1618395497).
Returns results where the performed date is greater than this value
Returns results where the performed date is greater than or equal to this value
Returns results where the performed date is less than this value
Returns results where the performed date is less then or equal to this value
The life cycle state of the customer event
The organisation that the referral customer event was performed
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The referral identifier
The referral reference number
Details about the referred contact
The contact identifier
The contact full name
The contact code
Details about the referred contact’s account
The account identifier
The account name
The account number
The export definition status
Details about the event classification
The classification identifier
The classification name
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
The date on which the referral was performed
Details about the referred by contact
The contact identifier
The contact name
The contact code
Details about the referred by contact’s account
The account identifier
The account name
The account number
The page number
The number of records per page
The overal number of records
GET https://stagingapi.crm.com/backoffice/v1/referrals HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CEEE83D6E0804A30966F684B0269AD91",
"reference_number": "REF1234",
"referred_contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Doe",
"code": "CO1234"
},
"referred_account": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "ACR1234 John Doe",
"number": "ACR1234"
},
"life_cycle_state": "CANCELLED",
"classification": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Delivery"
},
"organisation": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "Bravo Coffee"
},
"performed_on": 1576486645,
"referred_by_contact": {
"id": "7db94d8b-4cbc-a7cc-9dc8-48ef68f9bf36",
"name": "Jane Doe",
"code": "JD987"
},
"referred_by_account": {
"id": "9a0eab8b-d592-3039-9705-be3708d4f8cf",
"name": "AR456 Jane Doe",
"number": "AR456"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Get details for a single referral customer event
Path variables
The referral event (identifier) that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The referral identifier
The referral reference number
The export definition status
The date on which the referral was made
Details about the related contact
The contact identifier
The contact full name
The contact unique code
Details about the related contact’s account
The account identifier
The account name
The account unique number
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
Information (dynamic) about the award/spend amounts
The amount in real currency that was spent via the customer event
Details about the event classification
The classification identifier
The classification name
Details about the related contact
The contact identifier
The contact full name
The contact unique code
Details about the related contact’s account
The account identifier
The account name
The account unique number
GET https://stagingapi.crm.com/backoffice/v1/referrals/CEEE83D6E0804A30966F684B0269AD91 HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CEEE83D6E0804A30966F684B0269AD91",
"reference_number": "REF001",
"life_cycle_state": "CANCELLED",
"performed_on": 1576486645,
"referred_contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Doe",
"code": "CO1234"
},
"referred_account": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "ACR1234 John Doe",
"number": "ACR1234"
},
"organisation": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "Bravo Coffee"
},
"rewards": {
"total_award_amount": 121.99
},
"classification": {
"id": "c8d83493-3f50-40df-adb0-762ec5f41863",
"name": "Delivery Purchase"
},
"referred_by_contact": {
"id": "b47cc2a3-6e00-b826-6bb5-48849e222e2a",
"name": "Jane Doe",
"code": "45679"
},
"referred_by_account": {
"id": "0a1c62c3-75cc-7b65-d7c8-9ce59f7ad6cc",
"name": "AR567 Jane Doe",
"number": "AR567"
}
}
{id}{id}{id}{id}/history{id}/ownershipCreate a new device. Only inventory items can be created.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The device’s serial number
The device electronic id details
The device’s product (identifier) - product must be of traceable physical good classification
The warehouse (identifier) at which the device will be located, required only when devices are imported to a warehouse
The contact (identifier) that owns such device, required only when a contact registers his/her own device
The spatial location of the device (when located in the warehouse)
The device characteristics (specified per product, product type or device)
The characteristic’s key which is uque across the set of configured characteristics
The actual value of the characteristic.
The custom field’s unique key
The custom field’s value
The device status
Responses
The request has succeeded
Body
The unique identifier of the new device
POST https://sandbox.crm.com/backoffice/v1/devices HTTP/1.1
Content-Type: application/json
{
"product_id": "f4b9dc04-b06f-1f57-bb9a-a845851b91e8",
"serial_number": "STB123456",
"electronic_id": "",
"contact_id": "81dd0800-be43-d43a-a727-77d6c7606036",
"warehouse_id": "d538824d-7efe-3f9d-5d11-701efca5fe40",
"spatial_location": "1C",
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E"
}
{id}Update a single device
Path variables
The device (identifier) to be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The device’ state
The spatial location of the device
The device characteristics (specified per product, product type or device)
The characteristic’s key which is uque across the set of configured characteristics
The actual value of the characteristic.
The custom field’s unique key
The custom field’s value
The device status
Responses
The request has succeeded
Body
The device identifer
PUT https://sandbox.crm.com/backoffice/v1/devices/0b8e03c1-01e4-9c44-533a-d55b9ab0821e HTTP/1.1
Content-Type: application/json
{
"state": "BLOCKED",
"spatial_location": "1D",
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "0b8e03c1-01e4-9c44-533a-d55b9ab0821e"
}{id}Delete a single device
Path variables
The device (identifier) to be removed
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Responses
The request has succeeded
DELETE https://sandbox.crm.com/backoffice/v1/devices/f42971d4-cfcb-963b-6213-7e2b8c82b30c HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
HTTP/1.1 200 OK Returns a list of devices
Request parameters
Search for devices using their serial number, mac address or electronic ID
Filter based on device’s state
Filter based on serial number
Filter based on electronic id
Filter based on mac address
Return devices of a subscription i.e they were added to a subscirption and might provision at least one service
Filter based on the contact that owns/bought/brought/rented such devices
Fitler based on the warehouse that the device is located in
Filter based on the organisation that owns such devices
Filter based on the integrator (e.g. provisioning provider) that provisions the device
If set to true, then list all warehouse devices that can be provded to contacts as rentals i.e such devices have a rental price in the product catalogue. It is important to note that only devices located in the business’s warehouse are returned
Filter based on device status
Defines whether Application details should be returned or not
Defines whether WiFi platform details should be returned or not
Defines whether subscription and enabled services should be returned or not
Defines whether custom fields should be retrieved or not (via List/Get APIs)
Filters based on custom fields (key/value set should be semicolon separated)
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
If set to True, then device characteristics are also returned
Defines whether only reserved devices will be retrieved or not
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The device identifier
The device’ state
The device’s serial number (Application/Inventory Devices)
Details about the application
The application identiier
The application name
The date from which the device is located at the contact’s premises (Inventory Devices)
The product identifier
The product SKU code
The product name
Details about the device’s ownership
The ownership type
The device owner identifier
The name of the device owner
Details about the enabled services for the device (Inventory Devices)
Details about the enabled services for the device
The enabled service identifier
The enabled service life cycle state
Details about a product
The product identifier
The product SKU code
The product name
The product measurement unit
The subscription identifier
The subscription code
Details about the integration
The integration identifier
The integration name
Details about the device WiFi platform status
The current WiFi status of the device
The last time that the device was WiFi authorized
The custom field’s unique key
The custom field’s value
Details about device eletronic id
The device characteristics (specified per product, product type or device)
The characteristic’s key which is uque across the set of configured characteristics
The actual value of the characteristic.
The characteristic’s label
The device status
The device status identifier
The device status name
Defines whether the device is reserved or not
The warehouse at which the device is located. Onyl available when the device is located at the business’s warehouse
Warrhsoue identifier
Warehouse name
The business entity from which the device is reserved
The business entity from which the device is reserved for
The business entity identifier that such device is reserved by
The business entity number that such device is reserved by
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/devices HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "f9ce56ed-f1ce-a8f1-f9e8-e1db5fb2cb33",
"state": "BLOCKED",
"serial_number": "STB123456",
"application": {
"id": "af9c61d3-7685-e31f-3387-27c42858e868",
"name": "Best Coffee App"
},
"provided_on": 1642770980,
"product": {
"id": "e283a863-18e1-7cae-48c4-7433bf28cf97",
"sku": "ABC-12345",
"name": "ABC"
},
"owned_by": {
"type": "RETAILER",
"id": "5f67324c-1076-618b-8d29-012efde9485e",
"name": "CRM"
},
"enabled_services": [
{
"id": "",
"life_cycle_state": "",
"product": {
"id": "a0f79973-d4b3-db89-4276-cb4abcccd842",
"sku": "STB",
"name": "Set-top-box",
"characteristics": [
{
"key": "",
"value": "",
"label": ""
}
]
}
}
],
"subscription": {
"id": "5535e087-3e27-d2c8-249f-54fe0c1307a4",
"code": "SUB001"
},
"provisioning": {
"id": "81ed6bcd-39ec-214c-5124-9e5ac6cb5dc4",
"name": "UniFi"
},
"wifi": {
"status": "OFFLINE",
"last_auth_date": "1642767506"
},
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
],
"electronic_id": "",
"characteristics": [
{
"key": "static_ip",
"value": "10.10.01.10",
"label": "Static IP"
}
],
"status": {
"id": "f39fb666-0856-f132-8abb-946f2c7ea2e9",
"name": "new status"
},
"is_reserved": "true",
"warehouse": {
"id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"name": "Main"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Retrieves a specific device
Path variables
The device (identifier) to be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The device identifier
The device’ state
The device serial number
The device electronic id
The device’s MAC address
The device’s operation platform (Application Devices)
The device’s registration token for push notifications
The date that such device was registered by the contact
Details about the application
The application identiier
The application name
Details about the device WiFi platform status
The current WiFi status of the device
The last time that the device was WiFi authorized
The device’s spatial location when located in a warehouse
The product identifier
The product SKU code
The product name
Details about the device’s ownership
The ownership type
The device owner identifier
The name of the device owner
The order from which the device was sold to the contact
The order identifier
The order number
Details about the services that the device is enabled to
Details about the enabled services for the device
The enabled service identifier
The enabled service life cycle state
Details about a product
The product identifier
The product SKU code
The product name
The product measurement unit
The subscription identifier
The subscription code
Details about the integration
The integration identifier
The integration name
The device characteristics (specified per product, product type or device)
The characteristic’s key which is uque across the set of configured characteristics
The actual value of the characteristic.
The characteristic’s label
The custom field’s unique key
The custom field’s value
The device status
The device status identifier
The device status name
Defines whether the device is reserved or not
The business entity from which the device is reserved
The business entity from which the device is reserved for
The business entity identifier that such device is reserved by
The business entity number that such device is reserved by
GET https://sandbox.crm.com/backoffice/v1/devices/c39c6c23-319f-ef74-37cd-9b7878992fc1 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "c39c6c23-319f-ef74-37cd-9b7878992fc1",
"state": "RENTED",
"mac_address": "00:00:5e:00:53:af",
"platform": "IOS",
"registration_token": "4e11bef819b8ae9af08d",
"registration_date": 1642758418,
"application": {
"id": "af9c61d3-7685-e31f-3387-27c42858e868",
"name": "Best Coffee App"
},
"wifi": {
"status": "OFFLINE",
"last_auth_date": "1642767506"
},
"serial_number": "2049-3630",
"spatial_location": "1C",
"product": {
"id": "e283a863-18e1-7cae-48c4-7433bf28cf97",
"sku": "ABC-12345",
"name": "ABC"
},
"warehouse": {
"id": "4248fab3-67d5-2eb1-eaf6-079ce18cd2ed",
"name": "Nicosia headquarters"
},
"ownership": {
"type": "CONTACT",
"id": "5f67324c-1076-618b-8d29-012efde9485e",
"name": "CRM"
},
"order": {
"id": "",
"number": ""
},
"enabled_services": [
{
"id": "",
"life_cycle_state": "",
"product": {
"id": "a0f79973-d4b3-db89-4276-cb4abcccd842",
"sku": "STB",
"name": "Set-top-box",
"measurement_unit": "MB"
}
}
],
"subscription": {
"id": "5535e087-3e27-d2c8-249f-54fe0c1307a4",
"code": "SUB001"
},
"provisioning": {
"id": "81ed6bcd-39ec-214c-5124-9e5ac6cb5dc4",
"name": "UniFi"
},
"custom_fields": [
{
"id": "f68fad29-4a1b-3a1e-5cfa-6540a5b1609a",
"key": "back_office",
"label": "Back Office",
"description": "The account's back office code",
"tooltip": "",
"visible": true,
"field": "AMOUNTS",
"entity": "ORDERS"
}
],
"electronic_id": ""
}
{id}/historyRetrieves the history of a specific device
Path variables
The device (identifier) of which history will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The historical action identifier
The action that was performed
The date on which such action was performed
Details about the user/contact that performed such action
Defines who made such action
The performer identifier
The performer full name
The performer username (user related)
Details about the owner of a device (history)
Defines the historical entity type
Defines the historical entity identifier
Defines the historical entity value
Details about the owner of a device (history)
Defines the historical entity type
Defines the historical entity identifier
Defines the historical entity value
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/devices/3ef38763-2d6b-fb41-5c22-79989fa90bae/history HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"action": "RETURN",
"performed_on": 1618861892,
"performed_by": {
"type": "USER",
"id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"name": "Jane Smith",
"username": "janesmith@crm.com"
},
"origin": {
"type": "WAREHOUSE",
"id": "07d737e8-d20c-08c5-7a2a-6c7f247b13a5",
"value": "JS01"
},
"destination": {
"type": "ORGANISATION",
"id": "07d737e8-d20c-08c5-7a2a-6c7f247b13a5",
"value": "JS01"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/ownershipTransfer the ownership of a device
Path variables
The device (identifier) to be transferred
Notes
Ownership transfer can be between an organisation to a contact, or between two contacts
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The entity that will transfer the ownership of the device
Defines the entity (identifier) that such device’s ownership will be transferred from
Defines the entity (identifier) that such device’s ownership will be transferred to, usually the destination is a Contact
Responses
The request has succeeded
Body
The device identifier
POST https://stagingapi.crm.com/backoffice/v1/devices/6A24D2B5E44F44B28451FE021FCAD51E/ownership_transfer HTTP/1.1
Content-Type: application/json
{
"origin_entity": "CONTACT",
"origin_id": "d63d52b5-b158-0739-fafb-97c4b17392fc",
"destination_id": "57eb760c-89da-fe56-f486-b6fd087af3a4"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E"
}Returns an estimation on whether a contact is allowed to consume usage allowance and if yes, the remaining one.
Request parameters
Set to True if the remaining usage allowance should also be included in the response. When set to False, the Web API just informs whether usage consumption is authorised or not.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The contact consuming usage
The account authorised to consume usage
The usage product identifier
The identifier of the service through which usage is consumed. If not specified, then the response will include all termed and one-time services that allow the specified contact to consume usage. In the latter case, one-time services which are expired or fully consumed are not returned. For termed services, only non-cancelled ones are returned
The unique identifier of the service
The organisation at which usage is consumed
The consumed usage’s charged amount.
The charged amount’s currency.
The consumed usage’s amount/volume
Responses
Body
Usage authorisation’s uniue identifier
Authorised usage among all of the contact’s services. In other words, the remaining usage that the contact is still allowed to consume
Remaining usage amount among all services that allow consumption
The usage service that is authorised for consumption
Lis of services that provide usage authorisation
subscirption service identifier
The service product which is either a termed or a one-time service
List of services that allow consumption of the requested usage service. By default is not returned unless specified in the request
Returned as True if usage can be consumed, i.e. termed/one-time service has remaining allowance. If no usage allowance limits are set, then usage is always authorised.
The currency code reated to usage cash amount limits
The one-time/termed service through which usage is consumed
Unique identifier fo the termed/one-time service
Determines if the ervice is a Termed or one-time service
The service’s product
Product identifier
Product SKU
Product name
Accumulated usage allowance in cash amounts
POST https://sandbox.crm.com/backoffice/v1/estimates/allowance HTTP/1.1
Content-Type: application/json
{
"contact_id": "",
"account_id": "",
"product_id": "",
"service": {
"id": "",
"classification": "TERMED_SERVICE"
},
"organisation_id": "",
"cash_amount": 1,
"currency_code": "",
"usage_amount": 1
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"estimation_id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"authorised_usage": [
{
"amount": "2.45",
"product": {
"id": "",
"sku": "",
"name": ""
},
"measurement_unit": {
"id": "",
"name": "Gigabytes",
"display_name": "GB"
},
"services": [
{
"id": "",
"classification": "ONE_TIME_SERVICE",
"product": {
"id": "",
"sku": "",
"name": ""
}
}
]
}
],
"services": [
{
"authorise_consumption": true,
"currency_code": "EUR",
"service": {
"id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"classification": "ONE_TIME_SERVICE",
"product": {
"id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"sku": "DAY5BG",
"name": "Daily 5GB NOW"
}
},
"accumulated_allowance": {
"cash_amounts": {
"per_transaction": 9.99,
"per_day": 19.99,
"per_billing_cycle": 59.99
}
},
"products_allowance": [
{
"item_type": "PRODUCT",
"item_id": "",
"name": "",
"remaining_cash": {
"per_transaction": 9.99,
"per_day": 19.99,
"per_billing_cycle": 59.99
},
"remaining_usage": {
"per_transaction": 9.99,
"per_day": 19.99,
"per_billing_cycle": 59.99
},
"measurement_unit": {
"id": "",
"name": "",
"display_name": ""
}
}
]
}
]
}
Returns an estimation of a customer’s upcoming billing
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Responses
Body
Sum of all products’ prices as these are defined in the product catalog
Total amount of the invoice that will be generated. Includes taxed and disoucnt amounts
The amount that will be due at the time of the estimation
Amount that the customer needs to pay at the time of the estimation
Available account funds that can be used to pay off the Invoice. Available when the account is in credit and/or the account has a credit limit. Account funds are calculated as the account’s credit limit minus the amount in credit. for example credit limit is 100 and account credit is 50, then account fund sis returned as 150
The price of the product as this is configured in the product catalog (including tax or not depending on the tax model)
Termed service’s debited/credited period
The date from which the service is invoiced/credited
The date until which the service is invoiced/credited
Details about the product
The product identifier
The product SKU
The product name
Details about the applied discount
Details about the applied taxes
Defines the main product that the line item is component to it (applicable only when the line item is invoiced as a component of another product)
The product identifier
The product sku
The product name
POST https://sandbox.crm.com/backoffice/v1/estimates/billing HTTP/1.1
Content-Type: application/json
{
"contact_id": "",
"organisation_id": "",
"account_id": "",
"as_of_date": 1234567,
"upcoming_billing_cycles": 3
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"billing_estimate": [
{
"billing_date": 12345678,
"billed_period": {
"from_date": 12345678,
"to_date": 12345678
},
"account": {
"id": "",
"number": "",
"name": ""
},
"totals": {
"total_amount": 9.99,
"tax_amount": 1.99,
"net_amount": 1.99,
"discount_amount": 1.99
},
"invoicing": [
{
"issued_date": 123456789,
"due_date": 123456789,
"currency_code": "EUR",
"is_credit": true,
"wallet_funds_amount": 5.99,
"total_net_amount": 1,
"total_discount_amount": 1,
"total_discount_incl_tax": 1,
"total_tax_amount": 0.99,
"total_price": 1,
"total_amount": 9.99,
"amount_due": "",
"amount_to_collect": 1,
"taxes_breakdown": [
{
"tax_amount": 0.99,
"tax_rate": {
"id": "",
"name": "",
"tax_code": "VAT",
"percentage": 1
}
}
],
"line_items": [
{
"quantity": 1,
"unit_price": 9.99,
"net_amount": 9.99,
"discount_amount": 1,
"sub_total": 9.99,
"pricing": 11.99,
"product": {
"id": "ba603bdc-f18f-1d4e-dd07-ad6b57c6e565",
"sku": "DEC1234",
"name": "Decoder",
"classification": "TRACEABLE_PHYSICAL_GOOD"
},
"discount": {
"discount_amount": 0.96,
"discount_percentage": 1.5,
"discount_incl_tax": 0.98
},
"applied_taxes": [
{
"tax_amount": 0.99,
"tax_exempt_reason": "CONTACT",
"tax_rate": {
"id": "",
"name": "",
"tax_code": "VAT",
"percentage": 1
}
}
],
"bundle_product": {
"id": "31f2e99d-a5cb-21c1-2866-1a1491989893",
"sku": "ICL-001",
"name": "Iced Latte",
"classification": "TRACEABLE_PHYSICAL_GOOD"
}
}
]
}
]
}
]
}
Estimates how a product will be charged in invoices, quotations, billing without generating any invoices etc. Pricing estimation includes the price, all applicable promotions as well as the taxes to be applied.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The contact’s unique identifier.
The account’s unique identifier
The unique idetifier of the organisation from which the customer purchases prducts
The unique identifier of a product
The unit price of the product. If specified, then the pricing strategy is not applied.
Required if a discount value is specified.
Required if a price is specified as input
Applicable for termed and one-time services
Responses
The request has succeeded
Body
Sum of all products’ prices as these are defined in the product catalog
Total amount of the invoice that will be generated. Includes taxed and disoucnt amounts
The amount that will be due at the time of the estimation
Amount that the customer needs to pay at the time of the estimation
Available account funds that can be used to pay off the Invoice. Available when the account is in credit and/or the account has a credit limit. Account funds are calculated as the account’s credit limit minus the amount in credit. for example credit limit is 100 and account credit is 50, then account fund sis returned as 150
The price of the product as this is configured in the product catalog (including tax or not depending on the tax model)
Termed service’s debited/credited period
The date from which the service is invoiced/credited
The date until which the service is invoiced/credited
Details about the product
The product identifier
The product SKU
The product name
Details about the applied discount
Details about the applied taxes
Defines the main product that the line item is component to it (applicable only when the line item is invoiced as a component of another product)
The product identifier
The product sku
The product name
POST https://sandbox.crm.com/backoffice/v1/estimates/invoicing HTTP/1.1
Content-Type: application/json
{
"contact_id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"account_id": "24c0809f-ed91-4b68-b912-5bd6064d901e",
"supply_method": "DELIVERY",
"fulfilled_by": "",
"line_items": [
{
"product_id": "",
"bundle_product_id": "",
"quantity": 1,
"price": 9.99,
"discount_option": "AMOUNT",
"discount_value": 1.11,
"tax_model": "TAX_EXCLUSIVE",
"price_term_id": ""
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"issued_date": 123456789,
"due_date": 123456789,
"currency_code": "EUR",
"is_credit": true,
"wallet_funds": 5.99,
"total_net_amount": 1,
"total_discount_amount": 1,
"total_discount_incl_tax": 1,
"total_tax_amount": 0.99,
"total_amount": 9.99,
"taxes_breakdown": [
{
"tax_amount": 0.99,
"tax_rate": {
"id": "",
"name": "",
"tax_code": "VAT",
"percentage": 1
}
}
],
"line_items": [
{
"id": "7CD9C84FA60F9FE407140E20F707726A",
"sku": "",
"name": "",
"tax_model": "TAX_INCLUSIVE",
"pricing_model": "TIERED",
"currency": "EUR",
"quantity": 1,
"unit_price": 9.99,
"price_incl_tax": 11.99,
"net_amount": 9.99,
"discount": {
"discount_amount": 0.96,
"discount_percentage": 1.5,
"discount_incl_tax": 0.98
},
"tax_amount": 0.99,
"sub_total": 9.99,
"classification": "",
"applied_taxes": [
{
"tax_amount": 0.99,
"tax_exempt_reason": "CONTACT",
"tax_rate": {
"id": "",
"name": "",
"tax_code": "VAT",
"percentage": 1
}
}
]
}
]
}
Preview order fulfillment information
Notes
The following APIs should be called in order to make an order
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Preview order based on the supply method
Preview order only for open venues
Preview order based on the postal code
Preview order based on the geo-location (lat/long)
Preview order based on the customer address
Preview order based on a specific organisation as requested by the customer
Preview order based on the date and time at which the customer requests the ordered items to be delivered/picked-uo (Applicable only for ordering ahead/scheduling an order)
The order ahead time
The order ahead time unit
The order ahead date
The id of the queue selected
Responses
The request has succeeded
Body
Details about the organisation (business/merchant/venues) that will fulfill the order
The organisation identifier
The organisation name
The organisation phone number
The organisation address
The address line 1
The address line 2
The address state/province/county
The address town/city
The address postal code
The latitude of the location
The longitude of the location
The Google textual identifier that uniquely identifies a location
Details about the parent organisation (business/merchant) of the fulfilled by. Not applicable if the fulfilled by organisation is of type business or merchant
The organisation identifier
The organisation name
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
Details about the organisation’s working hours
The day of the week that the organisation is open
The time that the organisation opens
The time that the organisation closes
The opening hours for each organisation’s operation type
Details about the organisation’s availability to offer its services
The organisation’s operation type
Defines whether the organisation is temporary closed for offering its services
The payment methods allowed when ordering from the organisation that fulfills the order
[
"CASH","CARD"
]The type of the event
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
POST https://sandbox.crm.com/backoffice/v1/estimates/order_fulfillment HTTP/1.1
Content-Type: application/json
{
"supply_method": "DIRECT_SALE",
"is_open": true,
"postal_code": "2415",
"lat_lot": "35.157204,33.314151",
"address_id": "28441e3e-767a-b6cc-9a59-6d7705de6428",
"requested_organisation_id": "4456e728-019c-86e4-3e4f-bb7920e2ef75",
"requested_delivery_at": {
"time": 30,
"time_unit": "MINUTES",
"date": 12312323123
},
"queue_id": "532652ff-10b2-1f88-914a-df316249ccf0"
}
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"fulfilled_by": {
"id": "3FD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Best Burger Egkomi",
"phone": "+6934222321",
"address": {
"address_line_1": "Ilia Papakyriakou 21",
"address_line_2": "7 Stars Tower",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2415",
"lat": "35.157115",
"lon": "33.313719",
"google_place_id": "ChIJrTLr-GyuEmsRBfy61i59si0"
},
"parent_organisation": {
"id": "b1607c37-e750-2324-ac49-6591a86f54b8",
"name": "Best Burger",
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"usage_type": "LOGO",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/logo.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/logo.jpg"
}
]
}
]
},
"opening_hours": [
{
"day_of_week": "MONDAY",
"opens": "09:00",
"closes": "20:00",
"operation": "ANY"
}
],
"short_term_operations": [
{
"operation": "PICK_UP",
"is_closed": "false"
}
],
"payment_method_types": [
"CRM_WALLET"
],
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"usage_type": "WALLET_IMAGE",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/logo.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/logo.jpg"
}
]
}
]
}
}
]
Preview order information before making an order including fulfillment and invoice estimations
Notes
The following APIs should be called in order to make an order
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The type of the event
Delivered to the customer’s address
Picked up by the customer from a venue
Online sales of services
Appicable and required when the supply method is Delivery
The queue id retrieval for milestone invoice payment plan
The type of the event
Applicable and required for termed and one-time services. Also applicable for tracceable physical goods which are ordered as Rentals.
Applicable only when ordering a service bundle
These milestones will default to the milestones based on the queue type selected - unless they are edited by the user.
This will be either be the value entered by the user or the value based on the queue configuration.
Ad-hoc discount applied including tax
Redeemed Promotion pass for a subscription service
Pass code
Pass associated OTP (roadmapped)
Responses
The request has succeeded
Body
Estimation ID. to be used for placing the order. valid for!!!
Indicates whether minimum order amount is met and order can proceed with submission.
Defines the minimum order amount as specified in the fulfillment policy of the organisation fulfilling the order.
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
Sum of all products’ prices as these are defined in the product catalog
Total amount of the invoice that will be generated. Includes taxed and disoucnt amounts
The amount that will be due at the time of the estimation
Amount that the customer needs to pay at the time of the estimation
Available account funds that can be used to pay off the Invoice. Available when the account is in credit and/or the account has a credit limit. Account funds are calculated as the account’s credit limit minus the amount in credit. for example credit limit is 100 and account credit is 50, then account fund sis returned as 150
The price of the product as this is configured in the product catalog (including tax or not depending on the tax model)
Termed service’s debited/credited period
The date from which the service is invoiced/credited
The date until which the service is invoiced/credited
Details about the product
The product identifier
The product SKU
The product name
Details about the applied discount
Details about the applied taxes
Defines the main product that the line item is component to it (applicable only when the line item is invoiced as a component of another product)
The product identifier
The product sku
The product name
Applicable only when purchasing termed services and/or renting devices
Sum of all products’ prices as these are defined in the product catalog
Total amount of the invoice that will be generated. Includes taxed and disoucnt amounts
The amount that will be due at the time of the estimation
Amount that the customer needs to pay at the time of the estimation
Available account funds that can be used to pay off the Invoice. Available when the account is in credit and/or the account has a credit limit. Account funds are calculated as the account’s credit limit minus the amount in credit. for example credit limit is 100 and account credit is 50, then account fund sis returned as 150
The price of the product as this is configured in the product catalog (including tax or not depending on the tax model)
Termed service’s debited/credited period
The date from which the service is invoiced/credited
The date until which the service is invoiced/credited
Details about the product
The product identifier
The product SKU
The product name
Details about the applied discount
Details about the applied taxes
Defines the main product that the line item is component to it (applicable only when the line item is invoiced as a component of another product)
The product identifier
The product sku
The product name
Custom percetage
calculated amount based on order quotation amount x by the percentage. If percentage = null then this amount = order quotation amount x queue percentage.
List of ordered items which were included in the order but cannot be delivered to the consumer at the time of estimation. Invalid ordered products are excluded from the orders cost estimation.
Details on why the product is considered as invalid and cannot be included in the Order
The prodcut’s validity period has expired, i.e. the business is no longer selling this product
The product is temporarily un-available for sale at/by the requested organisation e.g. is out of stock
The product is not included in an valid/effective Order Catalogue.
Product included in the request’s ordered items
Product identifier
Product SKU
Product name
POST https://sandbox.crm.com/backoffice/v1/estimates/orders HTTP/1.1
Content-Type: application/json
{
"account_id": "1bd3e4d3-5981-209b-787d-352dcd5389a3",
"supply_method": "DELIVERY",
"fulfilled_by": "271671a0-4bb3-9c2e-a9c7-6490dbfe5939",
"requested_delivery_at": {
"time": 30,
"time_unit": "MINUTES",
"date": 12312323123
},
"address_id": "84bfd840-b520-5bde-8f0a-b36937a2fce7",
"notes": "",
"queue_id": "271671a0-4bb3-9c2e-a9c7-6490dbfe5939",
"use_wallet_funds": "false",
"payment_method_type": "WALLET",
"line_items": [
{
"id": "7f45ad8a-b164-2a67-eb93-8651c0f1b101",
"quantity": 1,
"price": 2.99,
"tax_model": "TAX_INCLUSIVE",
"notes": "",
"price_terms_id": "905a4a5d-80d4-1e18-4595-d03c2b9546e1",
"components": [
{
"id": "6e111025-002b-48d7-a675-6d9e48070b8f",
"quantity": 1,
"price": 0.5,
"tax_model": "TAX_INCLUSIVE",
"price_terms_id": ""
}
]
}
],
"milestones": [
{
"status_id": "271671a0-4bb3-9c2e-a9c7-6490dbfe5939",
"percentage": 1
}
],
"discount": {
"amount": 1,
"type": "PERCENTAGE"
},
"pass": {
"code": "TB68937255",
"otp": ""
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "905a4a5d-80d4-1e18-4595-d03c2b9546e1",
"order_estimate": {
"ordering_allowed": "true",
"minimum_amount": 1,
"fulfilled_by": {
"id": "4248fab3-67d5-2eb1-eaf6-079ce18cd2ed",
"name": "Bravo Coffee"
},
"estimated_delivery": {
"time_to_deliver": 1,
"uot": "minutes",
"delivered_at": 12345565
},
"queue_id": "b82648cb-e5f4-53b2-26b3-edca38e3e34f"
},
"invoice_estimate": {
"issued_date": 123456789,
"due_date": 123456789,
"currency_code": "EUR",
"is_credit": true,
"wallet_funds_amount": 5.99,
"total_net_amount": 1,
"total_discount_amount": 1,
"total_discount_incl_tax": 1,
"total_tax_amount": 0.99,
"total_price": 1,
"total_amount": 9.99,
"amount_due": 1,
"amount_to_collect": 1,
"account_credit": 9.99,
"taxes_breakdown": [
{
"tax_amount": 0.99,
"tax_rate": {
"id": "",
"name": "",
"tax_code": "VAT",
"percentage": 1
}
}
],
"line_items": [
{
"quantity": 1,
"unit_price": 9.99,
"net_amount": 9.99,
"discount_amount": 1,
"sub_total": 9.99,
"pricing": 11.99,
"product": {
"id": "ba603bdc-f18f-1d4e-dd07-ad6b57c6e565",
"sku": "DEC1234",
"name": "Decoder",
"classification": "TRACEABLE_PHYSICAL_GOOD"
},
"discount": {
"discount_amount": 0.96,
"discount_percentage": 1.5,
"discount_incl_tax": 0.98
},
"applied_taxes": [
{
"tax_amount": 0.99,
"tax_exempt_reason": "CONTACT",
"tax_rate": {
"id": "",
"name": "",
"tax_code": "VAT",
"percentage": 1
}
}
],
"bundle_product": {
"id": "31f2e99d-a5cb-21c1-2866-1a1491989893",
"sku": "ICL-001",
"name": "Iced Latte",
"classification": "TRACEABLE_PHYSICAL_GOOD"
}
}
]
},
"service_delivery_estimate": [
{
"action_allowed": true,
"allowed_execution_on": 12345678,
"next_billing_date": 1235678,
"next_payment_date": 12345678,
"subscription": {
"life_cycle_state": "ACTIVE",
"terms": {
"billing_period": {
"duration": 1,
"uot": "MONTHS"
},
"billing_day": {
"day_of_month": 5,
"day_of_week": "MONDAY"
}
}
},
"services_to_add": [
{
"life_cycle_state": "EFFECTIVE",
"quantity": 5,
"product": {
"id": "",
"sku": "",
"name": "",
"classification": "TERMED_SERVICE"
},
"trial_period": {
"starts_on": 12345678,
"ends_on": 12345678
},
"components": [
{
"id": "b82648cb-e5f4-53b2-26b3-edca38e3e34f",
"sku": "",
"name": ""
}
],
"dependencies": [
{
"item_type": "",
"item_id": "",
"item_name": ""
}
]
}
],
"billing_estimate": {
"billing_date": 12345678,
"billed_period": {
"from_date": 12345678,
"to_date": 12345678
},
"totals": {
"total_amount": 9.99,
"tax_amount": 1.99,
"net_amount": 1.99,
"discount_amount": 1.99
},
"invoice_estimate": {
"issued_date": 123456789,
"due_date": 123456789,
"currency_code": "EUR",
"is_credit": true,
"wallet_funds_amount": 5.99,
"total_net_amount": 1,
"total_discount_amount": 1,
"total_discount_incl_tax": 1,
"total_tax_amount": 0.99,
"total_price": 1,
"total_amount": 9.99,
"amount_due": 1,
"amount_to_collect": 1,
"account_credit": 9.99,
"taxes_breakdown": [
{
"tax_amount": 0.99,
"tax_rate": {
"id": "",
"name": "",
"tax_code": "VAT",
"percentage": 1
}
}
],
"line_items": [
{
"quantity": 1,
"unit_price": 9.99,
"net_amount": 9.99,
"discount_amount": 1,
"sub_total": 9.99,
"pricing": 11.99,
"product": {
"id": "ba603bdc-f18f-1d4e-dd07-ad6b57c6e565",
"sku": "DEC1234",
"name": "Decoder",
"classification": "TRACEABLE_PHYSICAL_GOOD"
},
"discount": {
"discount_amount": 0.96,
"discount_percentage": 1.5,
"discount_incl_tax": 0.98
},
"applied_taxes": [
{
"tax_amount": 0.99,
"tax_exempt_reason": "CONTACT",
"tax_rate": {
"id": "",
"name": "",
"tax_code": "VAT",
"percentage": 1
}
}
],
"bundle_product": {
"id": "31f2e99d-a5cb-21c1-2866-1a1491989893",
"sku": "ICL-001",
"name": "Iced Latte",
"classification": "TRACEABLE_PHYSICAL_GOOD"
}
}
]
}
}
}
],
"milestone_plan_estimate": [
{
"status": {
"id": "b82648cb-e5f4-53b2-26b3-edca38e3e34f",
"name": "new",
"colour": "FADS876",
"priority": 1
},
"queue_percentage": 1,
"percentage": 1,
"amount": 1
}
],
"invalid_products": [
{
"unavailability_reason": "VALIDITY_PERIOD",
"product": {
"id": "b82648cb-e5f4-53b2-26b3-edca38e3e34f",
"sku": "PIE",
"name": "Cheese pie"
}
}
]
}
Preview purchase information (including awards and spends) before submitting a purchase customer event
Notes
Integrating purchase estimates in a “submit purchase” flow the following APIs should be called
POST /estimates/purchasesPOST /purchasesby providing the estimates identifier as return from previous API call
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Defines the contact for whom the purchase is created for (customer identification can be made either using contact id, contact code, cim, contact_token or contact masked card)
The contact identifier
The contact code
The contact cim
The contact token
The card’s last 4 digits
The card’s expiration month
The card’s expiration year
Details about the card owner
The card’s owner surname
The purchased products. Applicable and required when total transaction is not specified
The purchased product sku (product sku and product family are semi-optional)
The purchased product name
The purchased product family (product sku and product family are semi-optional)
The purchased product net amount
The purchased product vat amount
The purchased product total amount (net and vat amount)
The purchased quantity
Applicable when products (sku/family) are not provided
The purchase net amount
The purchase tax amount
The purchase total amount (net + tax - discount)
The discount of the purchase
The transaction acquiring point that the event was submitted from (id or code must be specified). TAP and Organisation (id) attributes are semi-optional
The transaction acquiring point identifier
The transaction acquiring point code
The transaction acquiring point that the event was submitted from (id or code must be specified). TAP and Organisation (id) attributes are semi-optional
The transaction acquiring point identifier
The transaction acquiring point code
The organisation that the purchase was submitted from. Merchant/Venue TAP and Organisation (id) are semi-optional
The purchase classification
The customer event classification identifier
The customer event classification name
Details about the pass
Pass type
The pass code. For Promotion passes - a Promotion pass will be generated and redeemed as part of the process, the contact_id should also be provided
The pass assocaited pin (if applicable) should be set here for validation
- If validation is successful, the Purchase Event will be created and wallet funds will be consumed
- If validation is unsuccessful, the Purchase Event won’t be created and wallet funds won’t be consumed
The pass one time password (if applicable) - not implemented yet for passes
Defines whether spend resolution should be disabled or not (if disable spend requests, including instant spends, will not be taken into consideration)
The date/time that purchase will be submitted
Information related with the spend request that should be created as part of the purchase
The amount to be spent by the specified spend request in system currency
Defines whether the purchase will be posted successfully only if requested spend amount is fully covered by the available wallet balance - applicable only for Front-End Reduction purchases and only when requested spend amount is specified
Responses
The request has succeeded
Body
The purchase estimates identifier (can be used on post purchase instead of re-submitting the whole purchase attributes)
Details about the estimated awards/spends from this purchase
The estimated total award amount
The sum of all estimated spends (instant discount, auto spends, spends on request)
The estimated spend amount related to instant discount
The estimated spend amount related to automatic spend
The estimated spend amount that can be actually spend (related to contact’s spend request)
The wallet’s open balance amount that was spent
The wallet’s commerce balance amount that was spent
POST https://sandbox.crm.com/backoffice/v1/estimates/purchases HTTP/1.1
api_key: adea79a6-fe7f-2e92-56c7-9a0685ffa290
Content-Type: application/json
{
"contact": {
"id": "84b5deb0-48fb-3a34-6d3d-8e8512a33f1d"
},
"products": [
{
"product_sku": "FREDESPR001",
"product_name": "Freddo Espresso",
"net_amount": 14.15,
"tax_amount": 1.04,
"total_amount": 15.19,
"quantity": 2
}
],
"discount_amount": 1.99,
"spend_request": {
"amount": 2.12
},
"merchant_tap": {
"code": "TAP001"
},
"outlet_tap": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"code": "TAP002"
},
"classification": {
"name": "Delivery Purchase"
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "42c48837-7f19-6bfd-3789-7fd672c556c7",
"rewards": {
"total_award": 1.99,
"total_spend": 2.85,
"instant_discount": 2.01,
"auto_spend": 1,
"spend_on_request": 0.84,
"total_open_spend": 2.84,
"total_commerce_spend": 0.01
}
}
Returns an estimation of a change perfromed on a subscription service, without making the change. The estimation is based on existing services owned by the customer plus any requested changes.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Applicable when amending a flexible service bundle. At least one components should be specifid as either to be added or removed
The unique identifier of the service
The service components to be removed
Responses
Body
Sum of all products’ prices as these are defined in the product catalog
Total amount of the invoice that will be generated. Includes taxed and disoucnt amounts
The amount that will be due at the time of the estimation
Amount that the customer needs to pay at the time of the estimation
Available account funds that can be used to pay off the Invoice. Available when the account is in credit and/or the account has a credit limit. Account funds are calculated as the account’s credit limit minus the amount in credit. for example credit limit is 100 and account credit is 50, then account fund sis returned as 150
The price of the product as this is configured in the product catalog (including tax or not depending on the tax model)
Termed service’s debited/credited period
The date from which the service is invoiced/credited
The date until which the service is invoiced/credited
Details about the product
The product identifier
The product SKU
The product name
Details about the applied discount
Details about the applied taxes
Defines the main product that the line item is component to it (applicable only when the line item is invoiced as a component of another product)
The product identifier
The product sku
The product name
POST https://sandbox.crm.com/backoffice/v1/estimates/service_delivery HTTP/1.1
Content-Type: application/json
{
"action": "CHANGE_TERMS",
"contact_id": "",
"organisation_id": "",
"account_id": "",
"subscription_id": "",
"scheduled_date": 12345678,
"number_of_days": 3,
"subscription_term_changes": {
"billing_day": {
"day_of_month": 1,
"day_of_week": "MONDAY"
},
"payment_method_id": "",
"funding_source": "WALLET"
},
"services_to_add": [
{
"product_id": "",
"price_terms_id": "",
"quantity": 1,
"components": [
{
"product_id": "",
"price_terms_id": ""
}
]
}
],
"services_to_remove": [
{
"id": ""
}
],
"services_to_change": [
{
"from_service_id": "",
"to_service_product_id": "",
"to_price_terms_id": "",
"components": [
{
"product_id": "",
"price_terms_id": ""
}
]
}
],
"service_term_changes": [
{
"service_id": "",
"auto_renewal_preference": "OPT_IN, OPT_OUT",
"contract_preference": "RENEW, EXTEND",
"extend_by": {
"period": 3,
"uot": "DAYS"
},
"quantity": 1
}
],
"component_changes": {
"id": "",
"to_be_added": [
{
"product_id": "",
"price_terms_id": ""
}
],
"to_be_removed": [
{
"id": ""
}
]
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"service_delivery_estimate": [
{
"action_allowed": true,
"allowed_execution_on": 12345678,
"next_billing_date": 1235678,
"next_payment_date": 12345678,
"subscription": {
"life_cycle_state": "ACTIVE",
"terms": {
"billing_period": {
"duration": 1,
"uot": "MONTHS"
},
"billing_day": {
"day_of_month": 5,
"day_of_week": "MONDAY"
}
}
},
"services_to_add": [
{
"life_cycle_state": "EFFECTIVE",
"product": {
"id": "",
"sku": "",
"name": ""
},
"trial_period": {
"starts_on": 12345678,
"ends_on": 12345678
},
"dependencies": [
{
"item_type": "",
"item_id": "",
"item_name": ""
}
]
}
],
"services_to_remove": [
{
"id": "",
"life_cycle_state": "CANCELLED",
"product": {
"id": "",
"sku": "",
"name": ""
}
}
],
"services_to_change": [
{
"id": "",
"life_cycle_state": "SWAPPED",
"product": {
"id": "",
"sku": "",
"name": ""
},
"change_to_product": {
"id": "",
"sku": "",
"name": ""
},
"dependencies": [
{
"item_type": "",
"item_id": "",
"item_name": ""
}
]
}
],
"components_change": {
"service": {
"id": "",
"sku": "",
"name": ""
},
"components_added": [
{
"id": "",
"sku": "",
"name": ""
}
],
"components_removed": [
{
"id": "",
"sku": "",
"name": ""
}
]
},
"billing_estimate": {
"billing_date": 12345678,
"billed_period": {
"from_date": 12345678,
"to_date": 12345678
},
"totals": {
"total_amount": 9.99,
"tax_amount": 1.99,
"net_amount": 1.99,
"discount_amount": 1.99
},
"invoicing": [
{
"issued_date": 123456789,
"due_date": 123456789,
"currency_code": "EUR",
"is_credit": true,
"wallet_funds_amount": 5.99,
"total_net_amount": 1,
"total_discount_amount": 1,
"total_discount_incl_tax": 1,
"total_tax_amount": 0.99,
"total_price": 1,
"total_amount": 9.99,
"amount_due": "",
"amount_to_collect": 1,
"taxes_breakdown": [
{
"tax_amount": 0.99,
"tax_rate": {
"id": "",
"name": "",
"tax_code": "VAT",
"percentage": 1
}
}
],
"line_items": [
{
"quantity": 1,
"unit_price": 9.99,
"net_amount": 9.99,
"discount_amount": 1,
"sub_total": 9.99,
"pricing": 11.99,
"product": {
"id": "ba603bdc-f18f-1d4e-dd07-ad6b57c6e565",
"sku": "DEC1234",
"name": "Decoder",
"classification": "TRACEABLE_PHYSICAL_GOOD"
},
"discount": {
"discount_amount": 0.96,
"discount_percentage": 1.5,
"discount_incl_tax": 0.98
},
"applied_taxes": [
{
"tax_amount": 0.99,
"tax_exempt_reason": "CONTACT",
"tax_rate": {
"id": "",
"name": "",
"tax_code": "VAT",
"percentage": 1
}
}
],
"bundle_product": {
"id": "31f2e99d-a5cb-21c1-2866-1a1491989893",
"sku": "ICL-001",
"name": "Iced Latte",
"classification": "TRACEABLE_PHYSICAL_GOOD"
}
}
]
}
]
}
}
]
}
Retrieve all account and wallet journal entries for all contacts, or based on request parameters
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Which journals should be retrieved, blank = both Account & Wallet
Type of journal entry action, if not specified then all journals are retrieved
Type of financial transaction
Journal entries posted on this date
The reference number of the journal’s related financial or wallet entity
Journal entry amount
Unique Contact id for which to retrieve journal entries
Unique account id to get journal entries
Unique wallet id to get journal entries
Organisation id to get journal entries
if specified, then only journals of the specified currency are returned
Filter based on entity number (e.g. invoice number, credit note number, refund number)
Responses
Body
Journal id
Journal entity type
Type of journal entry action
Journal posted date
Contact’s account details
Unique id of account for which the jounral entry was posted
Unique account number
Contact’s wallet details
Unique wallet id
Unique wallet code
The unique identifier of the journal entity (e.g. invoice_id, top-up_id, transfer_id etc.)
The type of the event
Entity number, e.g. invoice number, credit note number, refund number
Can be: a) Reference number - if the transaction is of type payment, invoice, credit note, payment cancellation, refund. OR b) Code - if the transaction is a top-up or a transfer
The initiating type of an AWARD transaction
Award is a result of a purchase event
Award is a result of a reward achievement offer
Details about the related contact
The contact identifier
The contact full name
The contact unique code
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
Transaction amount
Transaction currency code
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/journals HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "2f4ea11b-12a6-4321-92d1-f4ede511e203",
"entity": "WALLET",
"type": "CREDIT",
"posted_date": 2343342445,
"account": {
"id": "MP09E31269B76D7A65ACCE45B2E68DFD",
"number": "964AC123456"
},
"wallet": {
"id": "DN89331269B76D7A65ACCE45B2E68DFD",
"code": "W00123456"
},
"entity_id": "6bf75c2b-e9d1-43bc-b5db-a7555919bf04",
"transaction_type": "PAYOUT",
"entity_number": "CN88942",
"reference_number": "A09967",
"initial_type": "ACHIEVEMENT",
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"organisation": {
"id": "4248fab3-67d5-2eb1-eaf6-079ce18cd2ed",
"name": "Bravo Coffee"
},
"amount": 9.99,
"currency_code": "EUR"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "2f4ea11b-12a6-4321-92d1-f4ede511e203",
"entity": "WALLET",
"type": "CREDIT",
"posted_date": 2343342445,
"account": {
"id": "MP09E31269B76D7A65ACCE45B2E68DFD",
"number": "964AC123456"
},
"wallet": {
"id": "DN89331269B76D7A65ACCE45B2E68DFD",
"code": "W00123456"
},
"entity_id": "6bf75c2b-e9d1-43bc-b5db-a7555919bf04",
"transaction_type": "PAYMENT",
"entity_number": "CN88942",
"reference_number": "A09967",
"initial_type": "PURCHASE",
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"organisation": {
"id": "4248fab3-67d5-2eb1-eaf6-079ce18cd2ed",
"name": "Bravo Coffee"
},
"amount": 9.99,
"currency_code": "EUR"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}{id}/actions{id}Create a new Invoice financial transaction
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The account on which the financial transaction will be posted against to
The unique identifier of the financial transaction id
The reference number of the financial transaction to be created
The due date of the financial transaction. The default value is provided based on settings but the user can provide a different one based on configuration.
The issued date of the financial transaction. Defaults to current date.
The posted date of the financial transaction. Defaults to current date
Any notes related to the financial transaction
If an invoice is generated through an order the order id will be passed.
The life cycle state of the financial transaction
The type of invoice that is generated through ordering.
Payment method to be used to pay off the invoice
The type of the event
The contact payment method’s identifier. Applicable only for payment method types Card, Wallet or Account Debit
The product’s unique identifier to be included in the financial transaction
The quantity of the product. Defaults to 1
The price per unit of the product
The discount amount of the line
The discount percentage of the line
The sub total of the financial transaction line
The IDs of the devices to be sold in case of a stockable/traceable product
Responses
Successful Request
Body
The unique identifier of the financial transaction
POST https://sandbox.crm.com/backoffice/v1/invoices HTTP/1.1
Content-Type: application/json
{
"account_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"type_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"reference_number": "123456",
"due_date": 1583846865,
"issued_date": 1583846865,
"posted_date": 1583846865,
"notes": "",
"order_id": "JHDSHJDKSJHSDJH",
"life_cycle_state": "POSTED",
"order_invoice_type": {
"order_invoice_type": "FINAL"
},
"payment_method": {
"type": "WALLET",
"id": ""
},
"financial_transaction_lines": [
{
"product_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"quantity": 2,
"unit_price": 10,
"discount": {
"discount_amount": 20,
"discount_percentage": 20
},
"sub_total": 200,
"devices": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{id}Update a Draft Invoice financial transaction
Path variables
The id of the Invoice to be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The unique identifier of the financial transaction id
The due date of the financial transaction. The default value is provided based on settings but the user can provide a different one based on configuration.
The issued date of the financial transaction. Defaults to current date.
The posted date of the financial transaction. Defaults to current date
Any notes related to the financial transaction
The unique identifier of an existing line to be updated
The unique identifier of the product to be provided on new lines
The price per unit of the product
The quantity of the product
The discount amount of the line
The discount percentage of the line
The sub total of the financial transaction line
The IDs of the devices to be sold in case of a stockable/traceable product
The life cycle state of the financial transaction
Responses
Successful Request
Body
The unique identifier of the financial transaction
PUT https://stagingapi.crm.com/backoffice/v1/invoices/{id} HTTP/1.1
Content-Type: application/json
{
"type_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"due_date": 1583846865,
"issued_date": 1583846865,
"posted_date": 1583846865,
"notes": "",
"financial_transaction_lines": [
{
"line_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"product_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"unit_price": 10,
"quantity": 2,
"discount": {
"discount_amount": 20,
"discount_percentage": "20"
},
"sub_total": 200,
"devices": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]
}
],
"life_cycle_state": "DRAFT"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}/actionsPerform actions on an existing Invoice
Path variables
The unique identification of the invoice that the actions will be performed against to
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The action to be performed on the Invoice
Posts a Draft Invoice. Applicable only for Draft Invoices
Rejects an Invoice. Applicable only for Draft Invoices.
Issues a credit note based on the specified invoice. Applicable only for Posted Invoices.
The invoice notes available to provide any information on the performed action
Applicable when Refunding or Crediting the Invoice. The amount must be less than or equal to the Invoice’s total amount. If not specified when performing these actions, then the Invoice is fully Credited/Refunded.
Responses
Successful Request
Body
The unique identifier of the invoice
POST https://sandbox.crm.com/backoffice/v1/invoices/CAD1E31269B76D7A65ACCE45B2E68DFD/actions HTTP/1.1
Content-Type: application/json
{
"action": "CREDIT",
"notes": "",
"amount": 9.99
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}List all the available Invoices
Request parameters
The unique ID of the contact whose Invoices belong to
The unique ID of the account whose Invoices belong to
If set to true, then only the unsettled Invoices will be retreived
Filter based on the life cycle state
The value of the search across number and reference number
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Filter based on order
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The financial transaction number
The financial transaction’s reference number
Details about the related type
The type identifier
The type name
Details about the related contact
The contact identifier
The contact full name
The contact unique code
Details about the related contact’s account
The account identifier
The account name
The account unique number
The life cycle state of the financial transaction
The date that the financial transaction was issued
The date that the financial transaction was posted
The due date of the financial transaction
The total net amount of the financial transaction
The total discount amount of the financial tranasction
Total tax amount
The total amount of the financial transaction
The unpaid amount that passed the financial transaction’s due date
The unpaid amount of the financial transaction
The invoice’s currency code
The unique ID of the financial transaction line
The invoiced product
The quantity of the product
The price per unit of the product
The net amount
The discount amount of the line
The discount percentage of the line
Total taxed amount for the product
The sub total of the financial transaction line
A set of applied tax rates
The applied tax rate
The identifier of the tax rate
The name of the tax rate
The tax rate % that was applied
The ax amount applied because of the tax rate
The devices that were sold through this invoice
The ID of the device
The serial number of the device
A list of taxes that were applied across all lines.
The unique ID of the tax rate
The name of the tax rate
The code of the tax rate
The applied tax rate’s percentage that was valid on the date on wich the rate was applied
The applied tax amount because of this tax rate
Any notes of the financial transaction
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
The details pertainign to the status of when the invoice has been released.
The cedit note that was issued in order to refund the invoice.
The unique identifier of the Credit Note
The number of the Credit Note
The reference number of the Credit Note
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/invoices HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"number": "INV0001",
"reference_number": "123456",
"type": {
"id": "c01ecd1b-ff1e-35c2-7236-59ae20339c78",
"name": "Internal Transaction"
},
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"account": {
"id": "8a025412-ec13-550a-4d82-6aef6562ac49",
"name": "ACR1234 John Doe",
"number": "AC123456"
},
"life_cycle_state": "PENDING",
"issued_date": 1583846865,
"posted_date": 1583846865,
"due_date": 1583846865,
"total_net_amount": 1,
"total_discount_amount": 1,
"total_tax_amount": 2.99,
"total_amount": 1,
"overdue_amount": 10,
"unsettled_amount": 1,
"currency_code": "EUR",
"financial_transaction_lines": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"product": {
"id": "",
"sku": "",
"name": ""
},
"quantity": 2,
"unit_price": 10,
"net_amount": 10,
"discount": {
"discount_amount": 20,
"discount_percentage": 10,
"discount_incl_tax": 1
},
"tax_amount": 5,
"sub_total": 200,
"applied_taxes": [
{
"tax_rate": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Standard VAT",
"tax_code": "VAT",
"percentage": 1
},
"tax_amount": 0.2,
"tax_exempt_reason": "PRODUCT"
}
],
"devices": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"serial_number": "STB123456"
}
]
}
],
"taxes_breakdown": [
{
"tax_rate": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Domestic",
"tax_code": "VAT",
"percentage": 20
},
"tax_amount": 7.29
}
],
"notes": "December Invoice",
"organisation": {
"id": "4248fab3-67d5-2eb1-eaf6-079ce18cd2ed",
"name": "Bravo Coffee"
},
"status": {
"id": "",
"name": "",
"colour": ""
},
"credit_note": {
"id": "",
"number": "",
"ref_number": ""
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Get an Invoice
Path variables
The id of the Invoice to be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The financial transaction number
The financial transaction’s reference number
Details about the related type
The type identifier
The type name
Details about the related contact
The contact identifier
The contact full name
The contact unique code
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
Details about the related contact’s account
The account identifier
The account name
The account unique number
The life cycle state of the financial transaction
The date that the financial transaction was issued
The date that the financial transaction was posted
The due date of the financial transaction
The total net amount of the financial transaction
The total discount amount of the financial tranasction
Total tax amount
The total amount of the financial transaction
The unpaid amount that passed the financial transaction’s due date
The unpaid amount of the financial transaction
The invoice’s currency code
The account owner’s payment terms based on which the Invoice’s Due date was calculated
Any notes of the financial transaction
The unique ID of the financial transaction line
The invoiced product
The product’s unique identifier
The product’s SKU
The product’s name
The quantity of the product
The price per unit of the product
The net amount
Total discount provided per invoice line
The discount amount of the line
The discount percentage of the line
Total taxed amount for the product
The sub total of the financial transaction line
Invoiced period applicable only when invoicing a termed service.
The date from which the service is invoiced
The date until which the service is invoiced
A set of applied tax rates
The applied tax rate
The identifier of the tax rate
The name of the tax rate
The applied tax rate’s percentage that was valid on the date on which the rate was applied
The ax amount applied because of the tax rate
List of discounts applied on the invoice line.
The deducted amount
Defines whether the discont was applied on an ad hoc basis or because of a promotion
The applied promotion. Applicable when the discount was applied because of a promotion
The unique identifier of the promotion
The promotion’s name
The devices that were sold through this invoice
The ID of the device
The serial number of the device
A list of taxes that were applied across all lines.
The applied tax rate’s percentage that was valid on the date on which the rate was applied
The applied tax amount because of this tax rate
List of discounts applied across all invoice lines
Total discounted amount
Determines if the discOunt was applied on an ad hoc basis or because of a promotion
Applicable only for discounts applied because of a promotion
The promotion’s unique identifier
The promotion’s name
The account owner’s name. This is the company name in case of Contacts of Type Company and the full Prson name
First name of the contact
Last name of the contact
The account owner’s email address
The acocunt’s owner’s phone
The address line 1
The address line 2
The address state/province/county
The address town/city
The address postal code
The address country (based on ISO 3 char code)
The latitude of the address
The longitude of the address
The Google textual identifier that uniquely identifies an address
The account owner’s name. This is the company name in case of Contacts of Type Company and the full Prson name
First name of the contact
Last name of the contact
The account owner’s email address
The acocunt’s owner’s phone
The address line 1
The address line 2
The address state/province/county
The address town/city
The address postal code
The address country (based on ISO 3 char code)
The latitude of the address
The longitude of the address
The Google textual identifier that uniquely identifies an address
GET https://sandbox.crm.com/backoffice/v1/invoices/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"number": "INV0001",
"reference_number": "123456",
"type": {
"id": "c01ecd1b-ff1e-35c2-7236-59ae20339c78",
"name": "Internal Transaction"
},
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"organisation": {
"id": "4248fab3-67d5-2eb1-eaf6-079ce18cd2ed",
"name": "Bravo Coffee"
},
"account": {
"id": "8a025412-ec13-550a-4d82-6aef6562ac49",
"name": "ACR1234 John Doe",
"number": "AC123456"
},
"life_cycle_state": "PENDING",
"issued_date": 1583846865,
"posted_date": 1583846865,
"due_date": 1583846865,
"total_net_amount": 150,
"total_discount_amount": 50,
"total_tax_amount": 2.99,
"total_amount": 100,
"overdue_amount": 1,
"unsettled_amount": 100,
"currency_code": "EUR",
"net_term_days": 1,
"notes": "",
"financial_transaction_lines": [
{
"id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"product": {
"id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"sku": "abc-12345",
"name": "Decoder",
"is_stockable": true,
"classification": "TERMED_SERVICE"
},
"quantity": 2,
"unit_price": 10,
"net_amount": 1,
"discount": {
"discount_amount": 20,
"discount_percentage": 20,
"discount_incl_tax": 1
},
"tax_amount": 1,
"sub_total": 200,
"period": {
"from": 1651172405,
"to": 1653764405
},
"applied_taxes": [
{
"tax_rate": {
"id": "",
"name": "Standard VAT",
"tax_code": "SALES_TAX",
"percentage": 20
},
"tax_amount": 0.2,
"tax_exempt_reason": "CONTACT"
}
],
"applied_discounts": [
{
"amount": 0.55,
"type": "PROMOTION",
"promotion": {
"id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"name": "Xmas -30%"
}
}
],
"devices": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"serial_number": "STB123456"
}
]
}
],
"taxes_breakdown": [
{
"tax_rate": {
"id": "",
"name": "",
"tax_code": "TAX_EXEMPT",
"percentage": 1
},
"tax_amount": 7.29
}
],
"credit_note": {
"id": "",
"number": "",
"ref_number": ""
},
"applied_discounts": [
{
"amount": "1.55",
"type": "AD_HOC",
"promotion": {
"id": "",
"name": "Xmas -30% sales"
}
}
]
}
{id}{id}/actions{id}Create a new Credit Note financial transaction
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The account on which the financial transaction will be posted against to
The unique identifier of the financial transaction id
The reference number of the financial transaction to be created
The issued date of the financial transaction. Defaults to current date.
The posted date of the financial transaction. Defaults to current date
Any notes related to the financial transaction
The life cycle state of the financial transaction
The product’s unique identifier to be included in the financial transaction
The quantity of the product
The price per unit of the product
The discount amount of the line
The discount percentage of the line
The sub total of the financial transaction line
The IDs of the devices to be returned back to the business in case of a stockable/traceable product
The Invoice financial transactions to be credited by this Credit Note
Responses
Successful Request
Body
The unique identifier of the financial transaction
POST https://stagingapi.crm.com/backoffice/v1/credit_notes HTTP/1.1
Content-Type: application/json
{
"account_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"type_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"reference_number": "123456",
"issued_date": 1583846865,
"posted_date": 1583846865,
"notes": "",
"life_cycle_state": "DRAFT",
"financial_transaction_lines": [
{
"product_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"quantity": 2,
"unit_price": 10,
"discount": {
"discount_amount": 20,
"discount_percentage": 20
},
"sub_total": 200,
"devices": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]
}
],
"financial_transactions_credited": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}Update a Draft Credit Note financial transaction
Path variables
The id of the Credit Note to be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The unique identifier of the financial transaction id
The issued date of the financial transaction. Defaults to current date.
The posted date of the financial transaction. Defaults to current date
Any notes related to the financial transaction
The life cycle state of the financial transaction
The unique identifier of an existing line to be updated
The unique identifier of the product to be provided on new lines
The price per unit of the product
The quantity of the product
The discount amount of the line
The discount percentage of the line
The sub total of the financial transaction line
The IDs of the devices to be returned back to the business in case of a stockable/traceable product
The Invoice financial transactions to be credited by this Credit Note
Responses
Successful Request
Body
The unique identifier of the financial transaction
PUT https://stagingapi.crm.com/backoffice/v1/credit_notes/{id} HTTP/1.1
Content-Type: application/json
{
"type_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"issued_date": 1583846865,
"posted_date": 1583846865,
"notes": "",
"life_cycle_state": "DRAFT",
"financial_transaction_lines": [
{
"line_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"product_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"unit_price": 10,
"quantity": 2,
"discount": {
"discount_amount": 20,
"discount_percentage": "20"
},
"sub_total": 200,
"devices": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]
}
],
"financial_transactions_credited": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}/actionsPerform actions on an existing Credit Note
Path variables
The unique identification of the credit note that the actions will be performed against to
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The action to be performed on the Credit Note
The credit note notes available to provide any information on the performed action
Responses
Successful Request
Body
The unique identifier of the credit note
POST https://devapi.crm.com/backoffice/v1/credit_notes/CAD1E31269B76D7A65ACCE45B2E68DFD/actions HTTP/1.1
Content-Type: application/json
{
"action": "REJECT"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}List all the available Credit Notes
Request parameters
The unique ID of the contact whose Credit Notes belong to
The unique ID of the account whose Credit Notes belong to
The life cycle state of the Credit Notes to be retrieved
The value of the search across number and reference number
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The financial transaction number
The financial transaction’s reference number
Details about the related type
The type identifier
The type name
Details about the related contact
The contact identifier
The contact full name
The contact unique code
Details about the related contact’s account
The account identifier
The account name
The account unique number
The life cycle state of the financial transaction
The date that the financial transaction was issued
The date that the financial transaction was posted
The total net amount of the financial transaction
The total discount amount of the financial tranasction
The total applied tax amount
The total amount of the financial transaction
The credit note’s currency code
The unique ID of the financial transaction line
The credited product
The quantity of the product
The price per unit of the product
The net amount of the line
The discount amount of the line
The discount percentage of the line
Total taxed amount for this product
The sub total of the financial transaction line
The applied tax rate’s percentage that was valid on the date on which the rate was applied
The applied tax amount because of the tax rate
The devices that were returned through this invoice
The ID of the device
The serial number of the device
The applied tax rate’s percentage that was valid on the date on which the rate was applied
The financial transactions that are credited by the Credit Note
Any notes of the financial transaction
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
The page number
The number of records per page
The overal number of records
GET https://stagingapi.crm.com/backoffice/v1/credit_notes HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"number": "CR0001",
"reference_number": "123456",
"type": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Credit Note"
},
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"account": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "AC123456"
},
"life_cycle_state": "DRAFT",
"issued_date": 1583846865,
"posted_date": 1583846865,
"total_net_amount": 150.5,
"total_discount_amount": 50.5,
"total_tax_amount": 1.5,
"total_amount": 100.5,
"currency_code": "EUR",
"financial_transaction_lines": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"product_id": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"sku": "PROD0123",
"name": "COFFEE"
},
"quantity": 2,
"unit_price": 10,
"net_amount": 20.5,
"discount": {
"discount_amount": 20.5,
"discount_percentage": 20.5
},
"tax_amount": 1.1,
"sub_total": 200.5,
"applied_taxes": [
{
"tax_rate": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "DOMESTIC",
"tax_code": "TAX_EXEMPT",
"percentage": 20
},
"tax_amount": 1.5,
"tax_exempt_reason": "PRODUCT"
}
],
"devices": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"serial_number": "STB123456"
}
]
}
],
"taxes_breakdown": [
{
"tax_rate": {
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "DOMESTIC TAX",
"tax_code": "TAX_EXEMPT",
"percentage": 20
},
"tax_amount": 1.5
}
],
"financial_transactions_credited": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"notes": ""
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Get a Credit Note
Path variables
The id of the Credit Note to be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The financial transaction number
The financial transaction’s reference number
Details about the related type
The type identifier
The type name
Details about the related contact
The contact identifier
The contact full name
The contact unique code
Details about the related contact’s account
The account identifier
The account name
The account unique number
The life cycle state of the financial transaction
The date that the financial transaction was issued
The date that the financial transaction was posted
The total net amount of the financial transaction
The total discount amount of the financial tranasction
The total applied tax amount
The total amount of the financial transaction
The credit note’s currency code
The unique ID of the financial transaction line
The credited product
The product’s identifier
The product’s SKU
The product’s name
The quantity of the product
The price per unit of the product
The discount amount of the line
The discount percentage of the line
Total taxed amount for this product
The sub total of the financial transaction line
The applied tax rate’s percentage that was valid on the date on which the rate was applied
The applied tax amount because of the tax rate
The devices that were returned through this invoice
The ID of the device
The serial number of the device
Period credited. Applicable only when crediting termed services
The date from which the service is credited
The date until which the service is credited
The applied tax rate’s percentage that was valid on the date on which the rate was applied
The financial transactions that are credited by the Credit Note
Any notes of the financial transaction
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
GET https://sandbox.crm.com/backoffice/v1/credit_notes/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"number": "CR0001",
"reference_number": "123456",
"type": {
"id": "c01ecd1b-ff1e-35c2-7236-59ae20339c78",
"name": "Internal Transaction"
},
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"account": {
"id": "8a025412-ec13-550a-4d82-6aef6562ac49",
"name": "ACR1234 John Doe",
"number": "AC123456"
},
"life_cycle_state": "REJECTED",
"issued_date": 1583846865,
"posted_date": 1583846865,
"total_net_amount": 150.5,
"total_discount_amount": 50.5,
"total_tax_amount": 1.5,
"total_amount": 100.5,
"currency_code": "EUR",
"financial_transaction_lines": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"product": {
"id": "",
"sku": "",
"name": "",
"is_stockable": true,
"classification": "ONE_TIME_SERVICE"
},
"quantity": 2,
"unit_price": 10,
"net_amount": 20.5,
"discount": {
"discount_amount": 20.5,
"discount_percentage": 20.5
},
"tax_amount": "",
"sub_total": 200.5,
"applied_taxes": [
{
"tax_rate": {
"id": "",
"name": "",
"tax_code": "SALES_TAX",
"percentage": 1
},
"tax_amount": 1.5,
"tax_exempt_reason": "PRODUCT"
}
],
"devices": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"serial_number": "STB123456"
}
],
"period": {
"from": 1651172405,
"to": 1653764405
}
}
],
"taxes_breakdown": [
{
"tax_rate": {
"id": "",
"name": "",
"tax_code": "TAX_EXEMPT",
"percentage": 20
},
"tax_amount": 1.5
}
],
"financial_transactions_credited": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"notes": "",
"organisation": {
"id": "4248fab3-67d5-2eb1-eaf6-079ce18cd2ed",
"name": "Bravo Coffee"
}
}
{id}{id}/actions{id}Create a new Payment financial transaction
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Code that uniquely identifies the payment. If not sepcified, then a random and unique 16-digits code will be automatically assigned.
The contact on which the financial transaction will be posted against to (contact and organisation are semi-optional)
The organisation on which the financial transaction will be posted against to (contact and organisation are semi-optional)
The unique identifier of the financial transaction type. Only financial transaction ypes for Payments can be selected. If not specified, then the default Payment financial transaction type will be used.
The issued date of the financial transaction. Defaults to current date.
The posted date of the financial transaction. Defaults to current date
The amount of the payment
Defaults to the currency of the customer’s primary account
Any notes related to the financial transaction
The life cycle state of the financial transaction
The type of the event
The contact’s actual preferred payment method. Required and mandatory only for online payments (Card, Wallet and Account Debit).
A number that provides a form of identification for the payment. Usually a number that represents the payment in an external system. Can also be used to register the cheque’s number in the corresponding payment method type.
An array of unique IDs of Invoices to be paid. Either Invoices or External references must be specified (only one of the two)
An array of reference numbers of external debits to be paid. Either Invoices or External references must be specified (only one of the two)
The custom field’s unique key
The custom field’s value
Responses
Successful Request
Body
The unique identifier of the Payment
POST https://sandbox.crm.com/backoffice/v1/payments HTTP/1.1
Content-Type: application/json
{
"code": "",
"contact_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"organisation_id": "sfsdfsdf-23-e23-dwe-d-3-dew-dw",
"type_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"issued_date": 1583846865,
"posted_date": 1583846865,
"amount": 9.99,
"currency": "EUR",
"notes": "",
"life_cycle_state": "POSTED",
"payment_method": "ACCOUNT_DEBIT",
"payment_method_id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"backoffice_code": "",
"financial_transactions_payable": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"external_transactions_payable": [
"INV0123456"
],
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}Update an existing draft payment financial transaction
Path variables
The id of the Payment to be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The unique identifier of the financial transaction id
The issued date of the financial transaction. Defaults to current date.
The posted date of the financial transaction. Defaults to current date
The amount of the payment
Any notes related to the financial transaction
The type of the event
The contact’s actual preferred payment method. Applicable only for online payments (Card, Wallet, Account).
An array of unique IDs of Invoices to be paid. Invoices or External References must be specified (one of the two only)
An array of reference numbers of external debits to be paid. Invoices or External References must be specified (one of the two only)
The custom field’s unique key
The custom field’s value
Responses
Successful Request
Body
The unique identifier of the payment
PUT https://sandbox.crm.com/backoffice/v1/payments/{id} HTTP/1.1
Content-Type: application/json
{
"type_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"issued_date": 1583846865,
"posted_date": 1583846865,
"amount": 9.99,
"notes": "",
"payment_method": "CHEQUE",
"payment_method_id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"financial_transactions_payable": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"external_transactions_payable": [
"INV0123456"
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}/actionsPerform actions on an existing Payment
Path variables
The unique identification of the payment that the actions will be performed against to
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The action to be performed on the Payment
Posts a Draft Payment
Rejects a Draft Payment
Refunds a Posted Payment. A Payment can be fully or patially refunded
The id of the cancellation financial transaction type to be created. Applicable only if the action is CANCEL
The payment notes available to provide any information on the performed action
Applicable only when refunding a payment. The refunded amount must be less than or equal to the Payment’s amount. If not specified, then the Payment is fully refunded
Responses
Successful Request
Body
The unique identifier of the payment
POST https://sandbox.crm.com/backoffice/v1/payments/CAD1E31269B76D7A65ACCE45B2E68DFD/actions HTTP/1.1
Content-Type: application/json
{
"action": "POST",
"payment_cancellation_type_id": "4AD9C84FA60F9FE407140E20F707726A",
"notes": "",
"amount": 9.99
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}List all available Payments
Request parameters
The unique ID of the account whose Payments belong to
The unique ID of the contact whose Payments belong to
The unique ID of the organisation whose Payments belong to
The life cycle state of the Payments to be retrieved
The value of the search across number and reference number
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Filters based on custom fields (key/value set should be semicolon separated)
Defines whether custom fields should be retrieved or not (via List/Get APIs)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The unique identifier of the payment
The payment’s code
Details about the related type
The type identifier
The type name
Details about the related contact
The contact identifier
The contact full name
The contact unique code
The life cycle state of the financial transaction
The date that the financial transaction was issued
The date that the financial transaction was posted
The amount of the financial transaction
The payment’s currency
The type of the event
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
The custom field’s unique key
The custom field’s value
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/payments?contact_id=4AD9C84FA60F9FE407140E20F707726A HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "3DD1E31269B76D7A65ACCE45B2E68DFD",
"code": "6564443456760009",
"type": {
"id": "c01ecd1b-ff1e-35c2-7236-59ae20339c78",
"name": "Internal Transaction"
},
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"life_cycle_state": "REJECTED",
"issued_date": 1583846865,
"posted_date": 1583846865,
"amount": 150.5,
"currency": "EUR",
"payment_method": "ACCOUNT_DEBIT",
"organisation": {
"id": "4248fab3-67d5-2eb1-eaf6-079ce18cd2ed",
"name": "Bravo Coffee"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Get detailed information of a Payment
Path variables
The unique identifier of the to be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The unique idnetifier of the payment
The payment’s unique code
Details about the related type
The type identifier
The type name
Details about the related contact
The contact identifier
The contact full name
The contact unique code
Details about the related contact’s account
The account identifier
The account name
The account unique number
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
The life cycle state of the financial transaction
The date that the financial transaction was issued
The date that the financial transaction was posted
The amount of the financial transaction
The payment’s currency
The type of the event
Any notes of the financial transaction
The type of the event
The unique identifier of the contact’s payment method
A short description of the payment method. Depending on the payment method’s type different informaiton is returned:
- Card: the brand, followed by the last 4 digits of the card plus expiration month/year
- Account debit: Name: Bank code followed by the first 5 and the last 9 digits of the account number/IBAN
- Wallet: Name: Email and/or phone used on registration
The information of the financial transactions to be paid by the Payment
The unique ID of the Financial Transaction
The number of the Financial Transaction
The reference number of the Financial Transaction
The posted date of the Financial Transaction
The due date of the Financial Transaction
The total amount of the financial transaction
An array of reference numbers of external debits to be paid.
The custom field’s unique key
The custom field’s value
GET https://sandbox.crm.com/backoffice/v1/payments/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "2AD1E31269B76D7A65ACCE45B2E68DFD",
"code": "4533340009897776",
"type": {
"id": "c01ecd1b-ff1e-35c2-7236-59ae20339c78",
"name": "Internal Transaction"
},
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"account": {
"id": "8a025412-ec13-550a-4d82-6aef6562ac49",
"name": "ACR1234 John Doe",
"number": "AC123456"
},
"organisation": {
"id": "4248fab3-67d5-2eb1-eaf6-079ce18cd2ed",
"name": "Bravo Coffee"
},
"life_cycle_state": "POSTED",
"issued_date": 1583846865,
"posted_date": 1583846865,
"amount": 150,
"currency": "",
"payment_method": "ACCOUNT_DEBIT",
"notes": "",
"payment_method_details": {
"id": "",
"identifier": "Visa *****1234"
},
"financial_transactions_payable": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "INV123456",
"reference_number": "123456",
"posted_date": 1583846865,
"due_date": 1583846865,
"total_amount": 100.5
}
],
"external_transactions_payable": [
"INV0123456"
],
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
{id}{id}Create a new Payout financial transaction
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The Payout’s code. If not specified, then a unique and random 16-digit code will be assigned.
The account on which the financial transaction will be posted against to
The amount of the payment
The contact’s payment source to which money will be transferred to as part of the payout. Only Card and Account Debit payment methods can be selected since the payout retrns money back to the customer’s bank account.
The unique identifier of the financial transaction type. If not specified, then the default Payout fianncial trasnaction type will be automatically set.
The life cycle state of the financial transaction
The issued date of the financial transaction. Defaults to current date.
The posted date of the financial transaction. Automatically set on posting the transaction
Any notes related to the financial transaction
The reason why the payout was issued
Responses
Successful Request
Body
The unique identifier of the financial transaction
POST https://sandbox.crm.com/backoffice/v1/payouts HTTP/1.1
Content-Type: application/json
{
"code": "9994440593230796",
"account_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"amount": 200,
"payment_method_type": "ACCOUNT_DEBIT",
"payment_method_id": "",
"type_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"life_cycle_state": "PENDING",
"issued_date": 1583846865,
"posted_date": 1583846865,
"notes": "",
"issue_reason": "Refund money"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}Update a Draft Payout financial transaction
Path variables
The id of the Payout to be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The unique identifier of the financial transaction id
The issued date of the financial transaction. Defaults to current date.
The posted date of the financial transaction.
The amount of the payout
Any notes related to the financial transaction
The life cycle state of the financial transaction
The contact’s payment source to which money will be transferred to as part of the payout. Only Card and Account Debit payment methods can be selected since the payout retrns money back to the customer’s bank account.
The reason why the refund was created
Responses
Successful Request
Body
The unique identifier of the financial transaction
PUT https://sandbox.crm.com/backoffice/v1/payouts/{id} HTTP/1.1
Content-Type: application/json
{
"type_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"issued_date": 1583846865,
"posted_date": 1583846865,
"amount": 200,
"notes": "",
"life_cycle_state": "POSTED",
"payment_method_id": "",
"issue_reason": "Refund Money",
"payment_method_type": "CHEQUE"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}List all the available Payouts
Request parameters
The unique ID of the contact whose Payouts belong to
The unique ID of the account whose Refunds belong to
The life cycle state of the Refunds to be retrieved
The value of the search based on the code
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The Payout’s unique and random code
Details about the related type
The type identifier
The type name
Details about the related contact
The contact identifier
The contact full name
The contact unique code
Details about the related contact’s account
The account identifier
The account name
The account unique number
The life cycle state of the financial transaction
The date that the financial transaction was issued
The date that the financial transaction was posted
The amount of the financial transaction
The refund transaction’s currency
Indicates the method of refunding the account
The contact’s payment method unique identifier
An identifier that briefly describes the contact’s payment method (The last 4 digits for cards, the email for Paypal accounts or the wallet number
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/payuts HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"code": "4545556668909878",
"type": {
"id": "c01ecd1b-ff1e-35c2-7236-59ae20339c78",
"name": "Internal Transaction"
},
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"account": {
"id": "8a025412-ec13-550a-4d82-6aef6562ac49",
"name": "ACR1234 John Doe",
"number": "AC123456"
},
"life_cycle_state": "REJECTED",
"issued_date": 1583846865,
"posted_date": 1583846865,
"amount": 150.5,
"currency": "EUR",
"payment_method_type": "CARD",
"payment_method": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"identifier": "****** 1212"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Get a Payout
Path variables
The id of the financial transaction to be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The financial transaction code
Details about the related type
The type identifier
The type name
Details about the related contact
The contact identifier
The contact full name
The contact unique code
Details about the related contact’s account
The account identifier
The account name
The account unique number
The life cycle state of the financial transaction
The date that the financial transaction was issued
The date that the financial transaction was posted
The amount of the financial transaction
The refund transaction’s currency
Indicates the method of refunding the account
Payment Method Details
The contact’s payment method unique identifier
An identifier that briefly describes the contact’s payment method (The last 4 digits for cards, the email for Paypal accounts or the wallet number
The reason why the refund was created
Any notes of the financial transaction
GET https://sandbox.crm.com/backoffice/v1/payouts/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"code": "44400059654543322",
"type": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Refund"
},
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"account": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "AC123456"
},
"life_cycle_state": "REJECTED",
"issued_date": 1583846865,
"posted_date": 1583846865,
"amount": 150.5,
"currency": "EUR",
"payment_method_type": "CARD",
"payment_method": {
"id": "",
"name": "",
"identifier": "****** 1212"
},
"issue_reason": "Refund Money",
"notes": ""
}
{id}{id}/actions{id}Create a new Refund financial transaction
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The unique identifier of the financial transaction id
The amount of the payment. If not specified then it defaults to the payments amount. The amount should be less than or equal to the refunded entity’s amount
The entity based on which the refund will be issued
The type of the event
The unique identifier of the refunded entity
Indicates the method of refunding the account
The contact’s payment method that will be refunded. If not specifed, then the payment method of the payment will be refunded by default.
The issued date of the financial transaction. Defaults to current date.
The posted date of the financial transaction. Defaults to current date
The life cycle state of the financial transaction
Any notes related to the financial transaction
The reason why the refunds was created
The custom field’s unique key
The custom field’s value
Responses
Successful Request
Body
The unique identifier of the financial transaction
POST https://sandbox.crm.com/backoffice/v1/refunds HTTP/1.1
Content-Type: application/json
{
"account_id": "",
"type_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"code": "",
"amount": 9.99,
"refunded_entity": {
"type": "PAYMENT",
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
},
"payment_method": "CASH",
"payment_method_id": "",
"issued_date": 1583846865,
"posted_date": 1583846865,
"life_cycle_state": "DRAFT",
"notes": "",
"issue_reason": "Refund money",
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}Update a Draft Refund financial transaction
Path variables
The id of the Refund to be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The unique identifier of the financial transaction type id
The amount of the payment
Indicates the method of refunding the account
The payment method of the contact to which the amount will be refnded to.
The issued date of the financial transaction. Defaults to current date.
The posted date of the financial transaction. Defaults to current date
Any notes related to the financial transaction
The life cycle state of the financial transaction
The reason why the refund was created
The custom field’s unique key
The custom field’s value
Responses
Successful Request
Body
The unique identifier of the financial transaction
PUT https://sandbox.crm.com/backoffice/v1/refunds/{id} HTTP/1.1
Content-Type: application/json
{
"type_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"amount": 200,
"payment_method": "WALLET",
"payment_method_id": "",
"issued_date": 1583846865,
"posted_date": 1583846865,
"notes": "",
"life_cycle_state": "REJECTED",
"issue_reason": "Refund Money",
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}/actionsPerform actions on an existing Refund
Path variables
The unique identification of the refund that the actions will be performed against to
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The action to be performed on the Refund
The refund available to provide any information on the performed action
Responses
Successful Request
Body
The unique identifier of the refund
POST https://devapi.crm.com/backoffice/v1/refunds/CAD1E31269B76D7A65ACCE45B2E68DFD/actions HTTP/1.1
Content-Type: application/json
{
"action": "REJECT"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}List all the available Refunds
Request parameters
The unique ID of the contact whose Refunds belong to
The unique ID of the account whose Refunds belong to
The life cycle state of the Refunds to be retrieved
The value of the search using the code
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Filters based on custom fields (key/value set should be semicolon separated)
Defines whether custom fields should be retrieved or not (via List/Get APIs)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The financial transaction number
Details about the related type
The type identifier
The type name
Details about the related contact
The contact identifier
The contact full name
The contact unique code
Details about the related contact’s account
The account identifier
The account name
The account unique number
The life cycle state of the financial transaction
The date that the financial transaction was issued
The date that the financial transaction was posted
The amount of the financial transaction
The refund transaction’s currency
Indicates the method of refunding the account
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
The custom field’s unique key
The custom field’s value
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/refunds HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"code": "INV0001",
"type": {
"id": "c01ecd1b-ff1e-35c2-7236-59ae20339c78",
"name": "Internal Transaction"
},
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"account": {
"id": "8a025412-ec13-550a-4d82-6aef6562ac49",
"name": "ACR1234 John Doe",
"number": "AC123456"
},
"life_cycle_state": "DRAFT",
"issued_date": 1583846865,
"posted_date": 1583846865,
"amount": 150.5,
"currency": "EUR",
"payment_method_type": "CASH",
"organisation": {
"id": "4248fab3-67d5-2eb1-eaf6-079ce18cd2ed",
"name": "Bravo Coffee"
},
"payment_method": {
"id": "",
"identifier": ""
},
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Get a Refund
Path variables
The id of the financial transaction to be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The financial transaction code
Details about the related type
The type identifier
The type name
Details about the related contact
The contact identifier
The contact full name
The contact unique code
Details about the related contact’s account
The account identifier
The account name
The account unique number
The life cycle state of the financial transaction
The date that the financial transaction was issued
The date that the financial transaction was posted
The amount of the financial transaction
The refund transaction’s currency
Indicates the method of refunding the account
Payment Method Details
The contact’s payment method unique identifier
An identifier that briefly describes the contact’s payment method (The last 4 digits for cards, the email for Paypal accounts or the wallet number
The reason why the refund was created
Any notes of the financial transaction
The custom field’s unique key
The custom field’s value
GET https://sandbox.crm.com/backoffice/v1/refunds/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"code": "44400059654543322",
"type": {
"id": "c01ecd1b-ff1e-35c2-7236-59ae20339c78",
"name": "Internal Transaction"
},
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"account": {
"id": "8a025412-ec13-550a-4d82-6aef6562ac49",
"name": "ACR1234 John Doe",
"number": "AC123456"
},
"life_cycle_state": "POSTED",
"issued_date": 1583846865,
"posted_date": 1583846865,
"amount": 150.5,
"currency": "EUR",
"payment_method_type": "CARD",
"payment_method": {
"id": "",
"identifier": "****** 1212"
},
"issue_reason": "Refund Money",
"notes": "",
"payment": {
"id": "",
"code": ""
},
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
{id}{id}{id}{id}/actions{id}/logsCreates a new Integration point between CRM.COM and a 3rd party tool
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
A name for the new integration
The 3rd party tool to integrate with
Defines the plugin type (release based or custom)
The implementation’s endpoint
A description for the integration point
Defines if integration is enabled or not (defaults to True)
A set of parameters required for successfully integrating with the 3rd party tool. At least one is required.
The name of the parameter
The value of the parameter
The parameter’s label
The parameter’s type
Defines whether the parameter is plugin related or not
Details about an array of mapped values between the internal (CRM) and external (integrator) systems
The mapped external reference
The mapped value
The (custom) headers that will be used as part of this integration
The header key
The header value
Responses
Body
The integration identifier
POST https://devapi.crm.com/backoffice/v1/integrations/ HTTP/1.1
Content-Type: application/json
{
"name": "Basic marketing tool",
"connector": "MAILCHIMP",
"endpoint": "crm.com/marketing",
"description": "Utilise marketing tool",
"enabled": "true",
"parameters": [
{
"key": "API_key",
"value": "abc-123-dfe-22111",
"label": "API Key",
"type": "STRING"
}
]
}{id}Updates an existing integration
Path variables
The integration (identifier) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The integration name
A description for the integration point
Defines if integration is enabled or not.
A set of parameters required for successfully integrating with the 3rd party tool. At least one is required.
The name of the parameter
The value of the parameter
The parameter’s label
The parameter’s type
Defines whether the parameter is plugin related or not
Details about an array of mapped values between the internal (CRM) and external (integrator) systems
The mapped external reference
The mapped value
The (custom) headers that will be used as part of this integration
The header key
The header value
Responses
Body
The integration identifier
PUT https://devapi.crm.com/backoffice/v1/integrations/87A08449A8784063814398C104452B27 HTTP/1.1
Content-Type: application/json
{
"name": "Basic marketing tool",
"endpoint": "",
"description": "Utilise marketing tool",
"enabled": "true",
"parameters": [
{
"key": "",
"value": "",
"label": "",
"type": "NUMBER"
}
]
}{id}Removes an existing Integration
Path variables
The integration (identifier) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Responses
DELETE https://sandbox.crm.com/backoffice/v1/integrations/87A08449A8784063814398C104452B27 HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK Retireves a list of configured integration points between CRM.COM and 3rd party tools (enabled or not)
Request parameters
List integration for specific connector
Filters based on integration type
If set, retrieve the integrations of the business as usual but if the business does not have configured or enable an integration and its service owner does it returns the integration of the service owner
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The integration identifier
The integration name
The integration description
The integration connector
The implementation’s endpoint
Defines whether the integration is enabled or not
The media URL for the integration logo (applicable only for PLUGIN types)
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/integrations/ HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "8b724e8a-26a0-4c70-a959-b87d6acf8b50",
"name": "Twinsoft",
"description": "Twinsoft POS Integration",
"connector": "TWINSOFT",
"integrationType": "POINTS_OF_SALE",
"enabled": true
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Retrieve details for a specific integration
Path variables
The integration (identifier) for which details will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The integration’s identifier
The integration’s name
The integration’s description
The 3rd party tool to integrate with
The implementation’s endpoint
Defines whether the integration is enabled or not
A list of parameters required for the integration
The name of the parameter
The value of the parameter
The parameter’s label
The parameter’s type
Defines whether the parameter is plugin related or not
Details about an array of mapped values between the internal (CRM) and external (integrator) systems
The mapped CRM external reference
The mapped integrator value
The media URL for the integration logo (applicable only for PLUGIN types)
The media (logo) URL for the integration logo (applicable only for PLUGIN types)
The (custom) headers that will be used as part of this integration
The header key
The header value
GET https://sandbox.crm.com/backoffice/v1/integrations/87A08449A8784063814398C104452B27 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "F8F8E9DA009A4B70BCEEB113B183456D",
"name": "Marketing tool",
"description": "Default marketing tool used for forwarding email campaigns",
"connector": "SETTLE",
"integration_type": "PAYMENT_GATEWAYS",
"enabled": "true",
"parameters": [
{
"key": "API_Key",
"value": "123458449A8784063814398C104452B27",
"label": "API Key",
"type": "STRING",
"is_plugin": "true",
"is_read_only": "true",
"values": [
{
"external_reference": "201f2adb-174e-50d8-d0aa-f431711c8079",
"value": "12"
}
]
}
],
"media_url": "crm.com/provider.png",
"logo_media_url": "crm.com/logo-provider.png"
}
{id}/actionsUpdates a single integration based on the preferred action
Path variables
The integration (identifier) that a new API Key will be generated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The action that will be applied on the integration
Generate a new API Key for the integration
Responses
Body
The integration identifier
POST https://sandbox.crm.com/backoffice/v1/integrations/6346ff58-3691-05c9-513e-f996299a9186/actions HTTP/1.1
Content-Type: application/json
api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
{
"action": "API_KEY"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "dad569a1-b5c0-eae2-4659-1753df6a8b7f"
}{id}/logsSearch and retrieve requests sent to an Integrator
Path variables
The integration (identifier) of which logs should be retrieved
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Filter based on the request state
Filter based on contact
Filter based on subscription
Filter based on user
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The integration request unique identifier
The state of the integration request
The date that such request was made
A code that describes the request
The request body that was sent
The response that was sent
The contact that owns the subscription
The contact’s identifier
The contact’s name
The contact’s code
The user who performed the event
The unique identifier of the user
The user’s person name
The user’s email address
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/integrations/{id}/logs HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "API1E31269B76D7A65ACCE45B2E68DFD",
"state": "FAILED",
"date": 1596093272,
"request_code": "",
"body": "POST /crm.com/delivery HTTP/1.1 Host: staging.crm.com Content-Type: application/json api_key: 123456789012-1234-1234-1234-123456789012 Content-Type: text/plain { \"contact_id\": \"123456789012-ABCD-ABCD-ABCD-123456789012\", \"amount\": 20.45 }",
"response": "{ \"status\": { \"code\": \"COM.CRM.EXCEPTION.INVALIDTOKENEXCEPTION\", \"description\": \"The specific token is not valid.\", \"message\": \"The token is invalid, please obtain a new one.\" } }",
"contact": {
"id": "API1E31269B76D7A65ACCE45B2E68WIH",
"name": "John Smith",
"code": "18235"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/user_profilesReturns a list of Cohorts configured in Mixpanel. Any Cohort will then be available to be imported in CRM.COM as a segment
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The cohort identifier
The cohor name
The cohor description
The number of cohors
The cohor created date
GET https://stagingapi.crm.com/backoffice/v1/cohorts HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content":[
{
"id": "",
"name": "Great buyers",
"description": "Customers with moe then £500 purchases during the last month",
"count": 159,
"created_date": 332222331111
}
]
}{id}/user_profilesCreates a new segment within CRM.COM that includes all user profiles of a Mixpanel cohort. A single segment can be created per Web API call.
Path variables
The Mixpanel Cohort (identifier) whose user profiles will be included in the segment
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The segment identifier
POST https://sandbox.crm.com/backoffice/v1/cohorts/aef5b1c2-d407-e018-6563-d5dfa17870fb/user_profiles HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "87A08449A8784063814398C104452B27"
}Create a new segment in Mailchimp based on a CRM.COM segment
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The segment’s identifier
Responses
POST https://sandbox.crm.com/backoffice/v1/lists HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"id": "87A08449A8784063814398C104452B27"
}
HTTP/1.1 200 OK Returns a list of addresses based on the external address registry systems that CRM.COM integrates with
Request parameters
The address registry that lookup will be performed
The address that lookup will be performed against (address and latlng are semi-optional)
The lat and lng coordinates that lookup will be performed against (address and latlng are semi-optional)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Information about the retrieved address lookups
The full address as returned by the address registry
The address information
Additional address information about the address
The state/province/county of the address
The town/city of the address
The postal code of the address
The country code of the address
The latitude of the address
The longitude of the address
The Google textual identifier that uniquely identifies a location
The Google types that will be retrieved
GET https://sandbox.crm.com/backoffice/v1/addresses?address=The address that lookup will be performed against HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"address": "Elia Papakyriakou, Egkomi, 2415, Nicosia, Cyprus",
"address_line_1": "Elia Papakyriakou 21",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2415",
"country_code": "CY",
"lan": 12.98,
"lon": 22.98,
"googlePlaceId": "ad23rwef2323f23f2f",
"types": [
"Accounting"
]
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"address": "Elia Papakyriakou, Egkomi, 2415, Nicosia, Cyprus",
"address_line_1": "Elia Papakyriakou 21",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2415",
"country_code": "CY",
"lan": 12.98,
"lon": 22.98,
"googlePlaceId": "ad23rwef2323f23f2f",
"types": [
"Accounting"
]
}
]
}
Retrieve a list of Integrated Receiver/Decoder (IRD) commands (of a device) as implemented in a provisoning adapter. Either the provisioning adapter’s unique identifier must be specified or the external reference (usually the serial number) of the device
Request parameters
The unique identifier of the provisioning provider’s plugin
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The name of the command
The label of the command as this wll be displayed in the UI
A unique code of the command. Value varies according to the implemented IRD commands per provisioning provider.
A description of the command that can be used as tooltip in the UI
Lis tof extra information that might be required to be prvided as int when sending the command to the provider
A unique key
The label of the parameter as this will be displaye din the UI
A description of the reuired parameter
The parameter’s field type used for UI purposes
Indicates whether the parameter is mandatory to send the cmmand successfully
GET https://sandbox.crm.com/backoffice/v1/provisioning/ird_commands HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"name": "Reset PIN",
"label": "Reset Device PIN",
"code": "RESET_PIN",
"description": "Resets the PIN to a given value",
"metadata_attributes": [
{
"key": "pin",
"label": "PIN",
"description": "the new pin",
"field": "SELECTION",
"is_mandatory": true
}
]
}
]
}
Send an Integrated Receiver/Decoder (IRD) command for a device over to the provisoning adapter. The supported commands as well as detailed information on how to call them such as the required input paramters, can be retrieved from the plugin integration via the GET provisionig/ird_commands Web API.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Contact information.
Unique contatc identifier
Contact code
The contact’s state on CRM.COm side. This state determines if the contact still has active or inactive or cancelled services once the event is performed.
Contact full name
Subscription Information
Subscription identifier
Subscription code
The external reference of the device to which the IRD command will be sent such as its serial number
The IRD command’s unique code as this is implemented by the provisioning plugin
The device’s location. Required only when sending a command related to the device’s physical locatin/region.
A list of extra paramters (apart from the external reference) that are required to successfully send the command. Mandatory input paramters msut be specified, otherwise default values set up in Provisioning Providers configuration will be used
The parameter’s key
The parameter’s value
Responses
POST https://sandbox.crm.com/backoffice/v1/provisioning/ird_commands HTTP/1.1
Content-Type: application/json
{
"contact": {
"id": "-",
"code": "5454666678780009",
"state": "ACTIVE",
"name": "John Smith"
},
"subscription": {
"id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"code": "5454666678780009"
},
"external_reference": "STB00013929322",
"code": "RESET_PIN",
"device_location": "master room",
"metadata_attributes": [
{
"key": "pin",
"value": "1234"
}
]
}
HTTP/1.1 200 OK
Retrieve a list of service commands as implemented in a provisoning adapter. The provisioning adapter’s unique identifier must be specified
Request parameters
The unique identifier of the provisioning provider’s plugin
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The name of the command
The label of the command as this wll be displayed in the UI
A unique code of the command. Value varies according to the implemented IRD commands per provisioning provider.
A description of the command that can be used as tooltip in the UI
List of extra information that might be required to be provided when sending the command to the provider
A unique key
The label of the parameter as this will be displaye din the UI
A description of the reuired parameter
The parameter’s field type used for UI purposes
Indicates whether the parameter is mandatory to send the cmmand successfully
GET https://sandbox.crm.com/backoffice/v1/provisioning/service_commands HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"name": "Reset Service",
"label": "Reset Service",
"code": "RESET_SERVICE",
"description": "Resets the service",
"metadata_attributes": [
{
"key": "pin",
"label": "PIN",
"description": "the new pin",
"field": "TEXT",
"is_mandatory": true
}
]
}
]
}
Send a command for a service over to the provisioning provider integration. The supported commands as well as detailed information on how to call them such as the required input paramters, can be retrieved from the plugin integration via the GET provisioning/service_commands Web API.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The unique identifier of the provisioning provider integration
The service for which the command will be sent
The command’s code as this was provided by the integration
Contact who subscribed to the service
Contact identifier
Contact code
Contatc name
A list of extra parameters (apart from the external reference) that are required to successfully send the command. Get Service Commands Web API indicates which are there paramteres and which ones are also mandatory
The parameter’s key
The parameter’s value
Responses
POST https://sandbox.crm.com/backoffice/v1/provisioning/service_commands HTTP/1.1
Content-Type: application/json
{
"integration_id": "",
"service_id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"code": "RESET_SERVICE",
"contact": {
"id": "",
"code": "A0111012",
"name": "John Smith"
},
"metadata_attributes": [
{
"key": "pin",
"value": "1234"
}
]
}
HTTP/1.1 200 OK Send an Integrated Receiver/Decoder (IRD) command to a group of devices over to the provisoning adapter. The supported commands as well as detailed information on how to call them such as the required input paramters, can be retrieved from the plugin integration via the GET provisioning/ird_commands Web API.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The external reference of the device to which the IRD command will be sent such as its serial number
The IRD command’s unique code as this is implemented by the provisioning plugin
A list of extra paramters (apart from the external reference) that are required to successfully send the command. Mandatory input paramters msut be specified, otherwise default values set up in Provisioning Providers configuration will be used
The parameter’s key
The parameter’s value
A list of contact unique identifiers. The IRD commad is sent to all devices owned/rented by the specified contacts
A list of service product identifiers. The IRD command will be sent to the devices on whicch at least one of the specified service is enabled on.
A list of physical good products (the product of a device). The IRD command is sent only to devices whose product is one of the specified ones
A list of devices external references (e.g. device serial number). Only the specified devices will receive the IRD command
Responses
POST https://sandbox.crm.com/backoffice/v1/provisioning/ird_commands HTTP/1.1
Content-Type: application/json
{
"external_reference": "STB00013929322",
"code": "RESET_PIN",
"device_location": "master room",
"metadata_attributes": [
{
"key": "pin",
"value": "1234"
}
]
}
HTTP/1.1 201 Created Retrieves a list of configured Payment Gateway integration points between CRM.COM (enabled). Only integrations of type Paymet Gateways are retrieved
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The integration identifier
The integration name
The integration description
The integration connector
The implementation’s endpoint
Defines whether the integration is enabled or not
The media URL for the integration logo (applicable only for PLUGIN types)
Required paymentmethod details per allowed pament method type
The bank details.Required and applicable if the payment method is set to BANK
IBAN code
Account name
Account Numer
Bank name
Bank code
Branch name
Account type (Savings, Chekings)
roadmap
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/payment_gateways HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "8b724e8a-26a0-4c70-a959-b87d6acf8b50",
"name": "PayPal",
"description": "PayPal payment gateway",
"connector": "PLUGIN",
"integration_type": "PAYMENT_GATEWAYS",
"enabled": true,
"media_url": "crm.com/provider.png",
"classifications": [
"PAYMENTS"
],
"payment_method_types": [
"CARD"
],
"details": {
"account_debit": [
"SWIFT"
],
"card": "",
"wallet": [
"PHONE"
]
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Creates a new warehouse transaction
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Moves items to the warehouse
Removes items from warehouse
Used to adjust the stock in the warehouse
The warehouse transaction’s code. If not specified, then a unique and random 16-digit code is assigned
The supplier of the products (applicable for stock in transactions)
A description for the warehouse transaction
The ID of the contact the device is sold/rented to. Applicable only for Stock out transactions
The organisation (identifier) that items are sold/rented
The unique identifier of the initiating entity
The items to be included in the warehouse transaction
The product ID of the warehouse transaction item. Only stockable physical goods can be specified (traceable or not)
The quantity to stock in or stock out. Required for non-traceable physical goods. For traceable physical goods the quantity is calculated based on th enumber of device serial numbers
The cost per unit (applicable only for stock in transaction)
Defines how the stock balance will be adjusted by this transaction. Applicable only for Stock Adjustments.
Stock will be increased
Stock will be decreased
Responses
The request has succeeded
Body
The warehouse transaction identifier
POST https://sandbox.crm.com/backoffice/v1/warehouse_transactions HTTP/1.1
Content-Type: application/json
{
"type": "STOCK_IN",
"warehouse_id": "6A24D2B5E44F44B28451FE021FCAD51E",
"code": "5467778889098987",
"supplier": "AluxSat Provider",
"description": "A stock in transaction to import modems",
"contact_id": "6A24D2B5E44F44B28451FE021FCAD51E",
"order_id": "JHDKJHSDKJHSKJH",
"retailer_id": "6A24D2B5E44F44B28451FE021FCAD51E",
"initiated_by": {
"entity": "CREDIT_NOTE",
"entity_id": ""
},
"items": [
{
"product_id": "6A24D2B5E44F44B28451FE021FCAD51E",
"quantity": 10,
"unit_cost": 10.5,
"adjust_type": "+",
"item_id": ""
}
]
}
Search for warehouse transactions. Transactions of a single warehouse can be retreived.
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
The value of the search. Warehouse transactions can be found using their code
The ID of the product
Unique identifier of the product type. If specified, then retrieve all warehouse transactions that include products of the specified product type
The warehouse transaction date(s)
The warehouse transaction’s type
The user who performed the warehouse transaction
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The warehouse transaction identifier
The warehouse transaction’s code. By default, warehouse transactions have a unique and random 16-digit code
A description for the warehouse transaction
Moves items to the warehouse
Removes items from warehouse
Used to adjust the stock in the warehouse
Number of items (products) moved through the warehouse transaction
The date on which the warehouse transaction was performed
The user identifier
The user full name
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/warehouse_transactions HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "6A24D2B5E44F44345651FE021FCAD51E",
"code": "4345600003321234",
"description": "A stock in transaction to import modems",
"type": "STOCK_IN",
"number_of_items": 1000,
"performed_date": 1618857652,
"performed_by": {
"id": "6A24D2B5E44F44345651FE021FCAD51E",
"name": "Jane Smith"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Get details for a specific warehouse transaction.
Path variables
The ID of the warehouse transaction to be retrieved
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Responses
The request has succeeded
Body
The warehouse transaction identifier
The warehouse transaction’s code. By default, this is a unique and random 16-digit code
The warehouse transaction’s description
The name of the supplier. Applicable only for Stock In transactions
Moves items to the warehouse
Removes items from warehouse
Used to adjust the stock in the warehouse
The total cost of the warehouse transaction
The twarehose transaction’s currency
The date on which the warehouse transaction was performed
The user identifier
The user full name
Details about the related contact
The contact identifier
The contact full name
The contact unique code
The retailer’s unique identifier
The retailer’s name
The list of items included in the warehouse transaction
The product identifier
The product SKU code
The product name
The products’ quantity. Applicable for Stock In and Stock Out transactions
The unit cost per product. Applicable for Stock In and Stock Out transactions
The total cost per warehouse transaction item. Applicable for Stock In and Stock Out transactions
Applicable only for Stock Adjustments. Indicates whether the specified products are added or removed from the warehouse’s stock balance
The entity that triggered the warehouse transaction
The unique identifier of the entity
The number of the entity
GET https://sandbox.crm.com/backoffice/v1/warehouse_transactions/6A24D2B5E44F44B28451FE021FCAD51E HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "34545E44F44B28451FE021FCAD51E",
"code": "434000321934812",
"description": "Stock in HD Receivers April 2021",
"supplier": "AluxSat Provider",
"type": "STOCK_IN",
"total_cost": 99.99,
"currency": "EUR",
"performed_date": 1618859668,
"performed_by": {
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "Maria Smith"
},
"warehouse": {
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "Nicosia headquarters"
},
"contact": {
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"code": "C0000102",
"name": "John Smith"
},
"retailer": {
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "SmartCom Co."
},
"items": [
{
"product": {
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"sku": "HDRECEIVER",
"name": "HD Receiver"
},
"quantity": 10,
"unit_cost": 10.99,
"total_cost": 109.9,
"adjust_type": "+"
}
],
"initiated_by": {
"entity": "ORDER",
"entity_id": "",
"entity_number": ""
}
}
Retrieves the stock balance
Request parameters
The product for which the stock will be retrieved
The product family for which the stock will be retrieved
The product type for which the stock will be retrieved
Filter based on whether products to be retrieved should be traceable or not
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The ID of the product
The sku of the product
The name of the product
Defines whether the product is traceable
Applicable only for Composite products. Defines the number of variant products also available in stock
Applicable only for variant products as it shpws the composite product
Defines the quantity of products that exist in the warehouse
Defines the latest cost per unit sold on most recent invoice
Defines the average cost per unit
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/stock HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"warehouse": {
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "",
"owned_by": {
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "ORGANISATION"
}
},
"stock_information": {
"product": {
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"sku": "sku",
"name": "Set-top-box",
"is_traceable": "true"
},
"stock_balance": 100,
"latest_cost_per_unit": 9.99,
"average_cost_per_unit": 3.99,
"currency": "EUR"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}{id}{id}{id}/queue_statuses{id}/pipeline_stage{id}/actions{id}Create a new lead
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
A unique title for the lead
The lead pipeline unique id.
The unique id of the current pipeline stage the lead is at.
A description of the lead.
The potential value of the lead if it’s won.
The currency of the lead value (could be in the lead’s currency)
The expected closing date for the lead.
The user identifier
The team identifier
to be replaced by owner
The custom field’s unique key
The custom field’s value
Examples
Responses
The request has succeeded
Body
The lead identifier
POST https://sandbox.crm.com/backoffice/v1/leads HTTP/1.1
Content-Type: application/json
{
"title": "Watch It - new subscriptions lead (London)",
"pipeline_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"pipeline_stage_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"description": "The client has an existing software but is looking for a better solution due to expansion.",
"value": 10000,
"currency_code": "GBP",
"expected_close_date": 98765342,
"assign_to": {
"user_id": "1edef819-0a1d-4d41-9d2a-d4bbc2ddbedf",
"team_id": "a43f08ca-998b-afbc-6ed4-c9dc2d136935"
},
"owner_id": "",
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
{id}Update the information for a lead.
Path variables
The GUID of the lead to be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The unique title of the lead
A brief description of the lead.
The GUID of the contact linked to the Lead (optional)
The potential value of the lead if it’s won.
The currency of the value of the lead (could be in the lead’s currency)
The expected closing date for the lead.
The GUID of lead owner, must be a system user.
The user identifier
The team identifier
The custom field’s unique key
The custom field’s value
Examples
Responses
Body
The lead identifier
PUT https://sandbox.crm.com/backoffice/v1/leads/HPA1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
Content-Type: application/json
{
"title": "Baker's Group of Companies - rewards lead",
"description": "The customer is keen to implement the rewards software in time for their opening.",
"contact_id": "14B48204E5B44589AE99CC351BC46A2A",
"value": 10000,
"currency_code": "GBP",
"expected_close_date": 98765342,
"owner_id": "M121E31269B76D7A65ACCE45B2E68DFD"
}{id}Delete a single lead
Path variables
The GUID of the lead to be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/leads/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1
HTTP/1.1 200 OK Retrieve all leads
Request parameters
The page number that should be retrieved
The size (total records) of each page
Defines the attribute to be used for sorting the results
Search for a lead using Title, Organisation, Contact person’s name
The lead pipeline GUID (to view leads)
The pipeline stage GUID (so that filtering can be performed using pipeline stage)
Filter leads based on status - comma separated (OPEN, WON, LOST)
Filter by expected closing date of the lead
Returns results where the expected closing date is greater than this value
Returns results where the expected closing date is greater than or equal to this value
Returns results where the expected closing date is less than this value
Returns results where the expected closing date is less then or equal to this value
Display those leads whose expected closing date has passed, but still have a status of OPEN.
The GUID of the Contact associated to the Lead (if it exists)
The ids of the tags to filter by.
Filter by unique owner (user) id.
Filters based on specific assign to user
Filters based on specific assign to team
Filters based on custom fields (key/value set should be semicolon separated)
Defines whether custom fields should be retrieved or not (via List/Get APIs)
Defines whether tags fields should be retrieved or not (via List/Get APIs)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The lead unique identifier
The title of the lead
The status of the lead (OPEN, WON, LOST)
Lead pipeline information
The lead pipeline id
The lead pipeline name
Current lead pipeline stage information
The current pipeline stage unique id
The name of the current pipeline stage the lead is at
A brief description of the lead
Details of the contact linked to the lead (if it exists)
The GUID of the Contact linked to the Lead (if a Contact link exists)
The name of the contact linked to the lead (only if contact id exists)
The potential value of the lead if it’s won
The expected closing date of the lead
Reason for losing the lead. Availble only if the lead status is LOST.
The lost reason unique id
Lost lead reason
Details about the user that the record is assigned to
The user identifier
The user name
The username of the user
Details about the team that the record is assigned to
The team identifier
The team name
The custom field’s unique key
The custom field’s value
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/leads HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "LEM1E31269B76D7A65ACCE45B2E68DFD",
"title": "Burger Time Restaurants (chain)",
"status": "OPEN",
"pipeline": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "New large-scale business rewards lead"
},
"pipeline_stage": {
"id": "KVX1E31269B76D7A65ACCE45B2E68DFD",
"name": "Proposal submitted"
},
"description": "Lead was referred by our client Baker's Dozen",
"contact": {
"id": "14B48204E5B44589AE99CC351BC46A2A",
"name": "John Smith"
},
"value": 15000,
"expected_close_date": 98765342,
"lost_reason": {
"id": "LLO1E31269B76D7A65ACCE45B2E68DFD",
"reason": "Lost to competitor"
},
"assign_to": {
"user": {
"id": "47ac694d-6281-b873-bf46-3fd8da334a3a",
"name": "John Doe",
"username": "j_doe@crm.com"
},
"team": {
"id": "bf1370a1-73ad-0bbf-6fef-f2ce1938d4fe",
"name": "Support"
}
},
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Retrieve the information for a specific lead.
Path variables
The lead identifier (GUID) of the lead to be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The lead GUID
The title of the lead, mandatory and unique.
The status of the lead (OPEN, WON, LOST)
The lead pipeline information
The lead pipeline id
The pipeline name
The unique id of the current pipeline stage the lead is in
A brief description of the lead
Details of the Contact linked to the Lead (if avaialble)
GUID of Contact
Contact name
Contact surname
The potential value of the lead if it’s won
The expected closing date of the lead
The reason for losing the lead
Details about the user that the record is assigned to
The user identifier
The user name
The username of the user
Details about the team that the record is assigned to
The team identifier
The team name
The custom field’s unique key
The custom field’s value
GET https://sandbox.crm.com/backoffice/v1/leads/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"title": "Burger Time Restaurants (chain)",
"status": "OPEN",
"pipeline": {
"id": "LMP1E31269B76D7A65ACCE45B2E68DFD",
"name": "New large-scale business rewards lead",
"pipeline_stage_id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
},
"description": "Lead was referred by our client Baker's Dozen",
"contact": {
"id": "14B48204E5B44589AE99CC351BC46A2A",
"name": "John",
"surname": "Smith"
},
"value": 15000,
"expected_close_date": 98765342,
"lost_reason": {
"name": "Lost to competitor"
},
"assign_to": {
"user": {
"id": "47ac694d-6281-b873-bf46-3fd8da334a3a",
"name": "John Doe",
"username": "j_doe@crm.com"
},
"team": {
"id": "bf1370a1-73ad-0bbf-6fef-f2ce1938d4fe",
"name": "Support"
}
},
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
{id}/queue_statusesRetrieve all the pipeline stages a lead has progressed through.
Path variables
The GUID of the lead whose pipeline stages will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The pipeline stage id
Name of the pipeline stage
Date of achieving this pipeline stage
GET https://sandbox.crm.com/backoffice/v1/leads/HPA1E31269B76D7A65ACCE45B2E68DFD/queue_statuses HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"pipeline_stage_id": "558269B76D7A65ACCE45B2E68DFD",
"name": "Proposal Submitted",
"date_achieved": 98765342
}
]
}{id}/pipeline_stageChange the pipeline stage of a lead (e.g. progress a lead).
Path variables
The GUID of the lead whose pipeline stage will be changed
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The new pipeline stage ID
Defaults to current date & time
Examples
Responses
Body
The GUID of the lead whose pipeline stage was changed
POST https://sandbox.crm.com/backoffice/v1/leads/HPA1E31269B76D7A65ACCE45B2E68DFD/pipeline_stage HTTP/1.1
Content-Type: application/json
{
"pipeline_stage_id": "CEEE83D6E0804A30966F684B0269AD91",
"date_achieved": 1583846865
}{id}/actionsChange the status of a lead.
Path variables
The GUID of the lead whose status is to be changed.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The new lead status
The lead is still in progress
The lead has been won
The lead has been lost
Required only when a lead has a status of ‘lost’
Examples
Responses
Body
The GUID of the lead whose status was changed
POST https://sandbox.crm.com/backoffice/v1/leads/HPA1E31269B76D7A65ACCE45B2E68DFD/actions HTTP/1.1
Content-Type: application/json
{
"status": "LOST",
"lost_reason_id": "4AD9C84FA60F9FE407140E20F707726A"
}Change the lead pipeline stage, owner, expected close date of one or more leads that have been selected as part of a bulk update action
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
A list of leads GUID codes to be updated
The new pipeline stage unique id (optional).
The GUID of the new lead owner (optional).
The new expected close date (optional).
Examples
Responses
POST https://sandbox.crm.com/backoffice/v1/leads/bulk_update HTTP/1.1
Content-Type: application/json
{
"leads": [
"MH01E31269B76D7A65ACCE48D80, S332E31269B76D7AE45B2E689UT, 74D9C84FA6007140E20F707726A"
],
"pipeline_stage_id": "31269B76D7A65ACCE45B2E68DFD",
"owner_id": "L1269B76D7A65ACCE45B2E68DFD",
"expected_close_date": 98765342
}{id}Merge two leads into one
Path variables
The id of the target lead (i.e. lead to be kept)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The id of the Lead to be merged into the target Lead and then deleted.
Examples
Responses
Body
The GUID of the successfully updated lead
PUT https://sandbox.crm.com/backoffice/v1/leads/merge/E901E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
Content-Type: application/json
{
"source_id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "E901E31269B76D7A65ACCE45B2E68DFD"
}{id}/notes{id}/notes/{note_id}{id}/notes/{note_id}{id}/notes{id}/notesCreate a new note for a lead
Path variables
Lead GUID for which the note is to be created
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The note contents
Pinned notes appear at the top of the notes list. True = pin note, false = don’t pin note
Examples
Responses
The request has succeeded
Body
The identifier for the note created
POST https://sandbox.crm.com/backoffice/v1/leads/6A24D2B5E44F44B28451FE021FCAD51E/notes HTTP/1.1
Content-Type: application/json
{
"note": "After my telephone conversation with Zack this morning, it was decided that....",
"pinned": true
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{id}/notes/{note_id}Update a note for a lead.
Path variables
The lead GUID
The note GUID
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The actual note contents
Pinned notes appear at the top of the notes list.
Examples
Responses
Body
The GUID of the updated note
PUT https://sandbox.crm.com/backoffice/v1/leads/CAD1E31269B76D7A65ACCE45B2E68DFD/notes/SMA1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
Content-Type: application/json
{
"note": "After my telephone conversation with Zack this morning, it was decided that....",
"pinned": true
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "SMA1E31269B76D7A65ACCE45B2E68DFD"
}{id}/notes/{note_id}Delete a single note for a lead
Path variables
The GUID of the lead
The GUID of the note to be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/leads/PT19C84FA60F9FE407140E20F707726A/notes/XOP9C84FA60F9FE407140E20F707726A HTTP/1.1
HTTP/1.1 200 OK {id}/notesRetrieve all notes for a single lead
Path variables
The GUID of the lead whose notes are to be retrieved
Request parameters
The page number that should be retrieved
The size (total records) of each page
Defines the attribute to be used for sorting the results
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The note unique identifier
Details of the user who created the note
The GUID of the user who created the note
The name of the user who created the note
Date and time the note was created
Date and time the note was updated
Pinned notes appear at the top of the notes list
The note contents
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/leads/TFD1E31269B76D7A65ACCE45B2E68DFD/notes HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "LEP1E31269B76D7A65ACCE45B2E68D34",
"created_by": {
"id": "1121E31269B76D7A65ACCE45B2E68KP1",
"username": "Sam Jackson"
},
"created_on": "98765775",
"updated_on": "98765795",
"pinned": "true",
"note": "After my telephone conversation with Zack this morning, it was decided that...."
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/files{id}/files/{file_id}{id}/files{id}/filesConnect an uploaded file to an existing lead
Path variables
The lead (identifier) that file will be attached
Notes
Uploading files into CRM is made based on the following flow & API calls
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The file (identifier) to be attached
URL of the file to be attached
The file description
Responses
Body
The lead identifier
POST https://sandbox.crm.com/backoffice/v1/leads/66451204-4404-894c-4dc6-486c540ece40/files HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"file_id": "30526723-24a3-e4e3-1a75-b26b1b41f05c",
"description": "this is a small description"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "66451204-4404-894c-4dc6-486c540ece40"
}{id}/files/{file_id}Delete a specific lead attachment file
Path variables
The lead (identifier) that file will be deleted
The attachment file (identifier) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/leads/66451204-4404-894c-4dc6-486c540ece40/files/04c0bebd-8bb0-0b3e-e1a6-716a0fd200b1 HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK {id}/filesRetrieve all attachment files for a specific lead
Path variables
The lead (identifier) that files will be retrieved
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The attachment identifier
The mime type of the uploaded file
The attachement description
The attachement file details
The file identifier
The file URL endpoint
The file name
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/leads/66451204-4404-894c-4dc6-486c540ece40/files HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "3ae9d64a-8a3b-f1e1-eed6-05b307f926fb",
"mime": "png",
"description": "this is a brief description of this image",
"file": {
"id": "0317868f-28f8-9f56-d248-5a78718b38cc",
"name": "img.png"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
The following functionality relates to tags for leads
{id}/tags{id}/tags{id}/tags/{tag_id}{id}/tags{id}/tagsThe following process adds tags to a lead.
Path variables
The leads GUID
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
the content relating to the tag
The tag id
POST https://sandbox.crm.com/backoffice/v1/leads/HRDGSWRSFVSDSDBSDSSDDE/tags HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"tags": [
{
"id": "FDHNFDBR675765ghdh"
}
]
}{id}/tagsThe following process updates tags for a lead.
Path variables
The lead GUID
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
the content relating to the tag
The tag id
PUT https://sandbox.crm.com/backoffice/v1/leads/{id}/tags HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"tags": [
{
"id": "JKGSJGFKDGJKFGFSJK"
}
]
}{id}/tags/{tag_id}Deletes a tag on a lead.
Path variables
The id of the leads.
The id of the tag
DELETE https://sandbox.crm.com/backoffice/v1/leads/JFGJKSFGJFSGH/tags/KJDFHKJGFSJHG HTTP/1.1 {id}/tagsThe following process retrieves the tags for a lead
Path variables
Responses
Body
the tag ID
Name of Tag
Colour of tag
GET https://sandbox.crm.com/backoffice/v1/leads/{id}/tags HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "JKGJHFSDJHGDSJHGA",
"name": "Maintenance",
"colour": "The colour of the tag"
}
]
}{id}{id}{id}{id}/actionsCreates a new Order for a contact based on an order’s estimation
Notes
The following APIs should be called in order to make an order
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The estimation_id as this is returned back by the estimates/order Web API
The type of the event
The order general notes
Defines whether available wallet funds can be used on the order total amount. If wallet funds do not cover the entire order amount, then payment method will be used
Defines a specific amount that should be used on the order total amount (applicable only if “use_wallet_funds” is true)
The custom field’s unique key
The custom field’s value
A list of devices unique identifiers
Responses
OK
Body
The unique identifier of the new order
The actual delivery time
The organisation identifier
The name of the organisation
The organisation’s phone number
Information about the organisation’s location
The location identifier
The name of the location
The address of the location
Additional address information about the location
The state/province/county of the location
The town/city of the location
The postal code of the location
The country code of the location
The care of information of the location
The latitude of the location
The longitude of the location
The Google textual identifier that uniquely identifies a location
POST https://sandbox.crm.com/backoffice/v1/orders HTTP/1.1
Content-Type: application/json
{
"estimation_id": "37b56acf-665c-1112-93fc-163b3639bcbe",
"payments": [
{
"payment_method_type": "ACCOUNT",
"paid_on": "ON_ORDER",
"payment_method_id": "5d6c838c-ef87-703c-a587-844c94b61f71",
"amount": 12.21,
"payment_token": "paytoken12344"
}
],
"notes": "",
"use_wallet_funds": "true",
"wallet_funds_amount": 11.99,
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "f3076649-5350-4215-9278-ba95452a72f7",
"number": "",
"estimated_delivery_time": {
"time_to_deliver": 20,
"uot": "MINUTES",
"delivery_at": 1599224678
},
"fulfilled_by": {
"id": "f3076649-5350-4215-9278-ba95452a72f7",
"name": "Bro Burgers",
"phone": "+6934222321",
"address": {
"id": "LOC123456234567345674567895678IK",
"name": "Head Office",
"address_line_1": "Elia Papakyriakou 21",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2415",
"country_code": "CY",
"care_of": "c/o Company",
"lat": 35.157115,
"lon": 33.313719,
"googleplaceid": "ChIJrTLr-GyuEmsRBfy61i59si0"
}
}
}
{id}Updates an existing (single) Order
Path variables
The order identifier that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The type of the event
The contact’s payment method. Applicable and required for online payment methods - Cards, Account Debits and Wallets
Unique identifie rof the ordered item
The comment inserted when a new status is achieved.
A reference provided by external systems
An updated ad-hoc discount
The custom field’s unique key
The custom field’s value
Examples
Responses
Body
The order identifier
Determines whether approval reuqests are applied or not, if not null an approval is requested
The apporval request identifier
PUT https://sandbox.crm.com/backoffice/v1/orders/f3076649-5350-4215-9278-ba95452a72f7 HTTP/1.1
Content-Type: application/json
{
"notes": "",
"category_id": "f3076649-5350-4215-9278-ba95452a72f7",
"payment_method_type": "CHEQUE",
"payment_method_id": "",
"order_items": [
{
"product_id": "f3076649-5350-4215-9278-ba95452a72f7",
"quantity": 1,
"notes": "",
"components": [
{
"product_id": "f3076649-5350-4215-9278-ba95452a72f7",
"quantity": 2
}
],
"variant_attributes": [
{
"key": "f3076649-5350-4215-9278-ba95452a72f7",
"value": "Small"
}
],
"id": ""
}
],
"status": {
"id": "",
"comment": "",
"date_achieved": ""
},
"external_reference": "REF1234",
"discount": {
"amount": 1,
"type": "AMOUNT"
},
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "f3076649-5350-4215-9278-ba95452a72f7",
"approval_requests": [
{
"id": "3a4aad81-e5c2-72b7-3a86-903239d08767"
}
]
}
{id}Deletes an Order. A single order is deleted per Web API call
Path variables
The order identifier that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Examples
Responses
DELETE https://devapi.crm.com/backoffice/v1/orders/{id} HTTP/1.1
Content-Type: application/json
HTTP/1.1 200 OK Retrieve a list of orders based on search criteria (e.g. today’s new orders).
Request parameters
Filters based on the order number
Fitlers based on the order state
NEWDefines how order was/will be provided
Delivered to the customer’s address
Picked up by the customer from a venue
Online sales of services
Filters orders based on the contact that placed such orders
Filters orders based on whether are marked as favorite or not
Filters orders based on created date
Returns results where the created date is greater than this value
Returns results where the created date is greater than or equal to this value
Returns results where the created date is less than this value
Returns results where the created date is less then or equal to this value
Filter orders based on the organisation that will fulfill such orders
Filter orders based on the organisation’s tap code that will fulfill such orders (tap should be active)
Search for orders based on their number and contact name
Filter orders based on created from date
Filter orders based on created to date
The country (code) in which the order was fulfilled by
The order queue
The status of the order
Point of no return reached
Defines whether custom fields should be retrieved or not (via List/Get APIs)
Filters based on custom fields (key/value set should be semicolon separated)
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
The organisation that placed the order
Defines whether approval requests information should be retrieved or not
Filter based on approval request state
Search for an order using its delivery address
Search for an order using the delivery address’s name
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The order identifier
The order reference number
The order life cycle state
The order general notes
The type of the event
Delivered to the customer’s address
Picked up by the customer from a venue
Online sales of services
The total cost of all order items. The cost equals to the total cost of the order’s invoice, taxes and discounts included
The amount that was used from wallet funds
The order’s total amount before applying the discount. Includes the tax amount
The amount due. This is the due amount of the order’s invoice, calculated cosidering its due date
The amount of money that was collected to pay off the order’s invoice. This amount equals to the order’s cost minus wallet funds (if any)
Total discount amount provided to the ordered items.
Total discount amount excluding taxes. This amount equals to the sum of all discount amounts among all invoiced items. Note that this amount does not include the taxed amount.
The total discount amount including taxes
The contact identifier
The contact code
The contact name
The address line 1
The address line 2
The address state/province/county
The address town/city
The address postal code
The address country (based on ISO 3 char code)
The latitude of the address
The longitude of the address
The Google textual identifier that uniquely identifies an address
Details about the event classification
The category identifier
The category name
Details about the reason that cancelled the order
The cancellation reason identifier
The cvancellation reason
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
Details pertaining to the queue
id of the queue
name of the queue
Defines whether the point of no return has been reached or not
The quantity of the ordered items
The product SKU
The product name
How many products were ordered
The unit price as defined in the order’s Invoice,excluding taxed amount
The applied tax amount
The sub-total of the product before applying the discount. Tax amount is included
The order item’s sub-total. The sub-total includes the discount amount i.e. the discount is deducted from the product’s price
The discount provided to the ordered item
The applied discount amount excluding taxes
The applied disocunt with its taxed amount
The applied discount percentage
product type classification
The number of items included in the Order
Defines whether the orders are configured to be printed
Defines whether the order has been printed successfully
The custom field’s unique key
The custom field’s value
Details about order provision
Defines whether the order is configured to be provisioned
Defines whether the order has been provisioned successfully (applicable only if the order is available for provision)
Defines the integration on which the order has been provisioned (applicable only if the order is available for provision)
A reference identifier (usually an id) provided by an external system that provisioned this order
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
Details about the latest requested approval(s)
The approval request state
The page number
The number of records per page
The overal number of records
Retrieve today’s orders for a specific venue that are currently new
GET https://sandbox.crm.com/backoffice/v1/orders?life_cycle_state=NEW&fulfilled_by_tap_code=8269&created_on[gte]=1628456400 HTTP/1.1
api_key: adea79a6-fe7f-2e92-56c7-9a0685ffa290
HTTP/1.1 200 OK
Content-Type: application/json
{
"paging": {
"page": 1,
"size": 2,
"total": 2
},
"content": [
{
"number": "A11636",
"address": null,
"currency": "EUR",
"notes": "please add a couple napkins",
"contact": {
"id": "ed86f87f-3df2-4c83-8897-736c08536eb9",
"name": "Sozos K",
"code": "6562126827272730"
},
"category": null,
"assignee": null,
"discount": {
"amount": 0.68,
"amount_incl_tax": 0.72
},
"id": "970cc6bc-ca78-4f35-9fb7-09c81a42dfc7",
"life_cycle_state": "NEW",
"supply_method": "DELIVERY",
"total_cost": 6.38,
"wallet_funds_amount": 0.20,
"amount_due": 6.18,
"key_dates": {
"id": null,
"submitted_on": 1628500082,
"completed_on": null,
"cancelled_on": null,
"expires_on": null,
"requested_date": null,
"started_on": null,
"estimated_fulfillement": 1628507280,
"estimated_fulfillement_in": 119,
"estimated_fulfillment_UOT": "MINUTE"
},
"number_of_milestones": 1,
"cancellation_reason": null,
"fulfilled_by": {
"id": "8967BAB2A75A456DA055D00111F97DFE",
"name": "Store 1"
},
"is_favorite": false,
"number_of_items": 3,
"is_printed": true,
"available_for_printing": null,
"order_provision": {
"provisioner": null,
"available_for_provision": false,
"is_provisioned": true
},
"amount_to_collect": 6.18,
"total_before_discount": 7.10,
"order_items": []
},
{
"number": "A11635",
"address": null,
"currency": "EUR",
"notes": null,
"contact": {
"id": "ed86f87f-3df2-4c83-8897-736c08536eb9",
"name": "Sozos K",
"code": "6562126827272730"
},
"category": null,
"assignee": null,
"discount": {
"amount": 0.00,
"amount_incl_tax": 0.00
},
"id": "16105370-9be8-412e-976c-f987c40254a6",
"life_cycle_state": "NEW",
"supply_method": "PICK_UP",
"total_cost": 7.70,
"wallet_funds_amount": null,
"amount_due": 7.70,
"key_dates": {
"id": null,
"submitted_on": 1628499814,
"completed_on": null,
"cancelled_on": null,
"expires_on": null,
"requested_date": null,
"started_on": null,
"estimated_fulfillement": 1628507014,
"estimated_fulfillement_in": 120,
"estimated_fulfillment_UOT": "MINUTE"
},
"number_of_milestones": 1,
"cancellation_reason": null,
"fulfilled_by": {
"id": "8967BAB2A75A456DA055D00111F97DFE",
"name": "Store 1"
},
"is_favorite": false,
"number_of_items": 3,
"is_printed": true,
"available_for_printing": null,
"order_provision": {
"provisioner": null,
"available_for_provision": false,
"is_provisioned": true
},
"amount_to_collect": 7.70,
"total_before_discount": 7.70,
"order_items": []
}
]
}
GET https://sandbox.crm.com/backoffice/v1/orders HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "997f1287-3d83-827a-7199-e5df2c0e4e67",
"number": "O11101",
"life_cycle_state": "IN_PROGRESS",
"notes": "Lorem Ipsum",
"number_of_milestones": 1,
"supply_method": "DELIVERY",
"total_cost": 9.99,
"wallet_funds_amount": 1.59,
"total_before_discount": 1,
"amount_due": 9.99,
"amount_to_collect": 8.49,
"discount": {
"amount": 1,
"amount_incl_tax": 1
},
"currency": "EUR",
"contact": {
"id": "997f1287-3d83-827a-7199-e5df2c0e4e67",
"code": "C0001",
"name": "John Doe"
},
"address": {
"address_line_1": "Elia Papakyriakou",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2015",
"country": "CYP",
"lat": 35.157115,
"lon": 33.313719,
"google_place_id": "ChIJrTLr-GyuEmsRBfy61i59si0"
},
"category": {
"id": "c8d83493-3f50-40df-adb0-762ec5f41863",
"name": "Delivery Purchase"
},
"cancellation_reason": {
"id": "997f1287-3d83-827a-7199-e5df2c0e4e67",
"name": "Void by customer"
},
"fulfilled_by": {
"id": "4248fab3-67d5-2eb1-eaf6-079ce18cd2ed",
"name": "Bravo Coffee"
},
"queue": {
"id": "",
"name": ""
},
"status": {
"id": "",
"name": "",
"colour": ""
},
"ponr_reached": true,
"order_items": [
{
"id": "997f1287-3d83-827a-7199-e5df2c0e4e67",
"notes": "",
"quantity": 2,
"product": {
"id": "997f1287-3d83-827a-7199-e5df2c0e4e67",
"sku": "0123-112",
"name": "Decoder",
"quantity": 2,
"price": 1.7,
"tax_amount": 0.08,
"cost_before_discount": 1.78,
"cost": 3.4,
"discount": {
"amount": 1,
"amount_incl_tax": 1,
"percentage": 1
},
"classification": "EXPENSE_SERVICE",
"components": [
{
"id": "997f1287-3d83-827a-7199-e5df2c0e4e67",
"sku": "",
"name": "",
"quantity": 1,
"price": 0.48,
"price_incl_tax": 0.5
}
],
"variant_attributes": [
{
"key": "size",
"name": "Size",
"value": "Grande"
}
],
"price_terms": {
"billing_period": {
"duration": "1",
"uot": "MONTHS"
},
"auto_renew": true
}
}
}
],
"key_dates": {
"submitted_on": 1592809457,
"completed_on": 1592809457,
"cancelled_on": 1592809457,
"estimated_fulfillment_in": 30,
"estimated_fulfillment_UOT": "MINUTES",
"estimated_fulfillment": 1592809457,
"expires_on": 1592809457,
"started_on": 1,
"requested_date": 1
},
"number_of_items": 1,
"available_for_printing": "true",
"is_printed": "true",
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
],
"order_provision": {
"available_for_provision": "true",
"is_provisioned": "false",
"provisioner": "TWINSOFT"
},
"external_reference": "23434232345",
"organisation": {
"id": "4248fab3-67d5-2eb1-eaf6-079ce18cd2ed",
"name": "Bravo Coffee"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Retrieves detailed information of an Order. A single Order is retrieved per Web API call
Path variables
The order (identifier) that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The order identifier
The order number
The order life cycle state
The order general notes
The total number of milestones for the order
The type of the event
Delivered to the customer’s address
Picked up by the customer from a venue
Online sales of services
The total cost of all order items including taxes and discounts. This is the total amount of the order’s Invoice.
The amount that was used from wallet funds
Total amount of the invoice without the applied discount amount. Tax amount is included
The amount due to be paid. The due amount is calculated based on the order’s Invoice due date
The amount of money that was collected to pay off the order’s invoice/s. This amount equals to the order’s cost minus wallet funds (if any), minus any payments made against this order.
Total discount amount applied through promotions and ad-hoc discount
Total discount amount excluding taxes. This amount equals to the sum of all discount amounts among all invoiced items. Note that this amount does not include the taxed amount.
The total discount amount including taxes
The order currency
The type of the event
No wallet funds used
No wallet funds used
No wallet funds used
Partially paid using wallet funds and another payment method
Partially paid using wallet funds and another payment method
Fully paid using wallet funds
Defines whether the order is a favorite one
The total number of items for the order
Details about the contact who placed the order
The contact identifier
The contact code
The contact name
The contact’s email address
The contact phone number
The phone number country code
The address line 1
The address line 2
The address state/province/county
The address town/city
The address postal code
The address country (based on ISO 3 char code)
The latitude of the address
The longitude of the address
The Google textual identifier that uniquely identifies an address
Details about the event classification
The category identifier
The category name
Details about the reason that cancelled the order
The cancellation reason identifier
The cvancellation reason
The phone of the organisation
Information about the organisation’s location
The location identifier
The name of the location
The address of the location
Additional address information about the location
The state/province/county of the location
The town/city of the location
The postal code of the location
The country code of the location
The care of information of the location
The latitude of the location
The longitude of the location
The Google textual identifier that uniquely identifies a location
May be dealt with in list order items??
The order item identifier
The order item notes
The order item state
The order item (product) quantity (same as product.quantity)
Information about the order product item
The product identifier
The product SKU
The product name
The product quantity
The tag identifier
The name of the tag
The colour of the tag
The unit price as defined in the order’s Invoice,excluding taxed amount
The applied tax amount
The sub-total of the order item before applying a discount. Tax amount is included.
The order item’s sub-total. The sub-total includes the discount amount i.e. the discount is deducted from the product’s price
The product component identifier
The product component SKU
The product component name
The product component quantity
The tag identifier
The name of the tag
The colour of the tag
The product component price (of a single unit)
Defines the termed period
A reference identifier (usually an id) provided by an external system that provisioned this order
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
The custom field’s unique key
The custom field’s value
Defines whether the orders are configured to be printed
Defines whether the order has been printed successfully
Details about order provision
Defines whether the order is configured to be provisioned
Defines whether the order has been provisioned successfully (applicable only if the order is available for provision)
Defines the integration on which the order has been provisioned (applicable only if the order is available for provision)
This relates to the final invoice logged for the order
A reference provided by external systems
The type of the event
The type of the event
The unique identifier of the contact’s payment method
A short description of the payment method. Depending on the payment method’s type different informaiton is returned:
- Card: the brand, followed by the last 4 digits of the card plus expiration month/year
- Account debit: Name: Bank code followed by the first 5 and the last 9 digits of the account number/IBAN
- Wallet: Name: Email and/or phone used on registration
The ad-hoc discount that is applied on the order’s total amount.This disocunt amount does not incldue discounts applied via Promotions
The provided ad-hoc discount amount. The amount is tax inclusive
Discount is an amount or a percentage of the order’s total cost
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
Amount used from the account to pay off the order. Applicable only when account was in credit at the time of placing the order and it was used to pay off an order’s amount.
GET https://sandbox.crm.com/backoffice/v1/orders/997f1287-3d83-827a-7199-e5df2c0e4e67 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "1866a75f-953e-4109-86b4-1cab53fbaaa8",
"number": "ORDER1234",
"life_cycle_state": "IN_PROGRESS",
"notes": "Lorem Ipsum",
"number_of_milestones": 1,
"supply_method": "DELIVERY",
"total_cost": 5.99,
"wallet_funds_amount": 1.98,
"total_before_discount": 1,
"amount_due": 3.01,
"amount_to_collect": 1,
"discount": {
"amount": 0.96,
"amount_incl_tax": 0.98
},
"currency": "EUR",
"payment_info": "NOT PAID - TO BE PAID IN CASH",
"is_favorite": true,
"number_of_items": 6,
"contact": {
"id": "1866a75f-953e-4109-86b4-1cab53fbaaa8",
"code": "1234",
"name": "John Doe",
"email_address": "sue@mymail.com",
"phone_number": "",
"country_code": "CYP"
},
"address": {
"address_line_1": "Elia Papakyriakou",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2015",
"country": "CYP",
"lat": 35.157115,
"lon": 33.313719,
"google_place_id": "ChIJrTLr-GyuEmsRBfy61i59si0"
},
"category": {
"id": "c8d83493-3f50-40df-adb0-762ec5f41863",
"name": "Delivery Purchase"
},
"cancellation_reason": {
"id": "997f1287-3d83-827a-7199-e5df2c0e4e67",
"name": "Void by customer"
},
"fulfilled_by": {
"id": "1866a75f-953e-4109-86b4-1cab53fbaaa8",
"name": "CRM Nicosia",
"phone": "",
"address": {
"id": "LOC123456234567345674567895678IK",
"name": "Head Office",
"address_line_1": "Elia Papakyriakou 21",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2415",
"country_code": "CY",
"care_of": "c/o Company",
"lat": 35.157115,
"lon": 33.313719,
"google_place_id": "ChIJrTLr-GyuEmsRBfy61i59si0"
}
},
"order_items": [
{
"id": "1866a75f-953e-4109-86b4-1cab53fbaaa8",
"notes": "Lorem Ipsum",
"life_cycle_state": "PENDING_DELIVERY",
"quantity": 1,
"product": {
"id": "1866a75f-953e-4109-86b4-1cab53fbaaa8",
"sku": "SKU1234",
"name": "Iced Latte",
"quantity": 2,
"tags": [
{
"id": "80362b63-a576-3540-586b-0dc1f3ab3bfd",
"name": "Coffees",
"colour": ""
}
],
"price": 1.7,
"tax_amount": 1,
"discount": {
"amount": 1,
"amount_incl_tax": 1,
"percentage": 1
},
"cost_before_discount": 1,
"cost": 3.4,
"classification": "TRACEABLE_PHYSICAL_GOOD",
"is_stockable": true,
"components": [
{
"id": "1866a75f-953e-4109-86b4-1cab53fbaaa8",
"sku": "B1234",
"name": "Brown Sugar",
"quantity": 1,
"tags": [
{
"id": "9c134cf3-c274-ee73-4921-01fb34033d4c",
"name": "Condiment",
"colour": ""
}
],
"price": 0.5,
"net": 1,
"tax": 1,
"discount": 1,
"total": 1
}
],
"variant_attributes": [
{
"key": "size",
"name": "Size",
"value": "Grande"
}
],
"price_terms": {
"billing_period": {
"duration": 1,
"uot": ""
},
"auto_renew": true,
"termed_period_cycles": 1,
"contract_period": {
"duration": 1,
"uot": ""
},
"trial_period": {
"duration": "",
"uot": ""
},
"price_model": "VARIABLE",
"bill_model": "POST_BILL",
"external_reference": "23423423234234"
},
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"usage_type": "GOOGLE_LOGO_IMAGE",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/logo.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/logo.jpg"
}
]
}
]
}
}
],
"key_dates": {
"submitted_on": 1592809457,
"completed_on": 1592809457,
"cancelled_on": 1592809457,
"estimated_fulfillment_in": 30,
"estimated_fulfillment_UOT": "MINUTES",
"estimated_fulfillment": 1592809457,
"expires_on": 1592809457,
"started_on": 1,
"requested_date": 1
},
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
],
"available_for_printing": "true",
"is_printed": true,
"order_provision": {
"available_for_provision": "true",
"is_provisioned": "false",
"provisioner": "ALOHA"
},
"invoice": {
"id": "",
"number": "",
"ref_number": ""
},
"queue": {
"id": "",
"name": ""
},
"statuses": [
{
"id": "",
"name": "",
"date_achieved": 1,
"colour": "",
"point_of_no_return": true,
"comment": ""
}
],
"external_reference": "REF1234",
"payment_method": {
"type": "CASH",
"details": {
"id": "",
"identifier": "Visa *****1234"
}
},
"ad_hoc_discount": {
"amount": 9.99,
"type": "AMOUNT"
},
"organisation": {
"id": "4248fab3-67d5-2eb1-eaf6-079ce18cd2ed",
"name": "Bravo Coffee"
}
}
{id}/actionsUpdates a single order based on the preferred action.
Path variables
The order (identifier) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The action that will be applied on the order
roadmap
roadmap
roadmap
Print an order for preparation of order at a venue.
Provision an order to a POS
Clones the Order and use it as a template to easily create a new one
The reason why an order is cancelled (applicable if action = CANCEL)
Defines whether the order is a customer’s favourite one
Defines the integration on which the order has been provisioned (applicable only if the order is available for provision)
Examples
Responses
Body
The order (identifier) that was updated
Determines whether approval reuqests are applied or not, if not null an approval is requested
The apporval request identifier
PUT https://sandbox.crm.com/backoffice/v1/orders/997f1287-3d83-827a-7199-e5df2c0e4e67/actions HTTP/1.1
api_key: adea79a6-fe7f-2e92-56c7-9a0685ffa290
Content-Type: application/json
{
"action": "START_PROGRESS"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "997f1287-3d83-827a-7199-e5df2c0e4e67"
}
PUT https://sandbox.crm.com/backoffice/v1/orders/997f1287-3d83-827a-7199-e5df2c0e4e67/actions HTTP/1.1
api_key: adea79a6-fe7f-2e92-56c7-9a0685ffa290
Content-Type: application/json
{
"action": "COMPLETE"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "997f1287-3d83-827a-7199-e5df2c0e4e67"
}PUT https://sandbox.crm.com/backoffice/v1/orders/997f1287-3d83-827a-7199-e5df2c0e4e67/actions HTTP/1.1
api_key: adea79a6-fe7f-2e92-56c7-9a0685ffa290
Content-Type: application/json
{
"action": "CANCEL",
"cancellation_reason_id": "86d3a62b-5ee5-3a9e-b6dd-517a5dc908dd"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "997f1287-3d83-827a-7199-e5df2c0e4e67"
}All API’s concerned with order items after initial creation
{id}/items{id}/itemsPath variables
Responses
Body
How many items were ordered
How many items were delivered (stocked out from business warehouse)
How many items are already invoiced.
List of strings of device serial numbers
GET https://sandbox.crm.com/backoffice/v1/orders/{id}/items HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"quantity": 10,
"delivered": 5,
"invoiced": 1,
"notes": "",
"price": 1,
"tax_amount": 1,
"product": {
"id": "",
"sku": "",
"name": "",
"measurement_unit": "",
"classification": "TRACEABLE_PHYSICAL_GOOD"
},
"devices": [
{
"serial_number": "",
"dispatched": true
}
]
}
]
}
All API’s concerned with order specific milestones after creation
{id}/milestones{id}/milestones{id}/milestones/{milestone_id}{id}/milestonesLists the order specific milestones configured during the ordering process.
Path variables
Responses
Body
The order milestone percentage.
GET https://sandbox.crm.com/backoffice/v1/orders/{id}/milestones HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"date_achieved": "",
"percentage": 1,
"status": {
"id": "",
"name": "",
"colour": ""
},
"invoice": {
"id": "",
"number": ""
}
}
]{id}/milestonesUpdates the order specific milestones that were set in order creation. This will be performed as part of the order update flow.
Path variables
Request body
Responses
PUT https://sandbox.crm.com/backoffice/v1/orders/{id}/milestones HTTP/1.1
Content-Type: application/json
[
{
"status_id": "",
"percentage": 1,
"date": 1
}
]
HTTP/1.1 200 OK {id}/milestones/{milestone_id}Deletes an order milestone set up during the initial order flow.
Path variables
Responses
DELETE https://sandbox.crm.com/backoffice/v1/orders/{id}/milestones/{milestone_id} HTTP/1.1
HTTP/1.1 204 No Content {id}/files{id}/files/{file_id}{id}/files{id}/filesConnect an uploaded file to an existing order
Path variables
The order (identifier) that file will be attached
Notes
Integrating file upload for Orders should be based on the following APIs
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The file (identifier) to be attached
URL of the file to be attached
The file description
Responses
Body
The service request identifier
POST https://sandbox.crm.com/backoffice/v1/orders/66451204-4404-894c-4dc6-486c540ece40/files HTTP/1.1
Content-Type: application/json
{
"file_id": "30526723-24a3-e4e3-1a75-b26b1b41f05c",
"url": "https://crmcom.sharepoint.com/:x:/s/servicerequests/EZx2qopbvfN3uj1o3dOqbPm52Ct6bg?rtime=w0ic-hfG2Ug",
"description": "Screenshot sent by customer"
}{id}/files/{file_id}Delete a specific order attachment file
Path variables
The order (identifier) that file will be deleted
The attachment file (identifier) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/orders/66451204-4404-894c-4dc6-486c540ece40/files/04c0bebd-8bb0-0b3e-e1a6-716a0fd200b1 HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK {id}/filesRetrieve all attachment files for a specific order
Path variables
The order (identifier) that files will be retrieved
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The attachment identifier
The mime type of the uploaded file
The attachement description
The attachement file details
The file identifier
The file URL endpoint
The file name
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/orders/66451204-4404-894c-4dc6-486c540ece40/files HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "3ae9d64a-8a3b-f1e1-eed6-05b307f926fb",
"mime": "png",
"description": "this is a brief description of this image",
"file": {
"id": "0317868f-28f8-9f56-d248-5a78718b38cc",
"name": "img.png"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/actions{id}Creates a new payment intent
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The contact’s payment method that will be used for the payment. If a payment method is not specified, then the contact’s primary payment method will be selected
The amount intended to be retrieved from the customer’s payment method
The payment intent’s currency. If not specified, then the currency of the contact’s primary account will be autommatically used.
Payment intent is created and confirmed in one go. Applicable when customers have already opt in to automatic payments using their registered payment methods
Payment Intent’s billing period. Applicable only when recurring billing process submits intents to collect money. The period indirectly shows that the intent was created because of Billing Run
The date from which a subscription is billed
The date until which a subscription is billed
Responses
Body
The unique identifier of the payment intent
A unique key for the payment intent that should be used by front-end processes to process the payment intent since these processes should not have access to the payment intent as such. The client secret cannot be used to modify the payment intent’s info such as the amount.
Funds do not exist.
Request sent to PG, it was successfully logged but there still no response if funds exists or not (JCC SEPA)
Request sent to PG, money successully put on hold. THE PG waits for CRM side to capture the money
POST https://sandbox.crm.com/backoffice/v1/payment_intents HTTP/1.1
Content-Type: application/json
{
"contact_id": "",
"organisation_id": "",
"payment_method_id": "2ac0809f-ed91-4b68-b912-5bd6064d901e",
"amount": 9.99,
"currency_code": "EUR",
"confirm": "true",
"capture": "ON_HOLD",
"statement": "",
"description": "",
"entity": {
"id": "",
"type": "PAYMENTS"
},
"period": {
"from": 1,
"to": 1
}
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "",
"client_secret": "",
"state": "REQUIRES_CAPTURING",
"error_code": "",
"error_description": ""
}
{id}/actionsUpdates an existing Payment intent. A Payent intent can only be updated while it’s in Pending or Requires Capturing processing states
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Change the intent’s state
Applicable only if the intent was not confirmed on its creation
JCC used for pluign callbacks
JCC used for pluign callbacks
The type of the event
Responses
Body
The unique identifier of the payment intent
A unique key for the payment intent that should be used by front-end processes to process the payment intent since these processes should not have access to the payment intent as such. The client secret cannot modify the payetn intent’s info.
The type of the event
PUT https://sandbox.crm.com/backoffice/v1/payment_intents/{id}/actions HTTP/1.1
Content-Type: application/json
{
"action": "CAPTURE",
"entity": {
"type": "ORDER",
"id": ""
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "",
"client_secret": "",
"state": "ORDER",
"error_code": "",
"error_description": ""
}List all payment intents submitted for a customer
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The type of the event
The unique identifier of the contact’s payment method
A short description of the payment method. Depending on the payment method’s type different informaiton is returned:
- Card: the brand, followed by the last 4 digits of the card plus expiration month/year
- Account debit: Name: Bank code followed by the first 5 and the last 9 digits of the account number/IBAN
- Wallet: Name: Email and/or phone used on registration
The type of the event
The type of the event
Payment Intent’s billing period. Applicable only when recurring billing process submits intents to collect money. The period indirectly shows that the intent was created because of Billing Run
The date from which a subscription is billed
The date until which a subscription is billed
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/payment_intents HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"amount": 1,
"currency": "",
"payment_method": {
"id": "",
"identifier": "Visa *****1234"
},
"created_date": "",
"state": "REQUIRES_CAPTURING",
"entity": {
"id": "",
"number": "",
"type": "ORDER"
},
"period": {
"from": 1654698334,
"to": 1657290334
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Retrieves detailed information for a payment intent
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The type of the event
Credit/Debit/Prepaid cards
Wallet related to either a card, bank account or has a monetary value
Collect money directly from an account
The card’s main information. Required and applicable if the payment method type is CARD
The card’s name
The card’s brand
The type of the event
The first 6 digits of the card. Either the card number or the first 6 and last 4 digits must be specified
The last 4 digits f the card. Either the card number or the first 6 and last 4 digits must be specified
The card expiration month
The card expiration year
The card issue country (3 char country code)
Information about the card holder
The name of the card holder
The address related to the card
Additional address information related to the card
The city related to the card
The zip code related to the card
The state related to the card
The country related to the card
The bank details.Required and applicable if the payment method is set to BANK
The bank account number.
The IBAN code.
The name of the customer’s bank
Institution number of the customer’s bank.
The identifier of the bank branch
The bank account swift number
The sort code
The mandate (sequence) type
The type of the event
The payment gateway’s integration identifier
The country the bank account is located in.
The card’s main information. Required and applicable if the payment method type is CARD
The email used when registering to the walled-based payment method
The phone used when registering to the walled-based payment method
The type of the event
The type of the event
Appicable only on cancelling the payment intent
Applicable only if funds failed to be collected (payment intent’s state is Rejected)
Details about the related contact
The contact identifier
The contact full name
The contact unique code
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
Payment Intent’s billing period. Applicable only when recurring billing process submits intents to collect money. The period indirectly shows that the intent was created because of Billing Run
The date from which a subscription is billed
The date until which a subscription is billed
GET https://sandbox.crm.com/backoffice/v1/payment_intents/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "",
"amount": 1,
"currency": "",
"payment_method_type": "CARD",
"capture": "ON_HOLD",
"client_secret": "",
"payment_method": {
"id": "",
"card": {
"name": "Default Card",
"brand": "VISA",
"funding_type": "CREDIT",
"first6": "",
"last4": "",
"expiration_month": 1,
"expiration_year": 2020,
"country_of_issue": "CYP",
"cvc": "",
"card_holder_details": {
"card_holder_name": "John Doe",
"address_line_1": "Elia Papakyriakou",
"address_line_2": "7 Tower Star",
"address_city": "Nicosia",
"address_zip": "2415",
"address_state": "Nicosia",
"address_country": "CYP"
},
"gateway_token": [
{
"token": "",
"gateway": "SETTLE",
"integration": {
"id": "",
"name": ""
}
}
]
},
"account_debit": {
"account_name": "",
"account_number": "001002001",
"iban": "0143240434320434",
"bank": "Barclays",
"bank_code": "0032933-1123",
"branch": "Ascot",
"swift": "12345678",
"sort_code": "20-02-53",
"mandate": {
"reference": "",
"sign_date": 1
},
"account_type": "SAVINGS",
"integration_id": "",
"account_holder_details": {
"account_holder_name": "",
"address_line_1": "",
"address_line_2": "",
"address_state": "",
"address_city": "",
"address_zip": "",
"address_coutry": "",
"use_billing_address": true
},
"country": "CY",
"currency": "EUR"
},
"wallet": {
"email": "jsmith@email.com",
"phone": {
"name": "",
"country_code": "",
"number": "",
"msisdn": ""
},
"gateway_token": [
{
"token": "",
"gateway": "JCC",
"integration": {
"id": "",
"name": ""
}
}
]
}
},
"state": "REQUIRES_CAPTURING",
"entity": {
"type": "ORDER",
"number": "",
"id": ""
},
"created_date": 1,
"cancelled_date": 1,
"failure_reason": "",
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"organisation": {
"id": "4248fab3-67d5-2eb1-eaf6-079ce18cd2ed",
"name": "Bravo Coffee"
},
"period": {
"from": 1654698334,
"to": 1657290334
}
}
{id}{id}{id}{id}/exportCreate a pass plan
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the pass plan
A description of the pass plan
The classification of the pass plan
The life cycle state of the pass plan
Pass plan can be used and passes can be generated
Pass plan not in use
The promotion that the promotion pass will consume. Only applicable for classification PROMOTION. In such cases, either a Promotion OR a Reward Offer must be specified
The reward offer that the promotion pass will consume. Only applicable for classification PROMOTION. In such cases, either a Promotion OR a Reward Offer must be specified
The distribution method of the Passes to be created (i.e. type of pass codes). Applicable only for PROMOTION
Multiple unique codes
Single code for all passes
The maximum number of times the pass can be used, 1 = single use pass >1 = multiple uses (for PROMOTION passes)
The validity of the passes - this relates to the date whereby the pass can be redeemed by
The validity type
Pass is valid for a period of time
Pass is valid for a specific date
The validity period, applicable if validity type = PERIOD (i.e. expires in X days/months/years)
The UOT of the period, applicable if validaity type = PERIOD
The ‘valid until’ date in case of DATE type
The value of the pass in case of GIFT and TOPUP
Are passes of fixed or variable value? FIXED indicates that the pass value is predefined, VARIABLE allows the value of the pass to be set during creation (within a range)
The fixed value amount
The minimum allowed value of the pass for VARIABLE value passes
The maximum allowed value of the pass for VARIABLE value passes
Defines whether the passes will be printed (true=PRINTED, false=ELECTRONIC)
Definition of the pass code format to be followed when a pass code is being created
The type of the code format, if distribution_method = MULTIPLE
The prefix of the code if distribution_method = MULTIPLE
The suffix of the code if distribution_method = MULTIPLE
The length of the code if distribution_method = MULTIPLE (min.7, max.16)
Defines whether a generated pass will be associated with a pin
The user defined single pass code (applicable only if distribution_method is SINGLE)
GUID of spend group if spend_option = COMMERCE
Which wallet balance will the pass credit upon redemption? For TOPUP and GIFT passes
Can be spent without restrictions
Spend conditions could apply
For PRINTED passes this is the number of passes to generate, for ELECTRONIC passes this is the maximum number of passes to be generated (0=unlimited)
The custom field’s unique key
The custom field’s value
Responses
Successful Request
Body
The unique identifier of the created pass plan
POST https://sandbox.crm.com/backoffice/v1/pass_plans HTTP/1.1
Content-Type: application/json
{
"name": "EUR10-50 TOP-UP ELECTRONIC",
"description": "10-50EUR Top-up passes in electronic format",
"classification": "TOPUP",
"life_cycle_state": "INACTIVE",
"promotion_id": "4AD9C84FA60F9FE407140E20F707726A",
"reward_offer_id": "4AD9C84FA60F9FE407140E20F707726A",
"distribution_method": "MULTIPLE",
"maximum_usage": 1,
"validity": {
"type": "DATE",
"period": 1,
"uot": "DAY",
"to_date": 1591703675
},
"value": {
"type": "VARIABLE",
"fixed_amount": 100,
"minimum": 10,
"maximum": 50
},
"printed": "false",
"code_format": {
"type": "NUMERIC",
"prefix": "ABC",
"suffix": "2020",
"length": 10,
"pin_required": true,
"code": "123456"
},
"spend_condition_id": "99869C84FA60F9FE407140E20F707726A",
"spend_option": "COMMERCE",
"number_of_passes": 1,
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726A"
}
{id}Update specific details of a pass plan.
A pass plan can only be updated if none of it’s passes have been generated yet
Path variables
The ID of the pass plan to be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The life cycle state of the pass plan
Pass plan can be used and passes can be generated
Pass plan not in use
The name of the pass plan
A description of the pass plan
The maximum number of times the pass can be used, 1 = single use pass, >1 = multiple uses (for PROMOTION passes)
The validity of the passes - this relates to the date whereby the pass can be redeemed by
Pass plan validity type
Pass is valid for a period of time
Pass is valid for a specific date
Pass is always valid (never expires)
The validity period, applicable if validity type = PERIOD (i.e. expires in X days/months/years)
The UOT of the period, applicable if validaity type = PERIOD
The ‘valid until’ date in case of DATE type
Defines whether the passes will be printed (true=printed, false=electronic)
Which wallet balance will the pass credit upon redemption? For TOPUP and GIFT passes
Can be spent without restrictions
Spend conditions may apply
Definition of the pass code format to be followed when a pass code is being created
The type of the code format if distribution_method = MULTIPLE
The prefix of the code if distribution_method = MULTIPLE
The suffix of the code if distribution_method = MULTIPLE
The length of the code if distribution_method = MULTIPLE (min.7, max.16)
Defines whether generated passes require an associated pin
The user defined single pass code (applicable only if distribution_method is SINGLE)
For PRINTED passes this is the number of passes to generate, for ELECTRONIC passes this is the maximum number of passes to be generated (0=unlimited)
GUID of spend group if spend_option = COMMERCE
The custom field’s unique key
The custom field’s value
Responses
Successful Request
Body
The unique identifier of the pass plan updated
PUT https://sandbox.crm.com/backoffice/v1/pass_plans/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1
Content-Type: application/json
{
"life_cycle_state": "INACTIVE",
"name": "Xmas Gift Cards",
"description": "Gift Cards for Christmas",
"maximum_usage": 1,
"validity": {
"type": "PERIOD",
"period": 1,
"uot": "DAY",
"to_date": 1591703675
},
"printed": "true",
"spend_option": "COMMERCE",
"code_format": {
"type": "ALPHABETIC",
"prefix": "ABC",
"suffix": "YZ",
"length": 10,
"pin_required": true,
"code": "123456"
},
"number_of_passes": 1,
"spend_condition_id": "99869C84FA60F9FE407140E20F707726A",
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726A"
}
{id}Delete an existing pass plan.
A pass plan can opnly be deleted if none of it’s passes have been generated yet
Path variables
The pass plan identifier to be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
DELETE https://sandbox.crm.com/backoffice/v1/pass_plans/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1
HTTP/1.1 200 OK List all the available pass plans
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
Search pass plans using a name
Search pass plans using a classification
Search passs plans using life cycle state
Pass plan can be used and passes can be generated
Not in use
Search pass plans using the distribution method
Multiple unique values
Single code for all passes
Defines whether the passes will be printed (true=PRINTED, false=ELECTRONIC)
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The GUID of the pass plan
The life cycle state of the pass plan
Pass plan can be used and passes can be generated
Not in use
The name of the pass plan
The description of the pass plan
The classification of the pass type
The distribution method of passes (i.e. type of pass codes). Applicable only for PROMOTION
Multiple unique values
Single code for all passes
Defines whether the passes will be printed (true=PRINTED, false=ELECTRONIC)
For PRINTED passes this is the number of passes to generate, for ELECTRONIC passes this is the maximum number of passes to be generated (0=unlimited)
Number of passes generated either PRINTED or ELECTRONIC
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/pass_plans HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "40E20F707726A4AD9C84FA60F9FE4071",
"life_cycle_state": "ACTIVE",
"name": "Xmas Gift Cards",
"description": "Gift Cards for Christmas",
"classification": "PROMOTION",
"distribution_method": "SINGLE",
"printed": "false",
"number_of_passes": 1542,
"passes_generated": 1
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Retrieves details for an existing pass plan
Path variables
The ID of the pass plan to be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The life cycle state of the pass plan
Pass plan can be used and passes can be generated
Not in use
The name of the pass type
The description of the pass type
The classification of the pass type
The promotion that the passes will consume (only for PROMOTION type pass plans)
The ID of the promotion
The name of the promotion
The reward offer that the promotion pass will consume.
The reward offer identifier
The reward offer name
The distribution method of passes (i.e. type of pass codes). Applicable only for PROMOTION
Multiple unique values
Single code for all passes
The maximum number of times the pass can be used, 1 = single use pass >1 = multiple uses (for PROMOTION passes)
The validity of the passes - this relates to the date whereby the pass can be redeemed by
Validity type
Pass is valid for a period of time
Pass is valid for a specific date
Pass is always valid (never expires)
The validity period, applicable if validity type = PERIOD (i.e. expires in X days/months/years)
The UOT of the period, applicable if validaity type = PERIOD
The ‘valid until’ date in case of DATE type
The value of the pass in case of GIFT and TOPUP
Pass value type. FIXED indicates that the pass value is predefined, VARIABLE allows the value of the pass to be set during creation (within a range)
All passes have the same fixed value
Passes can have variable values
The fixed value amount
The minimum allowed value of the pass - for VARIABLE value passes
The maximum allowed value of the pass - for VARIABLE value passes
The wallet balance which the pass will credit upon redemption. For TOPUP and GIFT passes
Can be spent without restrictions
Spend conditions could apply
Defines whether the passes will be printed (true=printed, false=electronic)
Definition of the pass code format to be followed when a pass code is being created
The pass code format if usage method = MULTIPLE
The prefix of the code
The suffix of the code
The length of the code (min.7, max 16)
Defines whether generated passes require a associated pin
The user defined single pass code (applicable only if distribution method is SINGLE)
For PRINTED passes this is the number of passes to generate, for ELECTRONIC passes this is the maximum number of passes to be generated (0=unlimited)
Number of passes generated (for printed - this is the number of printed passes, for electronic - this is the number of passes generated so far)
Applicable spend conditions - if spend_option = COMMERCE
The spend condition ID
The spend condition name
The custom field’s unique key
The custom field’s value
GET https://sandbox.crm.com/backoffice/v1/pass_plans/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"life_cycle_state": "INACTIVE",
"name": "Xmas Gift Cards",
"description": "Gift Cards for Christmas",
"classification": "GIFT",
"promotion": {
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "XMAS 50% off"
},
"reward_offer": {
"id": "c888dd7a-7476-538c-730a-9f924bd82d04",
"name": "Birthday Offer"
},
"distribution_method": "MULTIPLE",
"maximum_usage": 1,
"validity": {
"type": "DATE",
"period": 1,
"uot": "MONTH",
"to_date": 1591703675
},
"value": {
"type": "FIXED",
"fixed_amount": 1,
"minimum": 10,
"maximum": 50
},
"spend_option": "COMMERCE",
"printed": "true",
"code_format": {
"type": "ALPHANUMERIC",
"prefix": "ABC",
"suffix": "YZ",
"length": 10,
"pin_required": true,
"code": "123456"
},
"number_of_passes": 1,
"passes_generated": 1,
"spend_conditions": {
"id": "ANP9C84FA60F9FE407140E20F707726A",
"name": "Anywhere & Anytime"
},
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
{id}/exportExport the generated passes of a pass plan to a .csv file and send it to the logged in user’s email
Path variables
The id of the pass plan to export its generated passes
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
POST https://sandbox.crm.com/backoffice/v1/pass_plans/4AD9C84FA60F9FE407140E20F707726A/export HTTP/1.1
HTTP/1.1 200 OK {id}{id}{id}/actionsRequest to generate one or more passes:
- For printed passes - generate all the passes for a pass plan
- For electronic pass - generate a single pass for a customer (only via a third-party system request)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The id of the pass plan for which a pass is to be generated
Set the value of the pass - applicable for pass plans configured for ‘variable’ value passes
The recipient information. For Top-up passes this is the registered contact who will also be redeeming the pass. For Gift passes this is the registered/unregistered recipient who will be redeeming the pass.
The recipient name
The communication medium to be used to send the pass information. Note: For electronic Gift passes - if the registered_contact information has been provided then medium_type is not mandatory
The value of the communication medium to be used to send the pass information Note: For electronic Gift passes - if the registered_contact information has been provided then medium_value is not mandatory
Applicable for SMS
Details requried if the pass is being created for a registered contact.
Contact id of the existing Contact
Wallet id of the existing contact
Gift sender information (for electronic Gift passes only).
Gift sender name
Gift sender message to accompany the gift pass
The custom field’s unique key
The custom field’s value
Responses
Successful Request
Body
The response will only return pass details if a single electronic pass has been generated, if multiple printed passes have been generated then nothing is returned.
The ID of the generated pass (if a single electronic pass was generated)
The pass code (if a single electronic pass was generated)
Pass PIN (if applicable, and if a single electronic pass was generated)
POST https://sandbox.crm.com/backoffice/v1/passes/generate HTTP/1.1
Content-Type: application/json
{
"pass_plan_id": "0F9FE407140E20F707726A4AD9C84FA6",
"pass_value": 50,
"recipient": {
"name": "John Smith",
"medium_type": "EMAIL",
"medium_value": "j.smith@crm.com",
"country_code": "GRE",
"registered_contact": {
"contact_id": "acaae121-b4af-4663-8646-47bb541c971d",
"wallet_id": "4613eb36-e5e8-46e8-9517-b1a31e86c89c"
}
},
"gift_sender": {
"name": "Kelly Smith",
"message": "Happy birthday John, have a great day. Hope to see you soon. Kelly"
},
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
{id}Update the life cycle state, the expiration date, the initial value or the pin of a single pass
Path variables
The pass unique identifier
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The new state of the pass
Only passes in ‘Draft’ state can be activated
Only passes in 'Draft or ‘Active’ state can be cancelled
The new expiration date
The value that the pass should be loaded with (applicable only for printed passes of variable value, and whose initial value is ‘null’)
PIN has a dual purpose:
- If simply updating the PIN, then provide the new 4-digit PIN value
- If cancelling a redeemed Gift Pass (life_cycle_state = CANCELLED, and the pass type is Gift Pass) then the pin must also be provided in order for cancellation to proceed
The custom field’s unique key
The custom field’s value
Responses
Successful Request
Body
The update pass identifier
PUT https://sandbox.crm.com/backoffice/v1/passes/{id} HTTP/1.1
Content-Type: application/json
api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
{
"life_cycle_state": "ACTIVE",
"expiration_date": 1592919625,
"initial_load": 50,
"pin": "1908",
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}Returns a list of Passes based on request parameters
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Filter based on the expiration date, which may fall within a given date range. The value can be a string with a date in epoch format. Each option must also include an operator. Use up to two options based on the required search (e.g. expiration_date[gte]=1618395497&expiration_date[lt]=1618395497).
Returns results where the expiration date is greater than this value
Returns results where the expiration date is greater than or equal to this value
Returns results where the expiration date is less than this value
Returns results where the expiration date is less then or equal to this value
Filter based on the creation date, which may fall within a given date range. The value can be a string with a date in epoch format. Each option must also include an operator. Use up to two options based on the required search (e.g. created_date[gte]=1618395497&created_date[lt]=1618395497).
Returns results where the created date is greater than this value
Returns results where the created date is greater than or equal to this value
Returns results where the created date is less than this value
Returns results where the created date is less then or equal to this value
Filter using the id of the user who created the passes
The id of the pass plan
The contact id to retrieve passes for
Retrieve the specific pass code information (either pass_code or pass_code_hash) can be used
Retrieve the hashed pass code (either pass_code or pass_code_hash) can be used
If a pass_code has been specified then the relevant pass pin should be provided too (if applicable)
The life cycle state of the passes to be retrieved
Whether the pass is printed (true) or not (false)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The pass ID
The pass code
The pass value (if applicable)
Details about the pass plan
The pass plan identifier
The pass plan name
The pass recipient information (if applicable)
Contact id
The recipient’s name
The recipient’s contact code, if known
The medium used to deliver the pass
The medium value for delivering the pass (can be email or phone number)
The currency of the pass
Details of the promotion that the pass will consume (if a Promotion pass)
Promotion unique id
Promotion name
The reward offer that the promotion pass will consume.
The reward offer identifier
The reward offer name
Defines whether the pass is printed (true), or electronic (false)
The pass life cycle state
The validity of the pass - determines when the pass can be redeemed by
Validity type
Pass is valid for a period of time
Pass is valid for a specific date
Pass is always valid (never expires)
The ‘valid until’ date in case of ‘date’ type, or the ‘valid from’ date in case of ‘period’ type
The ‘valid to’ date in case of ‘date’ type
Pass usage details
How many times a Promotion type pass can be used
The actual number of times that the pass has been used
Details available if the pass has been redeemed
The type of entity that the pass was redeemed against
The id of the entity that the pass was redeemed against
The code of the wallet or subscription, or the order number
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/passes HTTP/1.1 {id}Retrieves the details for a single pass per API call.
Path variables
The unique identifier of the pass to be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The pass ID
The pass code
The pass value
Details about the pass plan
The pass plan identifier
The pass plan name
Recipient details
Contact id
Recipient’s name (if applicable)
The recipient’s contact code (if available)
The method used to deliver the pass
The value the delivery method used to deliver the pass (e.g. phone number or email)
The currency of the pass
Promotion details (if applicable)
The ID of the promotion that the pass will consume
Promotion name
The reward offer that the promotion pass will consume.
The reward offer identifier
The reward offer name
Indicates a printed pass (true), or electronic pass (false)
The pass life cycle state
Created date
Created by id
Date of update
Updated by id
Validity of the pass - when the pass can be redeemed by
Validity type
Pass is valid for a period of time
Pass is valid for a specific date
Pass is always valid (never expires)
Period duration
Period unit of time
The ‘valid until’ date of redemption
Id of the entity against which the pass has been redeemed (e.g. a wallet id)
Used for PROMOTION type passes
How many times the PROMOTION type pass can be used
The actual number of times that the pass has been used
The pass pin
The custom field’s unique key
The custom field’s value
GET https://sandbox.crm.com/backoffice/v1/passes/485ff648-38f0-4a0e-a99b-28cd293dfc7c HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"code": "1231231231231231",
"value": 100,
"pass_plan": {
"id": "b2bbd932-4b1c-f3e0-54f7-dc15ef715d98",
"name": "Xmas Gift Card"
},
"recipient": {
"id": "60F9FE407140E20F707726A4AD9C84FA",
"name": "John Smith",
"code": "00001908",
"medium_type": "EMAIL",
"medium_value": "john_smith@crm.com"
},
"currency": "EUR",
"promotion": {
"id": "79d7e281-d118-4069-9eb3-e79fdec2fd97",
"name": "Welcome Back Promotion"
},
"reward_offer": {
"id": "c888dd7a-7476-538c-730a-9f924bd82d04",
"name": "Birthday Offer"
},
"printed": true,
"life_cycle_state": "ACTIVE",
"created_on": 1591796310,
"created_by": "4AD9C84FA60F9FE407140E20F707726A",
"updated_on": 1,
"updated_by": "4AD9C84FA60F9FE407140E20F707726A",
"validity": {
"type": "ALWAYS",
"period": 1,
"period_uot": "DAYS",
"to_date": 1591903780
},
"redemption_entity": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"usage": {
"allowed_usage": 2,
"used_times": 1
},
"pin": "0558",
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
Redeem a single pass, the Contact’s wallet will be credited with the pass value.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The pass code (either pass code or code_hash must be specified)
The hashed pass code (either code or code_hash must be specified)
The OTP (if applicable) - not in use
The pass pin. Required if the pass has a pin
The value of the pass to be redeemed (can only be set if the pass value = null)
Id of the Contact redeeming the pass. If no contact_id is provided then a new Contact will be created using the pass code as the contact name (i.e. unnamed contact)
Id of Contact’s wallet to be credited with the pass value
Responses
Successful Request
Body
The ID of the pass that has been successfully redeemed
POST https://sandbox.crm.com/backoffice/v1/passes HTTP/1.1
Content-Type: application/json
{
"code": "SLHY678993109PWE",
"code_hash": "11f45e8377aad7bd38910f1a01b4ebda53605eb8",
"otp": "2345",
"pin": "0587",
"value": 100,
"contact_id": "CEEE83D6E0804A30966F684B0269AD91",
"wallet_id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726A"
}{id}/actionsUpdate the life cycle state or the expiration date for all passes of a single pass plan
Path variables
The unique identifier of the pass plan whose passes will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The type of action to be applied
Activate all passes
Cancel all passes
Change the expiration date of all passes
The new expiration date (if changing expiration date)
Responses
Successful Request
PUT https://sandbox.crm.com/backoffice/v1/passes/103ddee2-cc09-e790-0f77-773ebb3b6c8c/actions HTTP/1.1
Content-Type: application/json
{
"action": "EXPIRY_DATE",
"expiration_date": 1592919625
}{id}{id}{id}{id}/actions{id}/dependencies{id}/tiering{id}/media_groupsCreate a new product. A single product can be created per Web API call
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The product’s SKU which also has to be unique
The product’s name. Its uniqueness depends on business rules
A description of the product
The product’s type
The product’s family
The product’s brand
The supported categories for the product
Shows when the product is available for sale. If not specified, then it defaults to Always valid
The specific period of time during which the product is available for sale. Applicable ad required if the validity setting is set to “Specific Period”
List of product identifiers which are considered as an Upsell for the new product
List of product identifiers which are considered as a Cross sell for the new product
List of variant attributes to be set on the new product. The allowed variant attributes are defined in the product’s type
The attribute’s key
the attribute’s value
The identifier of the product that is set as default modifier
Define a price for the new product.
The product’s price. Mandatory but only for Flat prices. For the rest rate models, tiered prices must be specified
The curency of the price
Applicable and mandatory for termed and one-time services
Applicable and mandatory for Tiered, Volume and Stairstep models. At least two tiers must be specified.
The starting tier
The upper tier. not required for the last range of tiers.
The price for eack tier range
Defines which organisations can be access and use it
Defines whether accessibility is inherited by product family or not
Defines which organisations can access and use it
The organisations (Merchants, Service Providers) that can access and use it (applicable only if type = SPECIFIC)
[
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]Applicable and mandatory only when creating Usage Services
Responses
The request has succeeded
Body
The product identifier
POST https://sandbox.crm.com/backoffice/v1/products HTTP/1.1
Content-Type: application/json
{
"sku": "ABC-123",
"name": "HD Decoder",
"description": "High definition decoder",
"type_id": "",
"family_id": "",
"brand_id": "",
"categories": [
"12bb7786-e57a-2982-2ef9-185ee55b480b"
],
"validity_setting": "ALWAYS_VALID",
"validity_period": {
"from_date": 1627457572,
"to_date": 1627457572
},
"upsells": [
""
],
"crosssells": [
""
],
"variant_attributes": [
{
"key": "size",
"value": "Small"
}
],
"composition": {
"item_type": "PRODUCT",
"item_id": "",
"classification": "ADDON",
"mandatory": true,
"priority": 1,
"minimum_quantity": 1,
"maximum_quantity": 3,
"price_inclusive": true,
"default_modifier_id": "56786309-7a21-8097-e107-6e9aec401840"
},
"pricing": {
"rate_model": "FLAT",
"price": 9.99,
"currency": "EUR",
"tax_model": "TAX_INCLUSIVE",
"billing_period": {
"duration": 1,
"uot": "MONTHS"
},
"tiers": [
{
"lower_tier": 1,
"upper_tier": 5,
"price": 8.99
}
]
},
"accessibility": {
"inherit_family": "false",
"type": "SPECIFIC_ORG",
"organisations": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]
},
"measurement_unit_id": ""
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726A"
}
{id}Updates an existing product
Path variables
The product identifier that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The product’s updated product type. When changing the type fo an existing product, restrictions are applied. The type can only change into another type of the same classification. In case of traceable physical goods, they cannot change into a type that marks them as nono-traceable
The supported categories for the product
The priority of the composition
The identifier of the product that is set as default modifier
Defines which organisations can be access and use it
Defines whether accessibility is inherited by product family or not
Defines which organisations can access and use it
The organisations (Merchants, Service Providers) that can access and use it (applicable only if type = SPECIFIC)
[
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]Applicable only when updating Usage Services
Responses
Body
PUT https://sandbox.crm.com/backoffice/v1/products/22386309-7a21-8097-e107-6e9aec401840 HTTP/1.1
Content-Type: application/json
{
"name": "",
"description": "",
"type_id": "",
"family_id": "",
"brand_id": "",
"validity_setting": "ALWAYS_VALID",
"validity_period": {
"from_date": 1,
"to_date": 1
},
"categories": [
"3302f723-01af-ecb7-b913-c3e649e35397"
],
"upsells": [
""
],
"crosssells": [
""
],
"variant_attributes": [
{
"key": "sze",
"value": ""
}
],
"composition": [
{
"classfication": "ADDON",
"item_type": "PRODUCT",
"item_id": "",
"mandatory": true,
"minimum_quantity": 1,
"maximum_quantity": 3,
"price_inclusive": true,
"priority": 1,
"default_modifier_id": "56786309-7a21-8097-e107-6e9aec401840"
}
],
"accessibility": {
"inherit_family": "false",
"type": "ACROSS_NETWORK",
"organisations": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]
},
"measurement_unit_id": ""
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "22386309-7a21-8097-e107-6e9aec401840"
}
{id}Deletes an existing product
Path variables
The product identifier that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://devapi.crm.com/backoffice/v1/products/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1 Returns a list of products that can be sold to customers, along with their basic information and price. Variant produts are excluded by default.
Request parameters
The unique identifier of the organisation that will sell the product
Use contact ID to check for any targetted promotions
Include list of promotions
Search for a product using its SKU, its name or description
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Include Creatives in Response
If not speficied, then all products are returned regardless of their availability
Filters products based on whether are provisionable or not
If specified, then return products that can be added on the specified subscription. Only termed services will be returned that have a price of the same billing period as the subscription’s.
The tag id’s of the products for filtering
If specified, then only products marked as modifiers are returned. A produc tis marked as modifier through its type. If not specified, then it’s ignored and filtering is not applied.
The date on which a product is sold/added as a charge or a service should also be within its validity date. Applicable only when listing products to get the services available to be ordered, added as charges or included in a subscription either as a new addition or through a service change. Filter based on the validity date, which may fall within a given date range. The value can be a string with a date in epoch format. Each option must also include an operator. Use up to two options based on the required search (e.g. validity_date[gte]=1618395497&validity_date[lt]=1618395497).
Returns results where the validity date is greater than this value
Returns results where the validity date is greater than or equal to this value
Returns results where the validity date is less than this value
Returns results where the validity date is less than or equal to this value
Defines whether stock balance information will be returned or not
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Defines whether the product is a stockable product
The product has at least one price of type Rental
Details about the related type
The type identifier
The type name
The product categories
Details about the event classification
The category identifier
The category name
The price’s unique identifier
Price label that provides a small descritpion to when the prie is applied
The product’s price. For Tiered/Volume/Stairstep rate models, this is the price of the first tier
Service termed period covers X billing cycles
Returns only the first tier only for Tiered/Volume/Stairstep prices.
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
Applicable only for stockable physical goods
Defines whether the product is provisionable or not
The product stock information (returned only if include_stock is set to true)
The number of items that are in the warehouse (including reserved ones)
The number of items that are reserved
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/products HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "7CD9C84FA60F9FE407140E20F707726A",
"sku": "ABC12345",
"name": "Base TV",
"description": "Basic TV & myFlix",
"classification": "TRACEABLE_PHYSICAL_GOOD",
"type_composition": "FLAT",
"number_of_running_promotions": 3,
"number_of_components": 2,
"number_of_variant_attributes": 2,
"number_of_variants": 9,
"number_of_prices": 3,
"availability": "IN_STOCK",
"valid_since": 123434343,
"is_variant": true,
"is_stockable": "true",
"can_be_rented": true,
"type": {
"id": "c01ecd1b-ff1e-35c2-7236-59ae20339c78",
"name": "Internal Transaction"
},
"brand": {
"id": "",
"name": ""
},
"family": {
"id": "",
"name": ""
},
"categories": [
{
"id": "c8d83493-3f50-40df-adb0-762ec5f41863",
"name": "Delivery Purchase"
}
],
"pricing": {
"id": "",
"label": "VIP contacts",
"price": 9.99,
"currency": "EUR",
"tax_model": "TAX_EXCLUSIVE",
"rate_model": "FLAT",
"price_terms": {
"contract_period": {
"duration": 1,
"uot": ""
},
"billing_period": {
"duration": 1,
"uot": ""
},
"trial_period": {
"duration": 1,
"uot": ""
},
"terms_billing_cycles": 1,
"auto_renewed": true,
"price_model": "FIXED",
"billing_model": "POST_BILL"
},
"tiers": {
"lower_tier": 1,
"upper_tier": 1
},
"measurement_unit": {
"id": "",
"name": "",
"display_name": ""
}
},
"owner": {
"id": "4248fab3-67d5-2eb1-eaf6-079ce18cd2ed",
"name": "Bravo Coffee"
},
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"usage_type": "PARTNER_LOGO",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/logo.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/logo.jpg"
}
]
}
],
"in_stock": "true",
"is_provisionable": "false"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Retrieve detailed information for a specific product. Infromation fo a single product can be retrieved per Web API call.
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Defines whether the product is a stockable product
Indicates whether the product can also be sold as a bundle
Shows whether the produc tis in stock or not. Applicable only for stockable physical goods.
Details about the related type
The type identifier
The type name
The product categories
Details about the event classification
The category identifier
The category name
The measurement unit of the product. Applicable for usage services only
The unique identifier of the measurement unit
The name of the measurement unit
The display name of the measurement unit
The priority of the variant attribute
The priority of the composition
The default modifier of this composition
The identifier of the product set as default modifier
The name of the product set as default modifier
The priority of the variant
Applicable only for variant products
Defines how the segment can be accessed from business network
Defines whether accessibility is inherited by product family or not
Defines which organisations can access and use it
The organisations (Merchants, Service Providers) that can access and use it (applicable only if type = SPECIFIC)
The organisation identifier
The organisation name
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
GET https://sandbox.crm.com/backoffice/v1/products/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "7CD9C84FA60F9FE407140E20F707726A",
"sku": "ABC12345",
"name": "Base TV",
"description": "Basic TV & myFlix",
"classification": "TERMED_SERVICE",
"type_composition": "FLEXIBLE_BUNDLE",
"is_variant": true,
"is_stockable": true,
"validity_setting": "SPECIFIC_PERIOD",
"number_of_running_promotions": 2,
"number_of_variants": 3,
"number_of_variant_attributes": 2,
"included_in_bundle": true,
"in_stock": "true",
"type": {
"id": "",
"name": ""
},
"family": {
"id": "",
"name": ""
},
"brand": {
"id": "",
"name": ""
},
"categories": [
{
"id": "895e8910-ebc2-d6c5-fb49-84bf99176171",
"name": "Coffee Milks"
}
],
"measurement_unit": {
"id": "895e8910-ebc2-d6c5-fb49-84bf99176171",
"name": "Call minutes",
"display_name": "min."
},
"validity_periods": [
{
"from_date": 1234234234,
"to_date": 23423423424
}
],
"variant_attributes": [
{
"id": "",
"key": "SIZE",
"value": "",
"mandatory": true,
"label": "",
"priority": 1
}
],
"composition": [
{
"id": "",
"classification": "ADDON",
"item_type": "FAMILY",
"item_id": "",
"name": "",
"sku": "",
"mandatory": true,
"minimum_quantity": 1,
"maximum_quantity": 5,
"price_inclusive": true,
"priority": 1
}
],
"upsells": [
{
"id": "",
"sku": "",
"name": ""
}
],
"crosssells": [
{
"id": "",
"sku": "",
"name": ""
}
],
"variants": [
{
"id": "",
"sku": "",
"name": "",
"description": "",
"type": {
"id": "",
"name": ""
},
"variant_attributes": [
{
"key": "size",
"value": "red"
}
],
"priority": 1
}
],
"composite_product": {
"id": "",
"sku": "",
"name": ""
},
"accessbility": {
"inherit_family": "true",
"type": "SPECIFIC_ORG",
"organisations": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "CRM"
}
]
},
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"usage_type": "LANDING_PAGE_BACKGROUND_IMAGE",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/logo.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/logo.jpg"
}
]
}
]
}
{id}/actionsPath variables
The product’s unique identifier
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The organisation identifiers for which the product action is applied.
The organisation identifiers for which the product action is applied.
Applicable only on Enabling/Disabling a product.
The type of the event
Delivered to the customer’s address
Picked up by the customer from a venue
Online sales of services
Responses
PUT https://sandbox.crm.com/backoffice/v1/products/{id}/actions HTTP/1.1
Content-Type: application/json
{
"action": "DISABLE",
"organisations": [
{
"organisation_id": "",
"supply_method": [
"DELIVERY"
]
}
]
}Performs product synchornization between the products that exist in the POS client over to CRM.COM.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Details about the products to synchornise
The product sku
The product name
The product description
The product type (if type is provided, id or name should be specified)
The product type identifier
The product type name
Details about the product brand (if brand is provided, id or name should be specified)
The product brand identifier
The product brand name
Details about the product family (if family is provided, id or name should be specified)
The product family identifier
The product family name
Details about the product categories (for each provided category, id or name or code should be specified)
The product category identifier
The product category name
The product category code
Defines the period that the product will be valid (if not specified, will be always valid)
The date from which the product will be valid
The date up to which the product will be valid
Details about the product tax rate (id or name should be specified)
The tax rate identifier
The tax rate name
Details about the product pricing
The price (amount). Mandatory only for Flat rate models
The price currency (3 code)
Details about the pricing tiering (required for Tiered/Volume/Stairstep based rate models). Mandatory and required for these 3 rate models. At leas two tiers must be provided
The lowest tier
The top tier. Not required for the last tier range
The tier price (amount)
Details about the product variant attributes
The variant attribute’s key
The variant attribute value
Details about the product components (applicable if the synced product is variant attribute or bundle)
The component product sku that will be used as component (sku or family, category or product type should be specified)
The component product family that will be used as component (sku, family, category or product type should be specified)
The product family identifier (id or name should be specified)
The product family name (id or name should be specified)
The component product type that will be used as component (sku or family, category or product type should be specified)
The product type identifier (id or name should be specified)
The product type identifier (id or name should be specified)
The component product category that will be used as component (sku or family, category or product type should be specified)
The product category identifier (id, name or code should be specified)
The product category name (id, name or code should be specified)
The product category code (id, name or code should be specified)
Defines if pricing is inclusive
The maximum number of components that should be added (applicable only for product family and type)
The maximum number of components that should be added (applicable only for product family and type)
Defines whether the component must be added to the product or not
Defines the classification of the component
eg. A cookie that can be added with a coffee selection
eg. Sugar that will be added in a coffee
The identifier of the product that is set as default modifier
The product’s measurement unit. A uique name should be specified
The measurement unit identifier
The measurement unit name
The unique product sku of variant_attribute (required if the synced product is a variant attribute of another product)
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
Defines the organisation that owns such product (if not specified, defaults to business)
Identify the owner based on organisation
The organisation identifier
Identify the owner based on organisation’s tap
The tap identifier
The tap code
Responses
OK
Body
A unique identifier of the Web API call which can be used for triggering the webhook and relate the api request to the webhook request (enables integrator to match the api request with the webhook request).
Synchronize stand-alone POS products
POST https://sandbox.crm.com/backoffice/v1/synchronise_products HTTP/1.1
api_key: adea79a6-fe7f-2e92-56c7-9a0685ffa290
Content-Type: application/json
{
"products": [
{
"sku": "SUGAR001",
"name": "Brown Sugar",
"description": "Brown Sugar",
"type": {
"name": "Condiments"
},
"family": {
"name": "Coffee & Tea Condiments"
},
"categories": [{
"code": "100"
}]
},
{
"sku": "FFM001",
"name": "Full Fat",
"description": "Full Fat Milk",
"type": {
"name": "Condiments"
},
"family": {
"name": "Coffee & Tea Condiments"
},
"categories": [{
"code": "100"
},{
"code": "1"
}]
},
{
"sku": "MFREESP01",
"name": "Freddo Espresso Medio",
"description": "Freddo Espresso Medio",
"type": {
"name": "Wet"
},
"family": {
"name": "FREDDO"
},
"categories": [{
"code": "210"
}]
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "a781bbc1-9067-c384-52fe-43586f89110a"
}
Synchronize POS products with pricing and category based components
POST https://sandbox.crm.com/backoffice/v1/synchronise_products HTTP/1.1
api_key: adea79a6-fe7f-2e92-56c7-9a0685ffa290
Content-Type: application/json
{
"products": [
{
"sku": "SUGAR001",
"name": "Brown Sugar",
"description": "Brown Sugar",
"type": {
"name": "Condiments"
},
"family": {
"name": "Coffee & Tea Condiments"
},
"categories": [{
"code": "100"
}],
"pricing": {
"rate_model": "FLAT",
"tax_model": "TAX_INCLUSIVE",
"price": 1.99,
"currency": "EUR"
}
},
{
"sku": "FFM001",
"name": "Full Fat",
"description": "Full Fat Milk",
"type": {
"name": "Condiments"
},
"family": {
"name": "Coffee & Tea Condiments"
},
"categories": [{
"code": "100"
},{
"code": "1"
}],
"pricing": {
"rate_model": "FLAT",
"tax_model": "TAX_INCLUSIVE",
"price": 1.99,
"currency": "EUR"
}
},
{
"sku": "MFREESP01",
"name": "Freddo Espresso Medio",
"description": "Freddo Espresso Medio",
"type": {
"name": "Wet"
},
"family": {
"name": "FREDDO"
},
"categories": [{
"code": "210"
}],
"pricing": {
"rate_model": "FLAT",
"tax_model": "TAX_INCLUSIVE",
"price": 5.99,
"currency": "EUR"
},
"components": [
{
"product_category": {
"code": "500"
},
"mandatory": false,
"classification": "MODIFIER",
"min_amount": 0,
"max_amount": 1,
"inclusive": true
},
{
"product_category": {
"code": "100"
},
"mandatory": true,
"classification": "MODIFIER",
"min_amount": 1,
"max_amount": 2
}
]
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "a781bbc1-9067-c384-52fe-43586f89110a"
}
{id}/dependenciesReturns a list of products on which the specified product has a dependency to
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
GET https://sandbox.crm.com/backoffice/v1/products/{id}/dependencies HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"item_type": "TYPE",
"item_id": "MOVIES",
"name": "",
"classification": "TERMED_SERVICE",
"dependency_type": "CANNOT_COEXIST",
"operator": "ANY",
"dependencies": [
{
"item_type": "PRODUCT",
"item_id": "",
"name": "",
"products": [
{
"id": "",
"sku": "",
"name": "",
"pricing": {
"price": 9.99,
"currency": "EUR",
"rate_model": "FLAT",
"tax_model": "TAX_EXCLUSIVE",
"price_terms": [
{
"billing_period": {
"duration": 1,
"uot": "MONTHS"
},
"auto_renew": true
}
]
}
}
]
}
]
}
]
}
{id}/tieringReturns a list of produts included within the specified product’s tier path
Path variables
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
The contact who wants to make a change. Required when contact pricing exists for the service to change to.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The unique identifier of the price terms
Small description of the price
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/products/{id}/tiering HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "3FD9C84FA60F9FE407140E20F707726A",
"sku": "abc-123456",
"name": "3Play",
"tier_level": 3,
"type_compositin": "",
"change_type": "UPGRADDE",
"prices": [
{
"id": "",
"price": 1,
"label": "VIP Contacts",
"currency": "",
"tax_model": "TAX_INCLUSIVE",
"price_terms": {
"billing_period": {
"duration": 1,
"uot": ""
},
"terms_billing_cycles": 1,
"auto_renewed": true,
"contract_period": {
"duration": 1,
"uot": ""
},
"trial_period": {
"duration": 1,
"uot": ""
},
"price_model": "VARIABLE",
"billing_model": "POST_BILL"
}
}
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/media_groupsLink a product with one or many Media Groups
Path variables
The product identifier that will be updated
Notes
Uploading media for a product requires the execution of the following APIs
- Create new Media Group
- Create Product Media Groups
- Upload Media
- Perform Cloudinary Upload (where CRM will send all signature details)
- Cloudinary service calls back CRM media group (using an internal callback)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The media group identifier
Responses
POST https://sandbox.crm.com/backoffice/v1/products/3f1f9e63-7f40-4e5e-bc42-11a162f7f1fb/media_groups HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
[
{
"media_group_id": "3f1f9e63-7f40-4e5e-bc42-11a162f7f1fb"
}
]
HTTP/1.1 200 OKWeb APIs to set the usage allowance per product price
{id}/allowance{id}/allowance/products{id}/allowance/conditions{id}/allowance{id}/allowance/products{id}/allowance/conditions{id}/allowance{id}/allowance/products{id}/allowance/conditions{id}/allowanceAdds allowance for one of the product’s prices
Path variables
Request body
Maximum allowed amount of money that usage consumption costs per transaction
Maximum allowed amount of money that usage consumption costs per day
Maximum allowed amount of money that usage consumption costs per billing cycle
Responses
Body
The product price’s unique identifier
POST https://sandbox.crm.com/backoffice/v1/prices/{id}/allowance HTTP/1.1
Content-Type: application/json
{
"accumulated_allowance": {
"cash_limits": {
"per_transaction": 9.99,
"per_day": 19.99,
"per_billing_cycle": 59.99
}
}
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "8c54d563-b991-4b76-8a83-557c08166f95"
}{id}/allowance/productsAdds products allowance for one of the product’s prices
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
List of products and/or product types that can be consumed, along with their limits (if any)
Unique idnetifier of the product or product type
Maximum allowed amount of money that usage consumption costs per transaction
Maximum allowed amount of money that usage consumption costs per day
Maximum allowed amount of money that usage consumption costs per billing cycle
Maximum allowed usage amount per transaction
Maximum allowed usage amount per day
Maximum allowed usage amount per billing cycle
Responses
Body
The product price’s unique identifier
POST https://sandbox.crm.com/backoffice/v1/prices/{id}/allowance HTTP/1.1
Content-Type: application/json
{
"products_allowance": [
{
"item_type": "PRODUCT",
"item_id": "8c54d563-b991-4b76-8a83-557c08166f95",
"cash_limits": {
"per_transaction": 9.99,
"per_day": 19.99,
"per_billing_cycle": 59.99
},
"usage_amounts": {
"per_transaction": 9.99,
"per_day": 19.99,
"per_billing_cycle": 59.99
}
}
]
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "8c54d563-b991-4b76-8a83-557c08166f95"
}
{id}/allowance/conditionsAdd conditions to product allowance. Multiple conditions can be added per product price.
Path variables
Request body
A list of organisations at which the orders/purchases that consume alloawance are performed. The list includes a set of distinct organisation identifiers
Organisation unique identifier
Responses
Body
POST https://sandbox.crm.com/backoffice/v1/prices/{id}/allowance/conditions HTTP/1.1
Content-Type: application/json
{
"organisations": [
{
"id": ""
}
]
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": ""
}{id}/allowanceAdds allowance for one of the product’s prices
Path variables
Request body
Maximum allowed amount of money that usage consumption costs per transaction
Maximum allowed amount of money that usage consumption costs per day
Maximum allowed amount of money that usage consumption costs per billing cycle
Responses
Body
The product price’s unique identifier
PUT https://sandbox.crm.com/backoffice/v1/prices/{id}/allowance HTTP/1.1
Content-Type: application/json
{
"accumulated_allowance": {
"cash_limits": {
"per_transaction": 9.99,
"per_day": 19.99,
"per_billing_cycle": 59.99
}
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "8c54d563-b991-4b76-8a83-557c08166f95"
}{id}/allowance/productsUpdates products allowance for one of the product’s prices
Path variables
The unique identifier of the product price
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
List of products and/or product types that can be consumed, along with their limits (if any)
Unique idnetifier of the product or product type
Maximum allowed amount of money that usage consumption costs per transaction
Maximum allowed amount of money that usage consumption costs per day
Maximum allowed amount of money that usage consumption costs per billing cycle
Maximum allowed usage amount per transaction
Maximum allowed usage amount per day
Maximum allowed usage amount per billing cycle
Responses
Body
The product price’s unique identifier
PUT https://sandbox.crm.com/backoffice/v1/prices/{id}/allowance/products HTTP/1.1
Content-Type: application/json
{
"products_allowance": [
{
"item_type": "PRODUCT",
"item_id": "8c54d563-b991-4b76-8a83-557c08166f95",
"cash_limits": {
"per_transaction": 9.99,
"per_day": 19.99,
"per_billing_cycle": 59.99
},
"usage_amounts": {
"per_transaction": 9.99,
"per_day": 19.99,
"per_billing_cycle": 59.99
}
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "8c54d563-b991-4b76-8a83-557c08166f95"
}
{id}/allowance/conditionsUpdate conditions to product allowance. Multiple conditions can be updated but for a single product price.
Path variables
Request body
A list of organisations at which the orders/purchases that consume alloawance are performed. The list includes a set of distinct organisation identifiers
Organisation unique identifier
Responses
Body
PUT https://sandbox.crm.com/backoffice/v1/prices/{id}/allowance/conditions HTTP/1.1
Content-Type: application/json
{
"organisations": [
{
"id": ""
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}{id}/allowanceReturns usage allowance of a specific product price.
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Maximum allowed amount of money that usage consumption costs per transaction
Maximum allowed amount of money that usage consumption costs per day
Maximum allowed amount of money that usage consumption costs per billing cycle
GET https://sandbox.crm.com/backoffice/v1/prices/{id}/allowance HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"accumulated_allowance": {
"cash_limits": {
"per_transaction": 9.99,
"per_day": 19.99,
"per_billing_cycle": 59.99
}
}
}{id}/allowance/productsReturns a list of products allowance for one of the product’s prices
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
List of products and/or product types that can be consumed, along with their limits (if any)
Unique idnetifier of the product or product type
Name of product or product type
Product SKU
Maximum allowed amount of money that usage consumption costs per transaction
Maximum allowed amount of money that usage consumption costs per day
Maximum allowed amount of money that usage consumption costs per billing cycle
Maximum allowed usage amount per transaction
Maximum allowed usage amount per day
Maximum allowed usage amount per billing cycle
Responses
Body
The product price’s unique identifier
POST https://sandbox.crm.com/backoffice/v1/prices/{id}/allowance HTTP/1.1
Content-Type: application/json
{
"products_allowance": [
{
"item_type": "PRODUCT",
"item_id": "8c54d563-b991-4b76-8a83-557c08166f95",
"cash_limits": {
"per_transaction": 9.99,
"per_day": 19.99,
"per_billing_cycle": 59.99
},
"usage_amounts": {
"per_transaction": 9.99,
"per_day": 19.99,
"per_billing_cycle": 59.99
}
}
]
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "8c54d563-b991-4b76-8a83-557c08166f95"
}
{id}/allowance/conditionsReturns a set of conditions to product allowance.
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
GET https://sandbox.crm.com/backoffice/v1/prices/{id}/allowance/conditions HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"organisations": [
{
"id": "",
"name": ""
}
]
}{id}/variants{id}/variants/{variant_id}{id}/variants/{variant_id}{id}/variants{id}/variantsCreates the Variant products of a composite product.
Path variables
The composite product’s unique idetifier
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The variants of the product (product id and sku/name are semi-optional)
The existing product identifier that will be added as variant
The new product sku that will be added as variant
The new product name that will be added as variant
The new product description that will be added as variant
The variant attributes
The variant key
The variant value
The priority of the variant
Responses
The request has succeeded
Body
The product variant identifier
POST https://sandbox.crm.com/backoffice/v1/products/22386309-7a21-8097-e107-6e9aec401840/variants HTTP/1.1
Content-Type: application/json
{
"variants": [
{
"sku": "",
"name": "",
"description": "",
"variant_attributes": [
{
"key": "size",
"value": "Small"
}
]
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "22386309-7a21-8097-e107-6e9aec401840"
}
{id}/variants/{variant_id}Update an existing variant priority
Path variables
The product’s unique idetifier
The variant product’s unique idetifier
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The priority of the component
Responses
PUT https://stagingapi.crm.com/backoffice/v1/products/{id}/components/{component_id} HTTP/1.1
Content-Type: application/json
{
"classification": "ADDON",
"mandatory": true,
"minimum_quantity": 1,
"maximum_quantity": 5,
"price_inclusive": true
}{id}/variants/{variant_id}Path variables
The product’s unique idetifier
The variant product’s unique identifer
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
DELETE https://sandbox.crm.com/backoffice/v1/products/22386309-7a21-8097-e107-6e9aec401840/variants/22386309-7a21-8097-e107-6e9aec4018QQ HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK {id}/variantsReturns the list of a composite product’s variants
Path variables
The product’s unique idetifier
Request parameters
How the order will be supplied
The unique identifier of the organisation providing the product
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The product’s price. If a Variant product does not have its own price, then the Composite products price is returned. For Tiered/VOlume/Stairstep rate models, this it the price of the first tier level.
Returns only the first tier only for Tiered/Volume/Stairstep prices.
GET https://sandbox.crm.com/backoffice/v1/products/22386309-7a21-8097-e107-6e9aec401840/variants HTTP/1.1 {id}/components{id}/components/{component_id}{id}/components/{component_id}{id}/components{id}/componentsAdds a new component in a flexible bundle product’s composition
Path variables
The product’s unique idetifier
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The unique identifier of the prouct or prodct type or product family or product category, depending on item_type selection
Applicable and required but only for product components.
Applicable for product type/family/category components
Applicable for product type/family/category components
Defines whether the component’s price is included in the bundles price or not
The priority of the component
The identifier of the product that is set as default modifier
Responses
Body
The new product component’s unique identifier
POST https://sandbox.crm.com/backoffice/v1/products/22386309-7a21-8097-e107-6e9aec401840/components HTTP/1.1
Content-Type: application/json
{
"item_type": "PRODUCT",
"item_id": "",
"classification": "ADDON",
"mandatory": true,
"minimum_quantity": 1,
"maximum_quantity": 5,
"price_inclusive": true,
"priority": 1,
"default_modifier_id": "56786309-7a21-8097-e107-6e9aec401840"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}{id}/components/{component_id}Update an existing component in a bundle product
Path variables
The product’s unique idetifier
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The priority of the component
The identifier of the product that is set as default modifier
Responses
Body
The updated product component’s uniqe identifier
PUT https://sandbox.crm.com/backoffice/v1/products/22386309-7a21-8097-e107-6e9aec401840/components/22386309-7a21-8097-e107-6e9aec4018QQ HTTP/1.1
Content-Type: application/json
{
"classification": "ADDON",
"mandatory": true,
"minimum_quantity": 1,
"maximum_quantity": 5,
"price_inclusive": true,
"priority": 1,
"default_modifier_id": "56786309-7a21-8097-e107-6e9aec401840"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}{id}/components/{component_id}Removes a component from a flexible product bundle
Path variables
The product’s unique idetifier
The product component unique identifier
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
DELETE https://stagingapi.crm.com/backoffice/v1/products/{id}/components/{copmonent_id} HTTP/1.1
HTTP/1.1 204 No Content {id}/componentsReturns a list of products that could be added as components of a flexible bundle
Path variables
Request parameters
Used when a component is added in a flexible termed service bundle in order to retrieve service components that have a price with the same billing cycle as the selected bundle
Applicable and required when a billing period is also passed as an input
Applicable only for termed services of flexible bundle composition. If specified, then it returns the service bundle’s existing (non-cancelled) service components and merges them with any additional components that can be included in the service bundle.
Search for a product available to be added as a bundle component using its SKU or name
Include Creatives in response
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The name of the component
The display name of the component
The default modifier of this component
The identifier of the product set as default modifier
The name of the product set as default modifier
If set to True, then the produc tis alreay included in the bundle
The price terms identifier
The type of the event
Delivered to the customer’s address
Picked up by the customer from a venue
Online sales of services
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
GET https://sandbox.crm.com/backoffice/v1/products/{id}/components HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"item_type": "COMPONENT_SET",
"item_id": "",
"mandatory": true,
"name": "Milk Options Cappuccino Massimo",
"display_name": "Milks",
"classification": "MODIFIER",
"price_inclusive": true,
"minimum_quantity": 1,
"maximum_quantity": 3,
"default_modifier": {
"id": "23458910-ebc2-d6c5-fb49-84bf99176171",
"sku": "",
"name": "Almond milk"
},
"products": [
{
"id": "",
"sku": "",
"name": "",
"description": "",
"is_included": "true",
"pricing": [
{
"id": "",
"price": 9.99,
"currency": "EUR",
"rate_model": "FLAT",
"tax_model": "TAX_INCLUSIVE",
"supply_method": "DELIVERY",
"taxes": [
{
"id": "",
"name": "",
"tax_code": "VAT",
"percentage": 1
}
]
}
],
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"usage_type": "PROFILEIMAGE",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/logo.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/logo.jpg"
}
]
}
]
}
]
}
]
}
{id}/tags{id}/tags{id}/tags/{tag_id}{id}/tags{id}/tagsThe following process adds tags to a product.
Path variables
The product GUID
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
the content relating to the tag
The tag id
POST https://sandbox.crm.com/backoffice/v1/products/HRDGSWRSFVSDSDBSDSSDDE/tags HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"tags": [
{
"id": "FDHNFDBR675765ghdh"
}
]
}{id}/tagsThe following process updates tags for a product.
Path variables
The contact GUID
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
the content relating to the tag
The tag id
PUT https://sandbox.crm.com/backoffice/v1/products/{id}/tags HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"tags": [
{
"id": "JKGSJGFKDGJKFGFSJK"
}
]
}{id}/tags/{tag_id}Deletes a tag on a product.
Path variables
The id of the product.
The id of the tag
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/products/JFGJKSFGJFSGH/tags/KJDFHKJGFSJHG HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK {id}/tagsThe following process retrieves the tags for a product
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
the tag ID
Name of Tag
Colour of tag
GET https://sandbox.crm.com/backoffice/v1/products/{id}/tags HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "JKGJHFSDJHGDSJHGA",
"name": "Maintenance",
"colour": "The colour of the tag"
}
]
}{id}/providers{id}/providers{id}/providers/{provider_id}{id}/providers{id}/providersAdd a new provisioning provider on a specific product
Path variables
The product (identifier) that provider details will be added
Notes
Within CRM, only products of type traceable physical goods, termed and one time services can be provisioned. Creating such products (given that their type is provisioned enabled) requires to specify the related provider details as described bellow
- Traceable Physical Goods: must specify by which integrator(s) can be provisioned
- Termed & One-Time Services: must specify by which integrator(s) can be provisioned and the supported external reference per provider (a service can be provisioned by more than one provider)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The provider (integrator identifier) that will provision the product
The provider (integrator) external reference (applicable and required only for termed and one-time services)
[
"EX-REF-01"
]Responses
POST https://sandbox.crm.com/backoffice/v1/products/16dec2ff-f6fb-4d44-c388-0f1f95c03890/providers HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
[
{
"integration_id": "8812f0cf-7256-2647-ffbd-a7356232f318",
"external_references": [
"EX-REF-01"
]
}
]
HTTP/1.1 200 OK {id}/providersUpdate an existing provisioning provider on a specific product
Path variables
The product (identifier) that provider details will be updated
Notes
Within CRM, only products of type traceable physical goods, termed and one time services can be provisioned. Creating such products (given that their type is provisioned enabled) requires to specify the related provider details as described bellow
- Traceable Physical Goods: must specify by which integrator(s) can be provisioned
- Termed & One-Time Services: must specify by which integrator(s) can be provisioned and the supported external reference per provider (a service can be provisioned by more than one provider)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The product provider (identifier) that will be updated
The provider (integrator identifier) that will provision the product
The provider (integrator) external reference (applicable and required only for termed and one-time services)
[
"EX-REF-01"
]Responses
PUT https://sandbox.crm.com/backoffice/v1/products/16dec2ff-f6fb-4d44-c388-0f1f95c03890/providers HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
[
{
"id": "10c44dba-6cbe-1015-1ba3-662ca3c24c36",
"integration_id": "8812f0cf-7256-2647-ffbd-a7356232f318"
}
]
HTTP/1.1 200 OK {id}/providers/{provider_id}Remove an existing provisioning provider from a specific product
Path variables
The product (identifier) that provider details will be deleted
The provider (identifier) that provider details will be removed
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/products/16dec2ff-f6fb-4d44-c388-0f1f95c03890/providers16dec2ff-f6fb-4d44-c388-0f1f95c03890 HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK {id}/providersGet a list of all provisioning providers of a specific product
Path variables
The product (identifier) that provider details will be retrieved
Request parameters
The identifier of the Provisioning provider integration
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The product provider identifier
Details about the provider integrator that provisions the product
The provider integratot identifier
The provider integratot name
The provider (integrator) external reference (applicable only for termed and one-time services)
[
"EXT-REF-01"
]The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/products/97ab56be-077b-984a-7499-760f9f15ecd4/providers HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "c9d10f2c-7511-ebc7-1158-3bfbb59ca5c1",
"integration": {
"id": "246af5e7-dd6c-affe-18a5-e8988f12a3da",
"name": "Irdeto",
"media_url": ""
},
"external_references": [
"EXT-REF-01"
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/licenses{id}/licenses{id}/licenses/{license_id}{id}/licensesAssign a license to a product. License can be set only to termed services owned by the service owner
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The identifier of the license to be assigned to the product
Responses
POST https://sandbox.crm.com/backoffice/v1/product/{id}/license HTTP/1.1
Content-Type: application/json
{
"license": "9a20b05c-4869-6361-6f78-fd90fdfdd9ed"
}
HTTP/1.1 200 OK {id}/licensesRetrieves licensing information of a product. License can be set only to termed services owned by the service owner
Path variables
The product (identifier) for which the assigned license will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
List of assets/modules/features to which access is granted through the license
The license identifier
The name of the license
The description of the license
GET https://sandbox.crm.com/backoffice/v1/product/84e80fe1-869c-86ef-cc61-3d75df58dba5/license/197c88c4-bcb2-2faf-2c71-ce26128364a2 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"license": {
"id": "197c88c4-bcb2-2faf-2c71-ce26128364a2",
"name": "Trial License",
"description": "This is free Trial License with limited access to features"
}
}{id}/licenses/{license_id}Removes assigned license from a product
Path variables
The product (identifier) for which the assigned license will be removed
The license (identifier) which will be removed
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successfull Request
DELETE https://sandbox.crm.com/backoffice/v1/products/84e80fe1-869c-86ef-cc61-3d75df58dba5/license/674f28db-65f8-b608-ed77-43ea40af0b2d HTTP/1.1
HTTP/1.1 200 OK Manage prices of prodcuts across the Product Catalogue. A product (regardles of its type, composition or classification) might have multiple prices. A price can be set for either a specific product or for all products within a family of products.
{id}/prices{id}/prices{id}/prices{id}/prices/{price_id}{id}/prices{id}/prices{id}/prices/{price_id}{id}/prices{id}/pricesAdds new prices to a product.
Path variables
The product’s unique idetifier
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Small description of the price
Price applied when the product was sold as part of the specified bundle.
Applicable when setting up prices for usage services only. The price is applied only when the usage is consumed through the specified termed or one time service. Only termed or one time services can be specified
Responses
Body
The identifier of the new product price
POST https://sandbox.crm.com/backoffice/v1/products/{id}/prices HTTP/1.1
Content-Type: application/json
[
{
"label": "VIP Contacts",
"price": 9.99,
"currency": "EUR",
"tax_model": "TAX_INCLUSIVE",
"rate_model": "FLAT",
"supply_method": "DELIVERY",
"price_type": "SALE",
"sales_model": "RETAIL",
"country": "GRC",
"bundle_product_id": "",
"used_via_product_id": "",
"tiers": [
{
"lower_tier": 1,
"upper_tier": 5,
"price": 8.99
}
],
"price_terms": {
"contract_period": {
"duration": 1,
"uot": ""
},
"billing_period": {
"duration": 1,
"uot": ""
},
"trial_period": {
"duration": "",
"uot": ""
},
"auto_renewed": true,
"terms_billing_cycles": 1,
"price_model": "FIXED",
"billing_model": "POST_BILL",
"rental_service_id": ""
},
"segments": [
{
"id": ""
}
],
"contacts": [
{
"id": ""
}
]
}
]
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": ""
}
{id}/pricesPath variables
The product’s unique idetifier
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The updated product price. Mandatory if rate model is set to Flat
The type of the event
Delivered to the customer’s address
Picked up by the customer from a venue
Online sales of services
Applicable when setting up prices for usage services only. The price is applied only when the usage is consumed through a specicid termed or one time service
Applicable and mandatory for rate models Tiered/VOlume/Stairstep. At least 2 tiers must be specified.
Required for all ranges apart from the last one.
The product identifier of the rental service. Applicable only for physicl goods and only if the customer selects to rent them on ordering. Only expense services can be specified. A rental price will include the rental service and the billing period as its price terms
The product that gives access to consuming a usage service. This product must either be a termed service or a one-time service. Applicable only when setting up prices for usage services.
The price for the the particular sales model
This price is applicable for particular segment/s.
This price is applicable for particular contact/s.
Small description of the price
Responses
Body
The idetifier of the updated product
PUT https://sandbox.crm.com/backoffice/v1/products/{id}/prices HTTP/1.1
Content-Type: application/json
[
{
"price": 9.99,
"currency": "EUR",
"tax_model": "TAX_INCLUSIVE",
"rate_model": "FLAT",
"supply_method": "DELIVERY",
"price_type": "SALE",
"country": "GRC",
"bundle_product_id": "",
"used_via_product_id": "",
"tiers": [
{
"lower_tier": 1,
"upper_tier": 5,
"price": 8.99
}
],
"price_terms": {
"terms_billing_cycles": 12,
"billing_period": {
"duration": "",
"uot": ""
},
"trial_period": {
"duration": 1,
"uot": ""
},
"auto_renewed": true,
"contract_period": {
"duration": "",
"uot": ""
},
"price_model": "VARIABLE",
"billing_model": "PRE_BILL",
"rental_service_id": "",
"used_by_product_id": ""
},
"sales_model": "RETAIL",
"segments": [
{
"id": ""
}
],
"contacts": [
{
"id": ""
}
],
"label": "VIP contacts"
}
]
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}/pricesGet a list of all prices of a specific product
Path variables
The product’s unique identifier
Request parameters
Delivered to the customer’s address
Picked up by the customer from a venue
Online sales of services
Used when a termed service product will be added on a subscription. Therefore, use the subscription’s billing cycle as a condition to list prices that include the same billing cycle in their price terms.
Applicable and required only when a billing period parameter is specified
Search for a price using its label
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The type of the event
Delivered to the customer’s address
Picked up by the customer from a venue
Online sales of services
The measurement unit per which the price will be applied. Applicable for prices of usage services only. The usage service’s measurement unit is returned.
Applicable when setting up prices for usage services only. The price is applied only when the usage is consumed through a specicid termed or one time service
Applicable only for temed service products
The product identifier of the rental service. Applicable only for physicl goods and only if the customer selects to rent them on ordering. Only expense services can be specified. A rental price will include the rental service and the billing period as its price terms
Small description of the price
GET https://sandbox.crm.com/backoffice/v1/products/{id}/prices HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "",
"group_id": "",
"rate_model": "FLAT",
"price": 9.99,
"currency": "EUR",
"country": "GRC",
"tax_model": "TAX_INCLUSIVE",
"valid_since": 12345678,
"supply_method": "DELIVERY",
"price_type": "SALE",
"measurement_unit": {
"id": "",
"name": "",
"display_name": ""
},
"used_via_product": {
"id": "",
"sku": "",
"name": ""
},
"bundle_product": {
"id": "",
"sku": "",
"name": ""
},
"price_terms": {
"billing_period": {
"duration": "",
"uot": ""
},
"terms_billing_cycles": 1,
"auto_renewed": true,
"contract_period": {
"duration": 1,
"uot": ""
},
"trial_period": {
"duration": 1,
"uot": ""
},
"price_model": "VARIABLE",
"billing_model": "PRE_BILL",
"rental_service": {
"id": "",
"sku": "",
"name": ""
}
},
"tiers": [
{
"price": 9.99,
"lower_tier": 1,
"upper_tier": 5
}
],
"sales_model": "RETAIL",
"segments": [
{
"id": ""
}
],
"contacts": [
{
"id": ""
}
],
"label": "VIP contacts"
}
]
{id}/prices/{price_id}Delete an existing product price.
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://devapi.crm.com/backoffice/v1/products/{id}/prices/{price_id} HTTP/1.1
HTTP/1.1 200 OK {id}/pricesAdds new prices to a product family.
Path variables
The product family’s unique idetifier
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The price of products for this product family. Mandatoy but only for Flat prices
the price’s currency. Defaults to the system’s currency if not specified
Applicable nad mandatory for Tiered/Volume/Stairstep rate models. At least two tiers must be specified.
Responses
Body
The identifier of the new product price
POST https://sandbox.crm.com/backoffice/v1/product_families/{id}/prices HTTP/1.1
Content-Type: application/json
[
{
"price": 9.99,
"currency": "EUR",
"tax_model": "TAX_INCLUSIVE",
"rate_model": "STAIRSTEP",
"supply_method": "PICK_UP",
"country": "GRC",
"tiers": [
{
"lower_tier": 1,
"upper_tier": 5,
"price": 8.99
}
],
"price_terms": {
"contract_period": {
"duration": 1,
"uot": ""
},
"billing_period": {
"duration": 1,
"uot": ""
},
"trial_period": {
"duration": "",
"uot": ""
},
"auto_renewed": true,
"terms_billing_cycles": 1,
"price_model": "FIXED",
"billing_model": "PRE_BILL"
},
"sales_model": "RETAIL",
"contacts": [
{
"id": ""
}
],
"segments": [
{
"id": ""
}
]
}
]
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": ""
}
{id}/pricesPath variables
The product family’s unique idetifier
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Responses
Body
PUT https://sandbox.crm.com/backoffice/v1/product_families/{id}/prices HTTP/1.1
Content-Type: application/json
[
{
"id": "",
"price": 9.99,
"currency": "EUR",
"tax_model": "TAX_INCLUSVE",
"rate_model": "STAIRSTEP",
"supply_method": "PICK_UP",
"country": "GRC",
"tiers": [
{
"lower_tier": 1,
"upper_tier": 5,
"price": 8.99
}
],
"price_terms": {
"contract_period": {
"duration": 1,
"uot": ""
},
"billing_period": {
"duration": 1,
"uot": ""
},
"trial_period": {
"duration": 1,
"uot": ""
},
"terms_billing_cycles": 1,
"auto_renewed": true,
"price_model": "FIXED",
"billing_model": "PRE_BILL"
},
"sales_model": "WHOLESALE",
"contacts": [
{
"id": ""
}
],
"segments": [
{
"id": ""
}
]
}
]
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}/prices/{price_id}Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://stagingapi.crm.com/backoffice/v1/product_families/{id}/prices/{price_id} HTTP/1.1
HTTP/1.1 200 OK {id}/pricesGet a list of all prices of a specific product family
Path variables
The product family’s unique identifier
Request parameters
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Available for prices with Tiered/Volume/Stairstep rate models
GET https://sandbox.crm.com/backoffice/v1/product_families/{id}/prices HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "",
"group_id": "",
"price": 9.99,
"currency": "EUR",
"rate_model": "VOLUME",
"tax_model": "TAX_INCLUSIVE",
"country": "GRC",
"valid_since": 12345678,
"supply_method": "DIRECT_SALE",
"price_terms": {
"contract_period": {
"duration": 1,
"uot": ""
},
"billing_period": {
"duration": 1,
"uot": ""
},
"trial_period": {
"duration": 1,
"uot": ""
},
"terms_billing_cycles": 1,
"auto_renewed": true,
"price_model": "FIXED",
"billing_model": "PRE_BILL"
},
"tiers": [
{
"price": 9.99,
"lower_tier": 1,
"upper_tier": 5
}
],
"sales_model": "WHOLESALE",
"contacts": [
{
"id": ""
}
],
"segments": [
{
"id": ""
}
]
}
]
{id}{id}{id}{id}/actions{id}/media_groupsCreates a new Promotion.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
EPOCH of start Date
EPOCH of end date
Responses
Body
The unique identifier of the new offer
POST https://devapi.crm.com/backoffice/v1/promotions HTTP/1.1
Content-Type: application/json
{
"name": "Sales season",
"type": "AUTO_APPLIED",
"short_description": "£10 off",
"long_description": "",
"discount_option": "AMOUNT",
"discount_value": 1,
"validity_setting": "ALWAYS",
"availability": {
"from_date": 1234566,
"to_date": 1234566
}
}{id}Updates the abasic information of a promotion. A single promotion can be pdated per Web API call.
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Responses
Body
The unique identifier of the updated promotion
PUT https://devapi.crm.com/backoffice/v1/promotions/{id} HTTP/1.1
Content-Type: application/json
{
"name": "Sales season",
"short_description": "£10 off",
"long_description": "",
"discount_option": "PERCENTAGE",
"discount_value": 1,
"validity_setting": "SPECIFIC_PERIOD",
"availability": [
{
"from_date": 1234566,
"to_date": 1234566
}
]
}{id}Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://devapi.crm.com/backoffice/v1/promotions/{id} HTTP/1.1
HTTP/1.1 200 OK Returns a list of promotions that can be applied per organisation, for specific period etc
Request parameters
Products that get a discount from the promotions
Required if a list of award items is specified. Indicates if the item is a product or a product type, brand, family or category.
Search for an promotion using its name
Use life cycle
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
List of customer segments
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
The page number
The number of records per page
The overal number of records
GET https://devapi.crm.com/backoffice/v1/promotions HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "7CD9C84FA60F9FE407140E20F707726A",
"type": "AUTO_APPLIED",
"name": "Sales season",
"short_description": "",
"long_description": "",
"life_cycle_state": "INACTIVE",
"discount_setting":"PERCENTAGE",
"discount_value":5,
"availability": {
"from_date": 1,
"to_date": 1
},
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"type": "MARKETING",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/offer.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/offer.jpg"
}
]
}
]
}
],
"pages": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Retrieves detailed information for a Promotion
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
GET https://sandbox.crm.com/backoffice/v1/promotions/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "7CD9C84FA60F9FE407140E20F707726A",
"name": "Sales season",
"life_cycle_state": "",
"short_description": "£10 off",
"long_description": "",
"availability": {
"from_date": 1234566,
"to_date": 1234566
},
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"usage_type": "PROFILEIMAGE",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/logo.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/logo.jpg"
}
]
}
]
}
{id}/actionsPath variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Responses
Body
PUT https://devapi.crm.com/backoffice/v1/promotions/{id}/actions HTTP/1.1
Content-Type: application/json
{
"life_cycle_state": "ACTIVE"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}{id}/media_groupsLink a promotion with one or many Media Groups
Path variables
The promotion identifier that will be updated
Notes
Uploading media for a promotion requires the execution of the following APIs
- Create new Media Group
- Create Promotion Media Groups
- Upload Media
- Perform Cloudinary Upload (where CRM will send all signature details)
- Cloudinary service calls back CRM media group (using an internal callback)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The media group identifier
Responses
POST https://sandbox.crm.com/backoffice/v1/promotions/3f1f9e63-7f40-4e5e-bc42-11a162f7f1fb/media_groups HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
[
{
"media_group_id": "3f1f9e63-7f40-4e5e-bc42-11a162f7f1fb"
}
]
HTTP/1.1 200 OK {id}/targets{id}/targets/contacts{id}/targets/organisations{id}/targets/timings{id}/targets/baskets{id}/targetsRetrieves the promotion target conditions for, customer_segments, venues, products
Path variables
The Prootion’s identifier whose target conditions will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
Details about contact segment conditions
The segment identifier
The segment name
The segment description
The number of results for that segment
Details about location conditions based on organisation
The organisation identifier
The organisation type
The organisation name
The organisation locations
The name of the location
The basket’s value.
The number of items included in the basket
name of Group
group outer operator
List of conditions
Product name
List of services to which a contact must already be subscribed to in order to get the promotion. Only termed services can be specified. Available and applicable only when the basket item is a termed service or a product type of Termed service classification.
Product identifier
Product SKU
Product Name
Subscirption service shoulf have this minimum quantity
GET https://sandbox.crm.com/backoffice/v1/promotions/6A24D2B5E44F44B28451FE021FCAD51E/targets HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"segments": [
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "VIP Customers",
"description": "All customers that are classified as VIP",
"size": 112
}
],
"organisations": [
{
"id": "234234234234-23423sdfs-324234sfsf",
"type": "VENUE",
"name": "Bravo Bakery",
"locations": [
{
"name": "Head Office",
"address_line_1": "Elia Papakyriakou 21",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2415",
"country_code": "CY",
"care_of": "",
"lat": "35.157115",
"lon": "33.313719",
"googleplaceid": "ChIJrTLr-GyuEmsRBfy61i59si0"
}
]
}
],
"timings": {
"fixed_period": {
"start_date": 1,
"end_date": 1
},
"availability": [
{
"day": 6,
"month": 11,
"start_time": "13:00",
"end_time": "14:00"
}
]
},
"basket": {
"rules": [
{
"payment_method_type": "CARD",
"supply_method": "DIRECT_SALE",
"value": 1,
"currency": "",
"quantity": ""
}
],
"products": {
"groups": [
{
"group": "G1",
"operator": "AND",
"conditions": [
{
"condition": "",
"operator": "AND",
"product": {
"id": "",
"id_type": "FAMILY",
"sku": "",
"name": ""
},
"quantity": 1,
"value": 1,
"currency": "",
"billing_cycle": {
"duration": 1,
"uot": ""
},
"contract_period": {
"duration": 1,
"uot": ""
},
"services": [
{
"id": "1af94364-b0f2-d656-aed6-bd3e3978cab4",
"sku": "TV0001",
"name": "Films",
"quantity": 2
}
]
}
]
}
]
}
}
}
{id}/targets/contactsPath variables
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
List of contact segments aaded as promotion targets
Responses
POST https://sandbox.crm.com/backoffice/v1/promotions/{id}/targets/contacts HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"segments": [
""
]
}
HTTP/1.1 201 Created {id}/targets/organisationsPath variables
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
List of organisations
Responses
POST https://sandbox.crm.com/backoffice/v1/promotions/{id}/targets/organisations HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"organisations": [
""
]
}{id}/targets/timingsPath variables
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
Responses
POST https://sandbox.crm.com/backoffice/v1/promotions/{id}/targets/timings HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"fixed_period": {
"start_date": 1,
"end_date": 1
},
"availability": [
{
"day": 6,
"month": 11,
"start_time": "13:00",
"end_time": "14:00"
}
]
}
HTTP/1.1 201 Created {id}/targets/basketsPath variables
The promotion identifier whose target conditions will be updated
Request body
The type of the event
Delivered to the customer’s address
Picked up by the customer from a venue
Online sales of services
The basket’s total amount in order to apply the promotion. The promotion is applied if the basket amount is more than or equal tot eh specified amount. The amount is specified in the default currency by default.
The number of items to be included in the basket in orer to apply the promotion
Name of group
group outer operator
A unique name for the condition
Product name
Applicable only for termed services
Applicable only for termed services
List of services to which a contact must already be subscribed to in order to get the promotion. Only termed services can be specified. Available and applicable only when the basket item is a termed service or a product type of Termed service classification.
Termed service product identifier
Contacts should already be subscribed tot he service with at least the specified quantity
Responses
OK
Body
Unique identifier for the Promotion’s Basket conditions
POST https://sandbox.crm.com/backoffice/v1/promotions/1af94364-b0f2-d656-aed6-bd3e3978cab4/targets/baskets HTTP/1.1
Content-Type: application/json
{
"basket": {
"rules": {
"payment_method_type": "CASH",
"supply_method": "DELIVERY",
"value": 1,
"quantity": 1
},
"products": {
"groups": [
{
"group": "G1",
"operator": "",
"conditions": [
{
"operator": "AND",
"condition": "",
"product": {
"id": "",
"id_type": "SKU",
"sku": "",
"name": ""
},
"quantity": 1,
"value": 1,
"billing_cycle": {
"duration": 1,
"uot": ""
},
"contract_period": {
"duration": 1,
"uot": ""
},
"services": [
{
"id": "1af94364-b0f2-d656-aed6-bd3e3978cab4",
"quantity": 2
}
]
}
]
}
]
}
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "751c28eb-7fe7-4d16-9ee9-1123bbe844cc"
}
What is offered in a promotions
{id}/offerings{id}/offerings{id}/offeringsPath variables
ID of promotion
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Request OK
Body
ID of Offerings
ID of Product
Product SKU
name of product
Applicable only when setting up Item Discounting and only if the discounted products are classified as termed services.
For how long the discount will be applied when billing the termed service
The unit of time for the promotion
How long the offerring will be applied. Applicable only if the offerring product is a termed service
GET https://sandbox.crm.com/backoffice/v1/promotions/{id}/offerings HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"offerings": [
{
"id": "",
"product": {
"id": "",
"id_type": "SKU",
"sku": "",
"name": ""
},
"timing": [
{
"period": {
"duration": 3,
"uot": "MONTHS"
},
"type": "ONE_TIME"
}
],
"discount_type": "PERCENT",
"amount": 1
}
]
}
{id}/offeringsAdd a number of product offerings that wil receive a discount
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Applicable only for termed services
Shows how many times the promotion’s discount will be applied.
Applied once
Appied forever
Applied onyl for a period of time
Period of time during which the promotion is applied. Applicable and required when the offering’s ty eis set to Period
Responses
Body
POST https://sandbox.crm.com/backoffice/v1/promotions/{id}/offerings HTTP/1.1
Content-Type: application/json
[
{
"discount_type": "PERCENT",
"amount": 1,
"product": {
"id": "",
"id_type": "BRAND"
},
"timing": [
{
"type": "ONE_TIME",
"period": {
"duration": 1,
"uot": "YEARS"
}
}
]
}
]{id}{id}{id}/actions{id}{id}/media_groupsCreate a new Order Catalog
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the Order Catalog
The description of the Order Catalog
The display name of the Order Catalog
The supported supply method of the Order Catalog
DELIVERYThe type of the event
Delivered to the customer’s address
Picked up by the customer from a venue
Online sales of services
Responses
The request has succeeded
Body
The order catalog identifier
{id}Updates an existing Order Catalog
Path variables
The order catalog identifier that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the Order Catalog
The description of the Order Catalog
The display name of the Order Catalog
The supported supply method of the Order Catalog
DELIVERYThe type of the event
Delivered to the customer’s address
Picked up by the customer from a venue
Online sales of services
Responses
The request has succeeded
Body
The order catalog identifier
{id}Deletes an existing Order Catalog
Path variables
The Order Catalog identifier that will be deleted
Responses
{id}/actionsPath variables
The order catalog identifier whose life cycle state will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The life cycle state that the order catalog will changed into
Responses
Body
The order catalog identifier
Returns a list of order catalogs of the organisation.
Request parameters
Search for an order catalog using its name, dispaly name or description
Retreive order catalogs based on organisation
Retrieve order catalog based on supply method
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The order catalog identifier
The name of the order catalog
The description of the order catalog
The dislay name of the order catalog
The life cycle state that the order catalog
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
The page number
The number of records per page
The overal number of records
{id}Retrieve detailed information for a specific order catalog.
Path variables
The order catalog identifier
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The order catalog identifier
The name of the order catalog
The description of the order catalog
The dislay name of the order catalog
The supported supply methods of the Order Catalog
DELIVERYThe life cycle state that the order catalog
The availability for ordering of the order catalog
The ay of the week the Order Catalog is available
The start time of the Order Catalog
The end time of the Order Catalog
Defines whether the order catalog is applicable for all organisations under the Business or specific organisations
The organisations (Merchants, Venues) that thos order catalog is applicable for (applicable only if type = SPECIFIC)
The organisation identifier
The name of the organisation
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
{id}/media_groupsCreate a new media group for a specific order catalog
Path variables
The order catalog identifer whose media groups will be set
Notes
Uploading media for an order requires the execution of the following APIs
- Create new Media Group
- Create Order Catalog Media Groups
- Upload Media
- Perform Cloudinary Upload (where CRM will send all signature details)
- Cloudinary service calls back CRM media group (using an internal callback)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The media group identifier
Responses
The request has succeeded
POST https://sandbox.crm.com/backoffice/v1/order_catalogs/6A24D2B5E44F44B28451FE021FCAD51E/media_groups HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
[
{
"media_group_id": "7ec65711-8f3b-538c-dec9-8c36ce818382"
}
]
HTTP/1.1 200 OK {id}/organisations{id}/organisationsDefine the organisations that will have access to utilize the order catalog
Path variables
The order catalog identifier
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Defines whether the order catalog is applicable for all organisations under the Business or specific organisations
The organisations (Merchants, Venues) that thos order catalog is applicable for (applicable only if type = SPECIFIC)
[
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]Responses
The request succeeded
Body
The order catalog identifier
{id}/time_availability{id}/time_availabilityUpdate the order catalog time availability
Path variables
The order catalog identifier
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The availability for ordering of the order catalog
The day of the week the Order Catalog is available
The start time the Order Catalog
The end time the Order Catalog
Responses
The request succeedded
Body
The order catalog identifier
{id}/categories{id}/categories/{category_id}{id}/categories/{category_id}/priorities{id}/categories/{category_id}{id}/categories{id}/categories/{category_id}/products{id}/categories/{category_id}/products{id}/categories/{category_id}/products/{product_id}{id}/categoriesCreate a new Order Category
Path variables
The order catalog identifier
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the category
The code of the category
The description of the category
The parent category of the category
The priority of the order category
Responses
Body
The unique identifier of the newly created order category
{id}/categories/{category_id}Update an Order Category
Path variables
The order catalog identifier
The order category identifier that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the order category
The code of the order category
The description of the order category
The parent of the order category
The priority of the order category
Responses
Body
The unique identifier of the order category
{id}/categories/{category_id}/prioritiesUpdate an Order Category priority
Path variables
The order catalog identifier
The order category identifier that priority will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The priority of the order category
{id}/categories/{category_id}Delete an Order Category
Path variables
The order catalog identifier
The order category identifier that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
{id}/categoriesReturn a list of order categories of an order catalog
Path variables
The order catalog identifier
Request parameters
If specified, then all order categories under the parent node will be returned. If not specified, then all root nodes of the tree are returned.
Returns all order categories of the tree if set to True, ignoring parent_id parameters
Returns all products of the category id set to True
Search for an order category based on name and description
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The order category identifier
The name of the order identifier
The code of the order identifier
The description of the order identifier
The number of child nodes
The priority of the order category
The parent cateogry (if applicable)
The parent order category identifier
The name of the parent order category
The list of products in the order category (display only if include_products = TRUE)
The product identifier
The name of the product
The SKU of the product
The priority of the product
The page number
The number of records per page
The overal number of records
{id}/categories/{category_id}/productsAdds or removes products from the Order Catalog
Path variables
The order catalog identifier
The order category identifier that products will be added to/removed from
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The products to be added to the order category
The products to be added to the order category
The priority of the product
Responses
{id}/categories/{category_id}/productsRetrieve products of an Order Category
Path variables
The order catalog identifier
The order category identifier the products will be retreived from
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The product idenitifer
The name of the product
The sku of the product
The priority of the product
GET https://sandbox.crm.com/backoffice/v1/order_catalogs/{id}/order_categories/{category_id}/products HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "7CD9C84FA60F9FE407140E20F707726A",
"sku": "ABC12345",
"name": "Base TV"
}
],
"pages": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}/categories/{category_id}/products/{product_id}Updates the order of the product in the category
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The product priority
Responses
The request has succeeded
{id}/details{id}{id}{id}/life_cycle_stateCreate a new reward scheme
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The reward scheme name
The reward scheme description
Defines how customers can sign up to the reward scheme
Customers will sign up upon registration automatically
Customers can sign up manually
Customers can be signed up on a selective and controlled manner (request to join), usually based on a third-party identification or domain specific emails
Defines whether close loop (controlled) sign ups will be validated based on a third-party identification (external system) or domain specific emails. Required if the sign up option = controlled sign up
Defines the supported email domains for close loop (controlled) sign ups based on domain. Required when the sign up token = email domain
The reward scheme terms and conditions
Responses
The request has succeeded
Body
The reward scheme identifier
POST https://devapi.crm.com/backoffice/v1/reward_schemes HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"name": "CRMdotCOM Scheme",
"description": "The main reward scheme of CRMdotCOM",
"sign_up_option": "AUTO_SIGN_UP"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{id}Update an existing reward scheme
Path variables
The reward scheme (identifier) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The reward scheme name
The reward scheme description
Defines the supported email domains for close loop (controlled) sign ups based on domain. Required on close loop reward schemes and the sign up token = email domain
The reward scheme terms and conditions
Responses
The request has succeeded
Body
The reward scheme identifier
PUT https://devapi.crm.com/backoffice/v1/reward_schemes/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"name": "CRMdotCOM Scheme",
"description": "The main reward scheme of CRMdotCOM",
"email_domains": [
"crm.com"
],
"terms_and_conditions": "Only customers that already have CRMdotCOM reward app can join this scheme"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
Search for reward schemes
Request parameters
The reward scheme name
Defines how customers can sign up to the reward scheme
Customers will sign up upon registration automatically
Customers can sign up manually
Customers can be signed up on a selective and controlled manner (request to join), usually based on a third-party identification or domain specific emails
The reward scheme life cycle state
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The reward scheme identifier
The reward scheme name
The reward scheme description
Defines how customers can sign up to the reward scheme
Customers will sign up upon registration automatically
Customers can sign up manually
Customers can be signed up on a selective and controlled manner (request to join), usually based on a third-party identification or domain specific emails
The reward scheme state
GET https://devapi.crm.com/backoffice/v1/reward_schemes HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "CRMdotCOM Scheme",
"description": "The main reward scheme of CRMdotCOM",
"sign_up_option": "CLOSE_LOOP_SIGN_UP"
}
]
}{id}Get details for a single reward scheme
Path variables
The reward scheme (identifier) that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The reward scheme identifier
The reward scheme name
The reward scheme description
The reward scheme terms and conditions
Defines how customers can sign up to the reward scheme
Customers will sign up upon registration automatically
Customers can sign up manually
Customers can be signed up on a selective and controlled manner (request to join), usually based on a third-party identification or domain specific emails
Defines whether close loop (controlled) sign ups will be validated based on a third-party identification (external system) or domain specific emails. Required if the sign up option = controlled sign up
Defines the supported email domains for close loop (controlled) sign ups based on domain. Required when the sign up token = email domain
The reward scheme state
GET https://devapi.crm.com/backoffice/v1/reward_schemes/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "CRMdotCOM Scheme",
"description": "The main reward scheme of CRMdotCOM",
"sign_up_option": "SELF_SIGN_UP",
"terms_and_conditions": "Only customers that already have CRMdotCOM reward app can join this scheme"
}{id}/life_cycle_stateChange the life cycle state of a single reward scheme
Path variables
The reward scheme (identifier) whose life cycle state will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The reward scheme state
Responses
Successful Request
Body
The reward scheme identifier
POST https://devapi.crm.com/backoffice/v1/reward_schemes/CAD1E31269B76D7A65ACCE45B2E68DFD/life_cycle_state HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"life_cycle_state": "INACTIVE"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{id}{id}{id}{id}/life_cycle_state{id}/contactsCreate a new reward offer for a specific reward scheme
Notes
Creating an offer with the respective target/award/spend conditions should be made using the following APIs
- Create Reward Offer: creates the reward offer with key attributes (e.g. name, typr and scheme)
Target Conditions
- Add Target Contact: offer will be eligible to award a customer event based on specific contact segments (applicable for all offer types)
- Add Target Organisation: offer will be eligible to award a customer event based on specific organisations that the event took place (applicable only for monetary discount, product discount and happy hour offer types). Timing conditions are applicable for achievement offers, while transation products are applicable for subscription maturity offers as well
- Add Target Transaction: offer will be eligible to award a customer event based on specific transaction details, such as total purchase amount and purchased products (applicable only for monetary discount, product discount and happy hour offer types)
- Add Target Evaluation: offer will be eligible to award customers based on a recurring eveluation period, such as lottery (applicable only for thank you gift and lottery offer types)
- Add Target Referral: offer will be eligible to award a customer (referral) event based specific referral behavior (applicable only for referral offer types)
- Add Target Customer Events: offer will be eligible to award a customer event based on specific event classification, such as card-linked purchases (applicable only for monetary discount, product discount, happy hour and achievement offer types)
- Add Target Achievements: offer will be eligible to award a customer event based on specific achievement behavior (applicable only for achievement offer types)
- Add Target Subscription Maturity: offer will be eligible to award a customer for being loyal customer based on subscription maturity (applicable only for subscription maturity offers)
Award/Spend Conditions
- Add Award Settings: ability to define award method (amount or percentage based), award restrictions, spend method (instant or deferred), spend conditions and validity/expiration period
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The reward offer name
The reward scheme identifier that the offer will belong to it
The offer availability (from-to) dates (whithin this period customers will be awarded)
The from date that the offer will be applicable
The to date that the offer will be applicable to
The offer goal
The offer type (each goal is related with a type)
The offer short description
The offer long description
The offer terms and conditions
Defines whether the reward offer will be featured (ordered higher) in customer facing clients
Responses
The request has succeeded
Body
The reward offer identifier
POST https://devapi.crm.com/backoffice/v1/reward_offers HTTP/1.1
Content-Type: application/json
{
"name": "10% off any purchase",
"short_description": "",
"long_description": "",
"scheme": {
"id": "622175bf-03b0-4e9e-9df9-adf85080a889"
},
"availability": {
"available_from": 1,
"available_to": 1,
"is_recurring": true
},
"goal": "VISITS",
"reward_type": "MATURITY",
"tags": [
{
"id": "guid"
}
]
}
HTTP/1.1 201 Created
{id}Update an existing reward offer
Path variables
The reward offer (identifier) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The offer name
The offer availability (from-to) dates (whithin this period customers will be awarded)
The from date that the offer will be applicable
The to date that the offer will be applicable to
The offer short description
The offer long description
Terms and Conditions
Defines whether the reward offer will be featured (ordered higher) in customer facing clients
Responses
The request has succeeded
Body
The reward offer identifier
PUT https://devapi.crm.com/backoffice/v1/reward_offers/6A24D2B5E44F44B28451FE021FCAD51E HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"name": "10% off any purchase",
"tags": [
"6A24D2B5E44F44B28451FE021FCAD51E"
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E"
}{id}Delete an existing reward offer
Path variables
The reward offer (identifier) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://devapi.crm.com/backoffice/v1/reward_offers/6A24D2B5E44F44B28451FE021FCAD51E HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK Search for reward offers
Request parameters
The value of the search (case insensitive) across name
Search by reward offer name
Filter by life cycle state
Filter based on scheme (defaults to All)
Select by organisations ( merchants ), by default the token / secret key will be used to identify the top level of the Network that offers are created for.
Filters organisations (identifiers) whether offers are owned by them
Filter based on offer type
Filter based on whether the reward offers will be featured (ordered higher) in customer facing clients
Filter based on approval requests applied on such offers
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Defines whether approval requests information should be retrieved or not
Filter based on approval request state
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The reward offer identifier
The reward offer name
Short description used in Mobile or other APP experiences
The reward offer description
The reward scheme that the offer belongs to
The reward scheme identifier
The reward scheme name
The offer goal
The offer type (each goal is related with a type)
The offer availability (from-to) dates (whithin this period customers will be awarded)
The date of start period for offer
The date of end period for offer
The tags associated to the reward offer
The tag identifier
The tag name
The offer life cycle state
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
Defines whether the reward offer will be featured (ordered higher) in customer facing clients
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
Details about the latest requested approval(s)
The approval request state
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/reward_offers HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "10% off any purchase",
"short_description": "Reward Offer Short Description",
"long_description": "Reward Offer Long Description",
"scheme": {
"id": "622175bf-03b0-4e9e-9df9-adf85080a889",
"name": "Coffee Scheme"
},
"goal": "SPEND",
"reward_type": "KPI",
"availability": {
"available_from": 1606819297,
"available_to": 1606819297
},
"tags": [
{
"id": "wer-3rwefsf2rf-wef-2f-wef-2r",
"name": "Seasonal"
}
],
"life_cycle_state": "PENDING_APPROVAL",
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"usage_type": "MARKETING",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/logo.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/logo.jpg"
}
]
}
],
"is_featured": "false",
"owner": {
"id": "0d943fdb-c30a-924a-a1ee-d7dbdff99cc5",
"name": "CRM.COM"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Get details for a single reward offer
Path variables
The reward offer (identifier) that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The reward offer identifier
Name of Offer Used internally
The reward scheme that the offer belongs to
The reward scheme identifier
The reward scheme name
The offer goal
The offer type (each goal is related with a type)
The offer short description
The offer long description
The offer terms and conditions
The offer availability (from-to) dates (whithin this period customers will be awarded)
The from date that the offer will be applicable
The to date that the offer will be applicable to
The tags associated with the reward offer
The tag identifier
The tag name
The offer life cycle state
Media groups information (multiple can be supported)
The media group identifier
The media group name
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
Defines whether the reward offer will be featured (ordered higher) in customer facing clients
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
GET https://sandbox.crm.com/backoffice/v1/reward_offers/6A24D2B5E44F44B28451FE021FCAD51E HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "10% off any purchase",
"scheme": {
"id": "622175bf-03b0-4e9e-9df9-adf85080a889",
"name": "Coffee Scheme"
},
"goal": "SPEND",
"reward_type": "APPLICATION",
"short_description": "Reward Offer Short Description",
"long_description": "Reward Offer Long Description",
"terms_and_conditions": "Applicable for all EU residents",
"availability": {
"available_from": 1606819297,
"available_to": 1606819297
},
"tags": [
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "Seasonal"
}
],
"life_cycle_state": "EXPIRED",
"media_groups": [
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "Marketing Media",
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"usage_type": "PROFILEIMAGE",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/logo.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/logo.jpg"
}
]
}
]
}
],
"is_featured": "false",
"owner": {
"id": "20095138-cdec-0743-7ac1-d0aeb68d553f",
"name": "Best Coffee"
}
}
{id}/life_cycle_stateChange the life cycle state of a single reward offer
Path variables
The reward offer (identifier) whose life cycle state will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The life cycle state that the reward offer will changed into
Responses
The request has succeeded
Body
The reward offer identifier
POST https://devapi.crm.com/backoffice/v1/reward_offers/CAD1E31269B76D7A65ACCE45B2E68DFD/life_cycle_state HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"life_cycle_state": "ACTIVE"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{id}/contactsReturns awarded contacts of a reward offer
Path variables
The reward offer (identifier) whose awarded contacts will be returned
Notes
Applicable only for Lottery offer types
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The contact’s unique identifier
The contact’s name (full name for Persons, company name for Companies)
The contact’s code
The date that the award was provided
The awarded amount
The awarded product (free product)
The awarded product type
The awarded product identifier
The awarded product name
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/reward_offers/9f2e66af-d42d-4c15-9346-7e2cc0a89f6e/contacts HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "John Smith",
"code": "0049304938571623",
"award_amount": 9.99,
"date": 1606376717
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/targets/contacts{id}/targets/organisations{id}/targets/transactions{id}/targets/evaluations{id}/targets/referrals{id}/targets/events{id}/targets/achievements{id}/targets/maturity{id}/targets{id}/targets/contactsSet the contact target conditions for a specific reward offer
Path variables
The reward offer (identifier) whose contact target conditions will be updated
Notes
Applicable for all reward offer types, excluding sign up
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The contact segments that will be targeted by the offer
Customers that complete their profile
The profile information that is provided
Responses
The request has succeeded
Body
The reward offer identifier
POST https://devapi.crm.com/backoffice/v1/reward_offers/6A24D2B5E44F44B28451FE021FCAD51E/targets/contacts HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"contact_segments": [
"6A24D2B5E44F44B28451FE021FCAD51E"
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "acd2d760-a059-6582-adb9-f1cf2982ef65"
}{id}/targets/organisationsSet the location (organisation) target conditions for a specific reward offer
Path variables
The reward offer (identifier) whose location target conditions will be set
Notes
Applicable only for Product Discount, Monetary Discount and Happy Hour reward offer types
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The organisations that will be targeted by this offer
The countries (code) that will be targeted by this offer
CYPResponses
The request has succeeded
Body
The reward offer identifier
POST https://devapi.crm.com/backoffice/v1/reward_offers/6A24D2B5E44F44B28451FE021FCAD51E/targets/organisations HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"organisations": [
"6A24D2B5E44F44B28451FE021FCAD51E"
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "acd2d760-a059-6582-adb9-f1cf2982ef65"
}{id}/targets/transactionsSet the transaction (purchase) target conditions for a specific reward offer
Path variables
The reward offer (identifier) whose transaction target conditions will be updated
Notes
Target Transactions conditions are applicable for Product Discount, Monetary Discount and Happy Hour reward offer types
Timing conditions are applicable for Achievement offer types
Product conditions (w/o cumulative) are applicable for Subscription Maturity
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
List conditions on transaction
Total transaction conditions
The transaction currency
The transaction value
The period for which cumulative will be performed
The condition operator
Product conditions
List of product group conditions
The group name
The group operator
Details about the group conditions
The condition name
the product condition (sku/brand/etc) identifier
The condition type
The condition name
The product condition quantity
The product condition value
The currency for product value
The period for which cumulative will be performed
The condition operator
Timing Conditions
Offer targets condition on customer birthday
Offer targets condition on customer nameday
Offer will target X days before birthday/nameday
Offer will target X days after birthday/nameday
List of days/times that offer will target
The availability month
The day of the week as condition (1-7), 1 is Sunday
The availability start time
The availability end time
Responses
Body
The reward offer identifier
POST https://sandbox.crm.com/backoffice/v1/reward_offers/1af94364-b0f2-d656-aed6-bd3e3978cab4/targets/transactions HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"transactions": {
"transaction_total": {
"currency": "EUR",
"transaction_value": 10.99,
"unit_of_time": "WEEK",
"operator": "AND"
},
"products": [
{
"groups": [
{
"group": "G1",
"operator": "AND",
"conditions": [
{
"condition": "C1",
"id": "46332fda-8f84-4b6a-bd46-f00e48445b82",
"id_type": "SKU",
"name": "Product conditions",
"qty": 1,
"value": 2.5,
"currency": "EUR",
"unit_of_time": "YEAR",
"operator": "AND"
}
]
}
]
}
],
"timings": {
"is_birthday": true,
"is_nameday": true,
"days_before": 1,
"days_after": 1,
"availability": [
{
"month": 1,
"day": 1,
"start_time": "19:00",
"end_time": "21:00"
}
]
}
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "acd2d760-a059-6582-adb9-f1cf2982ef65"
}
{id}/targets/evaluationsSet the evaluation (timings) target conditions for a specific reward offer
Path variables
The reward offer (identifier) whose evaluation target conditions will be updated
Notes
Applicable for Lottery and Thank You Gift reward offer types
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Details about the evaluation time
The date that the offer will be evaluaed (just once)
The repeat frequency provided as a cron expression pattern
Responses
The request has succeeded
Body
The reward offer identifier
POST https://sandbox.crm.com/backoffice/v1/reward_offers/71688194-e07f-4010-acd1-b8dec6d19a7a/targets/evaluations HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"timings": {
"start_date": 1592317898,
"frequency": "0 0 12 * * ?"
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "acd2d760-a059-6582-adb9-f1cf2982ef65"
}{id}/targets/referralsSet the referral target conditions for a specific reward offer
Path variables
The reward offer (identifier) whose target conditions will be updated
Notes
Applicable only for Referral reward offer types
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Defines what is required to award such referral
Award will be provided after the referred customer registers and makes a purchases
Award will be provided after the referred customers registers
Responses
The request has succeeded
Body
The reward offer identifier
POST https://stagingapi.crm.com/backoffice/v1/reward_offers/71688194-e07f-4010-acd1-b8dec6d19a7a/targets/referrals HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"action": "ON_REGISTRATION"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "acd2d760-a059-6582-adb9-f1cf2982ef65"
}{id}/targets/eventsSet the event (classifications) target conditions for a specific reward offer
Path variables
The reward offer (identifier) whose target conditions will be updated
Notes
Applicable only for Product Discount, Monetary Discount, Happy Hour and Achievement reward offer types
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Defines what is required to award such referral
5d660d3a-80bb-1925-ef77-e29fd4bbfc7bResponses
The request has succeeded
Body
The reward offer identifier
POST https://sandbox.crm.com/backoffice/v1/reward_offers/71688194-e07f-4010-acd1-b8dec6d19a7a/targets/events HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"event_classifications": [
"5d660d3a-80bb-1925-ef77-e29fd4bbfc7b"
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "acd2d760-a059-6582-adb9-f1cf2982ef65"
}{id}/targets/achievementsSet the achievement target conditions for a specific reward offer
Path variables
The reward offer (identifier) whose target conditions will be updated
Notes
Applicable only for Achievement reward offer types
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Defines the monetary (amount) conditions
The transaction currency
The transaction value
The transaction value operator that should be met
Value should be equal to the configured one
Value should be greater or equal to the configured one
Value should be greater or less to the configured one
Value should be less to the configured one
Value should be greater to the configured one
Responses
Body
The reward offer identifier
POST https://sandbox.crm.com/backoffice/v1/reward_offers/71688194-e07f-4010-acd1-b8dec6d19a7a/targets/achievements HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"cumulative": {
"unit_of_time": "WEEK",
"value": 12
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "acd2d760-a059-6582-adb9-f1cf2982ef65"
}{id}/targets/maturitySet the maturity target conditions for a specific reward offer
Path variables
The reward offer (identifier) whose target conditions will be updated
Notes
Applicable only for Subscription Maturity reward offer types
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Defines what is required to award subscription maturity
The period for subscription maturity check
The maturity period
Responses
Body
The reward offer identifier
POST https://sandbox.crm.com/backoffice/v1/reward_offers/71688194-e07f-4010-acd1-b8dec6d19a7a/targets/maturity HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"maturity": {
"unit_of_time": "MONTH",
"value": 12
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "b99d5c5f-42a8-21da-b1f7-7c3398c110a7"
}{id}/targetsRetrieves the offer target conditions, such as contact segments
Path variables
The reward offer (identifier) whose target conditions will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
Details about contact segment conditions
The segment identifier
The segment name
The segment description
The number of results for that segment
Details about profile completeness conditions
The profile information that is provided
Details about location conditions based on organisation
The organisation identifier
The organisation type
The organisation name
The organisation locations
Information about the organisation’s location
The name of the location
The address of the location
Additional address information about the location
The state/province/county of the location
The town/city of the location
The postal code of the location
The country code of the location
The latitude of the location
The longitude of the location
The Google textual identifier that uniquely identifies a location
Details about location conditions based on countries
The country (code) that is targetted
Details about transaction conditions
Transaction (total) Conditions
The transaction currency
The transaction value
The period for which cumulative will be performed
Condition operator
Product Conditions
A list of group conditions
The group name
The group condition operator
List group conditions
The condition name
The condition identifier
The condition type
The product condition (sku/brand/family) name
The product condition (sku/brand/family) description
The product condition quantity
The product condition value
The currency code
The period for which cumulative will be performed
The condition operator
Timing Conditions
Offer targets condition on customer birthday
Offer targets condition on customer nameday
Offer will target X days before birthday/nameday
Offer will target X days after birthday/nameday
List of days/times that offer will target
The availability month
The day of the week as condition (1-7), 1 is Sunday
The availability start time
The availability end time
Details about evaluation
DEtails about the evaluation time
The date that the offer will be evaluaed (just once)
The repeat frequency provided as a cron expression pattern
Details about passes (types) conditions
Details about the related type
The type identifier
The type name
Details about referral conditions
Defines what is required to award such referral
Award will be provided after the referred customer registers and makes a purchases
Award will be provided after the referred customers registers
Details about the customer event classifications conditions
The customer event classification identifier
The customer event classification name
Details about achievement conditions
Defines the monetary (amount) conditions
The transaction currency
The transaction value
The transaction value operator that should be met
Value should be equal to the configured one
Value should be greater or equal to the configured one
Value should be greater or less to the configured one
Value should be less to the configured one
Value should be greater to the configured one
GET https://sandbox.crm.com/backoffice/v1/reward_offers/6A24D2B5E44F44B28451FE021FCAD51E/targets HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"contact_segments": [
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "VIP Customers",
"description": "All customers that are classified as VIP",
"size": 112
}
],
"social_actions": [
{
"platform": "TRIPADVISOR",
"action": "SHARE"
}
],
"profile_completeness": [
{
"information": "PHONE"
}
],
"organisations": [
{
"id": "234234234234-23423sdfs-324234sfsf",
"type": "MERCHANT",
"name": "Bravo Bakery",
"locations": [
{
"name": "Head Office",
"address_line_1": "Elia Papakyriakou 21",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2415",
"country_code": "CYP",
"care_of": "Main",
"lat": "35.157115",
"lon": "33.313719",
"googleplaceid": "ChIJrTLr-GyuEmsRBfy61i59si0"
}
]
}
],
"countries": [
{
"country": "CYP"
}
],
"transactions": {
"transaction_total": {
"currency": "EUR",
"transaction_value": 50,
"period": 12,
"operator": "AND"
},
"products": [
{
"groups": [
{
"group": "G1",
"operator": "AND",
"conditions": [
{
"condition": "C1",
"id": "46332fda-8f84-4b6a-bd46-f00e48445b82",
"id_type": "BRAND",
"name": "Coffee",
"description": "Cold Drinks",
"qty": 1,
"value": 2.5,
"currency": "EUR",
"period": 1,
"operator": "AND"
}
]
}
]
}
],
"timings": {
"is_birthday": true,
"is_nameday": true,
"days_before": 1,
"days_after": 1,
"availability": [
{
"month": 1,
"day": 1,
"start_time": "19:00",
"end_time": "21:00"
}
]
}
},
"evaluation": {
"timings": {
"start_date": 1592317898,
"frequency": "0 0 12 * * ?"
}
},
"passes": [
{
"id": "51cdb8c5-d868-ec3a-ec3b-0e9a4eca53d0",
"name": "Birthday Pass"
}
],
"referrals": {
"action": "AFTER_PURCHASE"
},
"event_classifications": [
{
"id": "e262dba7-46d7-d4a2-4ddc-09177029ac1f",
"name": "Delivery"
}
]
}
{id}/awards{id}/awards{id}/awardsSet/Update settings to define the award amount, award restrictions and spend method of the reward offer
Path variables
The reward offer (identifier) whose award details will be set
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Award Settings
The award amount
The award currency type
Roadmap
The award type
Award will be based on a fixed amount
Award will be based on a percentage amount
Award will be differentiated based on item quantity
Is the award based on a Unit of Measure I.e Litres.
Award Product Conditions
The product condition identifier (can be the identifier of a product, brand or family)
The product condition type
Product SKU
Product Family
Product Brand
Product Type
Award Restrictions
The number of customers that can win a lotter draw
The total number of customers that can be awarded. After that the offer (still active) will not award anymore customers
The maximum awarded amount that can be provided (applicable when award is based on percentage)
Restrict awards provided by the offer to a maximum threshold, such as 1 per day
How many Times an Award can be given
During the Time Period
Unit of Time of Period
Details of the spend conditons
Defines how award will be spent
The spend condition identifier (required only if spend method is on_requesr)
Responses
Body
The reward offer identifier
POST https://sandbox.crm.com/backoffice/v1/reward_offers/6A24D2B5E44F44B28451FE021FCAD51E/awards HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"awards": [
{
"amount": 10.99,
"currency_type": "VIRTUAL",
"amount_type": "PERCENTAGE",
"quantity": 1,
"products":
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"id_type": "BRAND"
}
}
],
"validity": {
"validity_type": "PERIOD",
"valid_date": 1590474228,
"period": 1,
"period_unit": "MONTH"
},
"expiration": {
"expiration_type": "PERIOD",
"specific_date": 1590474228,
"period": 1,
"period_unit": "DAY"
},
"restrictions": {
"total_winners": 2,
"total_customers": 1,
"amount_cap": 99.99,
"frequency_cap": {
"frequency": 1,
"period": 1,
"period_unit": "YEAR"
},
"spend_settings": {
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"spend_method": "ON_REQUESST"
}
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E"
}
{id}/awardsRetrieve the award settings for a specific reward offer
Path variables
The reward offer (identifier) whose award details will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
Award Settings
The award type
Award will be based on a fixed amount
Award will be based on a percentage amount
Award will be differentiated based on item quantity
The award currency
Roadmap
The award amount
The product quantity ration for award
Details about the award products
The product condition identifier (can be the identifier of a product, brand or family)
The product condition type
Product SKU
Product Family
Product Brand
Product Type
The product condition name (can be the name of a product, brand, category or family)
The product condition description (can be the description of a product, brand, category or family)
Award Restrictions
The number of customers that can win a lotter draw
The total number of customers that can get the award
The maximum amount that can be provided by a offer that awards based on percentage
Details about the frequency that customers can get the award
The frequency of the award
The frequency period
Unit of Time of Period
Details of the spend conditons
The spend condition identifier
The spend condition name
Defines how award will be spent
GET https://devapi.crm.com/backoffice/v1/reward_offers/{id}/awards HTTP/1.1
Content-Type: application/json
{
"awards": [
{
"amount": 1.5,
"currency": "DEFAULT",
"amount_type": "PERCENTAGE",
"products": {
"id": "guid_coffee_family",
"id_type": "FAMILY",
"name" : "All Coffee Products"
}},
{
"amount": 2.0,
"currency": "DEFAULT",
"amount_type": "PERCENTAGE",
"products": {
"id": "guid_smoothie_family",
"id_type": "FAMILY",
"name" : "All Smoothie Products"
}
}
],
"expiration": {
"expiration_type": "PERIOD",
"period": 90,
"period_unit": "DAYS"
}
}
{id}/media_groups{id}/media_groupsCreate a new media group for a specific reward offer
Path variables
The reward offer (identifer) whose media groups will be set
Notes
Uploading media for a reward offer requires the execution of the following APIs
- Create new Media Group
- Create Reward Offer Media Groups
- Upload Media
- Perform Cloudinary Upload (where CRM will send all signature details)
- Cloudinary service calls back CRM media group (using an internal callback)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The media group identifier
Responses
The request has succeeded
POST https://sandbox.crm.com/backoffice/v1/reward_offers/6A24D2B5E44F44B28451FE021FCAD51E/media_groups HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
[
{
"media_group_id": "70b85ee1-c291-634d-2ddf-1f39c42e4f42"
}
]
HTTP/1.1 200 OK Search for organisations with reward commercial terms
Notes
Retrieves only the organisations (Businesses, Merchants, Service Providers) with non-blocked reward commercial terms
Request parameters
Defines whether reward scheme information should be retrieved
Defines whether venue information should be retrieved
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Filters based on custom fields (key/value set should be semicolon separated)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The organisation identifier
The organisation name
Indicates whether the organisation has no other child organisations
Information about the transaction acquiring points
The tap identifier
The tap name
The tap code
The transaction acquiring point type
Optional specification of external reference
Defines whethe tap is active or not
Information about the reward schemes that the organisation participates (retrieved only if requested)
The reward scheme identifier
The reward scheme name
Details about the venues of the merchant (retrieved only if requested)
The name organisation identifier
The venue organisation name
Details about the venue organisation transaction acquiring points
The transaction acquiring point identifier
The transaction acquiring point name
The transaction acquiring point code
The transaction acquiring point type
Optional specification of external reference
Defines whethe tap is active or not
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/merchants HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Delicious Burger",
"is_parent": true,
"taps": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "T123456",
"code": "T123"
}
],
"reward_schemes": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "MyCompany Scheme"
}
],
"venues": [
{
"id": "01f18103-75e0-10b1-31c1-74523f240911",
"name": "Delicious Burger Nicosia",
"taps": [
{
"id": "01f18103-75e0-10b1-31c1-74523f240955",
"name": "Transaction Acquirer",
"code": "1234"
}
]
}
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
Retrieve the allowed reward offer type(s) and spend method(s) that can be used on reward offer creation
Notes
Service Owner restrictions will be applied on all Businesses (and their Merchants/Service Providers) that share the same contact registry, while Business restrictions (that have their own contact registry) will be applied only on their Merchants/Service Providers.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
Defines the offer types that will be allowed to be created
[
"MONETARY_DISCOUNT"
]Defines which spend methods are allowed
GET https://sandbox.crm.com/backoffice/v1/offer_restrictions HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"allowed_offer_types": [
"MONETARY_DISCOUNT"
],
"allowed_spend_methods": [
"INSTANT"
]
}Retrieve all reward events
Request parameters
The type of events to filter
Filter based on the performed date, which may fall within a given date range. The value can be a string with a date in epoch format. Each option must also include an operator. Use up to two options based on the required search (e.g. performed_on[gte]=1618395497&performed_on[lt]=1618395497).
Filter based on the performed date, which may fall within a given date range. The value can be a string with a date in epoch format. Each option must also include an operator. Use up to two options based on the required search (e.g. performed_on[gte]=1618395497&performed_on[lt]=1618395497).
Returns results where the performed date is greater than this value
Returns results where the performed date is greater than or equal to this value
Returns results where the performed date is less than this value
Returns results where the performed date is less then or equal to this value
Filter based on the total amount, which may fall within a given amount range. The value can be a string with an amount in numeric format. Each option must also include an operator. Use up to two options based on the required search (e.g. total_amount[gte]=12.99&total_amount[lt]=99.99).
Returns results where the total amount is greater than this value
Returns results where the total amount is greater than or equal to this value
Returns results where the total amount is less than this value
Returns results where the total amount is less then or equal to this value
Filter based on the contact that such event was performed against
Filters based on the organisation (identifier) that such event was performed on (applicable for PURCHASE)
Filters based on the organisation tap (code) that such event was performed on (applicable for PURCHASE)
pending to be designed
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Details about the reward event
The event identifier
The type of the event
The event reference number uniquely identifing the Customer Events
The state of the event
The date that the event was created
The amount that was posted as part of the event (applicable for PUCHASE and Ad Hoc Returns)
Details about the organisation that such event was created by (if event = PURCHASE, defaults to the performed by organisation)
The organisation identifier
The organisation name
The organisation type
Details about the event classification
The classification identifier
The classification name
Details about the contact related to this event
The contact identifier
The contact full name
The contact code
Unique Customer Identification Medium
Details about the contact’s account
The account identifier
The account name
The account number
Details about the reward related to this event
The total amount awarded for this event
The total amount spent by this event
GET https://sandbox.crm.com/backoffice/v1/reward_events HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"customer_events": {
"id": "",
"type": "PURCHASE",
"reference_number": "",
"life-cycle_state": "POSTED",
"organisation": {
"id": "",
"name": ""
},
"contact": {
"id": "",
"name": "",
"code": ""
},
"referred_contact": {
"id": "",
"name": "",
"code": ""
},
"amount": 1,
"date": 1
},
"award_spend": [
{
"type": "SPEND",
"spend_method": "INSTANT_DISCOUNT",
"amount": "",
"reward_offer": {
"id": "",
"name": "Birthday Offer"
},
"reference_number": ""
}
],
"financial_transactions": [
{
"id": "",
"reference_number": "",
"type": "INVOICE",
"life_cycle_state": "REJECTED",
"amount": ""
}
],
"wallet_fees": [
{
"type": "DEBIT",
"id": "",
"amount": 1
}
],
"awards_without_purchase": {
"id": "",
"reference_number": "",
"life_cycle_state": "POSTED",
"reward_offer": "Welcome Offer EUR5",
"type": "LOTTERY"
}
}
]
}
GET https://sandbox.crm.com/backoffice/v1/reward_events HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "mongoid",
"entity_id":"dbid",
"entity_type": "PURCHASE",
"reference_number": "CE1234",
"state": "POSTED",
"submitted_date": 1614948921,
"total_amount": 17.99,
"currency":"EUR",
"cancelled_by": {
"id":"",
"type":"PURCHASE_CANCELLED",
"reference_number":""
},
"organisation": {
"id": "",
"name": "",
"type":"MERCHANT"
},
"contact": {
"id": "9ec78c62-d56a-a43c-95e9-d6da4cc22d08",
"name": "John Ray Doe",
"code": "123456789"
},
"account": {
"id": "9ec78c62-d56a-a43c-95e9-d6da4cc22d08",
"name": "John Ray Doe AR1234",
"number": "AR1234"
},
"rewards": {
"total_awards": 140.59,
"total_spends": 12.21
}
}
]
}
{id}/detailsRetrieves all transactions (e.g. award, spend, wallet, financial) related to a reward event
Path variables
The reward event (identifer) for which additional details will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Details about award and spend transactions related to the event
The type of the transaction
The transaction (unique) code
The amount that was awarded or spent
Define how awards can be/were spent (for SPEND transactions only)
The transaction state
Only for Award Transactions
The date on which such transaction was posted
The reward offer that the promotion pass will consume.
The reward offer identifier
The reward offer name
Details about financial event related to the rewards event (can be the initiated transaction or the end result)
The transaction type
Credit Note can initiate a reward event (purchase cancellation)
Invoice can initiate a reward event (purchase creation)
Refund can be the result of a reward event (due to spend)
Top-Up can initiate a reward event (achievement creation)
The transaction identifier
The transaction number
The transaction reference number
The transaction life cycle state
The transaction amount
The date on which such transaction was posted
Details about the wallet fees related to the event
Defines the reason for which the fee was applied on wallet
On Credit Wallet Transactions
On Debit Wallet Transactions
The wallet transaction identifier
The fee amount
The fee rule name
The date on which such fee was applied
GET https://sandbox.crm.com/backoffice/v1/reward_events/d46788e6-2c77-2948-2bb9-9521a0f54a8c/details HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"reward_transactions": [
{
"type": "AWARD",
"code": "123234342342432342324r43",
"amount": 14.99,
"currency":"EUR",
"spend_method": "INSTANT",
"state": "CANCELLED",
"date": 1614954223,
"reward_offer": {
"id": "7ff08bc0-c7e9-c9fe-f752-71cfb3ee0dc3",
"name": "Birthday Offer"
}
}
],
"financial_events": [
{
"type": "CREDIT_NOTE",
"id": "7ff08bc0-c7e9-c9fe-f752-71cfb3ee0dc3",
"number": "1234",
"reference_number": "REF12343",
"life_cycle_state": "POSTED",
"amount": 112.24,
"currency":"EUR",
"date": 1614954223
}
],
"wallet_fees": [
{
"type": "CREDIT",
"id": "4af933c7-2594-9c9c-d2d5-1ab4ff89fd59",
"amount": 12.12,
"currency":"EUR",
"name": "1% on all wallet transactions",
"date": 1614954223
}
]
}
]
}
{id}/export{id}{id}{id}/actions{id}/contacts{id}/conditions{id}/conditions{id}/exportExport the contacts of a segment to a .csv file and send it to the logged in user’s email
Path variables
The id of the Segment to export its contacts
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
POST https://sandbox.crm.com/backoffice/v1/segments/4AD9C84FA60F9FE407140E20F707726A/export HTTP/1.1
HTTP/1.1 200 OK Create a new segment
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The segment’s name which i smandatory and has to be unique
How often the segment is automatically refreshed - provided in a cron expression pattern
Defines which organisations can be access and use it
Defines which organisations can access and use it
The organisations (Merchants, Service Providers) that can access and use it (applicable only if type = SPECIFIC)
[
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]Examples
Responses
Body
The segment identifier
POST https://sandbox.crm.com/backoffice/v1/segments HTTP/1.1
Content-Type: application/json
{
"name": "Marketing customers",
"description": "A list of customers that own an accoun",
"refresh_frequency": "0 0 12 * * ?",
"accessibility": {
"type": "SPECIFIC_ORG",
"organisations": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "ADD1E31269B76D7A65ACCE45B2E68DFD"
}{id}Updates the basic information of a segment
Path variables
The segment (identifier) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The segment name
The segment’s description
How often the segment is automatically refreshed - provided in a cron expression pattern
Defines which organisations can be access and use it
Defines which organisations can access and use it
The organisations (Merchants, Service Providers) that can access and use it (applicable only if type = SPECIFIC)
[
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]Responses
Body
The segment identifier
PUT https://sandbox.crm.com/backoffice/v1/segments/c0d4712e-6688-4604-b3d6-d084e4d2dc05 HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"name": "All Contacts",
"description": "List of contacts owning a non-terminated account",
"refresh_frequency": "0 0 12 * * ?",
"accessibility": {
"type": "ACROSS_NETWORK",
"organisations": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "c0d4712e-6688-4604-b3d6-d084e4d2dc05"
}
{id}Delete an existing segment
Path variables
The segment (identifier) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/segments/c0d4712e-6688-4604-b3d6-d084e4d2dc05 HTTP/1.1
HTTP/1.1 200 OK Returns a list of Segments
Request parameters
The date from which the segment was created
The date until which the segment was created
Search for segments based on their name or description
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
The date on which the segment was created. The value can be a string with a date in epoch format. Each option must also include an operator. Use up to two of the following options based on the required search:
Returns results where the ‘created on’ field is greater than this value.
Return results where the ‘created on’ field is greater than or equal to this value.
Return results where the ‘created on’ field is less than or equal to this value.
Return results where the ‘created on’ field is less than or equal to this value.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The segment’s unique identifier
The segment’s name
The segment’s description
The segment’s size (total number of contacts)
The Analytics tool from which the segment was imported
How often the segment is automatically refreshed - provided in a cron expression
Defines how the segment can be accessed from business network
Defines which organisations can access and use it
The organisations (Merchants, Service Providers) that can access and use it (applicable only if type = SPECIFIC)
The organisation identifier
The organisation name
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/segments HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "Marketing customers",
"descripion": "List customers owning an account",
"size": 95,
"imported_from": "MIXPANEL",
"resfresh_frequency": "0 0 12 * * ?",
"accessibility": {
"type": "ACROSS_NETWORK",
"organisations": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "CRM"
}
]
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/actionsPerform an action on an existing segment.
Path variables
The segment (identifier) on which an action is performed
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The action to be performed on the segment
Responses
Body
The segment identifier
POST https://sandbox.crm.com/backoffice/v1/segments/{id}/actions HTTP/1.1
Content-Type: application/json
{
"action": "REFRESH"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "ADD1E31269B76D7A65ACCE45B2E68DFD"
}{id}/contactsReturns a list of contacts which are included in an existing segment.
Path variables
The segment (identifier) of which contact will be retrieved
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Search for contacts based on their code, name, phone or email address
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The contact’s unique identifier
The contact’s name (full name for Persons, company name for Companies)
The contact’s code
The contact’s phone number
The contact’s email address
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/segments/{id}/contacts HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "John Smith",
"code": "0049304938571623",
"phone_number": "+306954000112",
"email_address": "bill@gmail.com"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}/conditionsAdds a set of conditions in a segment
Path variables
The segment (identifier) on which conditions will be added
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
A segment includes multiple groups of conditions.
The name of the conditions group. If not specified, then the group is named after a letter of the Latin alphabet starting from A, then B etc.
Each group includes conditions that refer to either an Event that was performed or Contact information
The name of the event that a contact performed or not. Applicable and required only for conditions of type Event. If not specified, then contacts that performed any event are eligible to be included in the segment
Defines the operator that will be used accoridng to the condition’s type. When the condition refers to an Event, then contact are included in the segment if they did or did not perform that Event. When the condition refers to Contact information, then contacts are included in the segment if they have or do not have the specified contact related information.
Applicable for Events only
Applicable for Events only
Applicable for Contacts only
Applicable for Contacts only
The frequency of an event, i.e hw many times an Event occured withn a period of time. Applicable and required for Event conditions.
The frequency’s operator
The minimum number of times the Event occured.
The maximum number of times the Event occured. Required only when the operator is set to BETWEEN
The period of time during which the Event(s) occured
The operator that shows he period of time during which Events must fall within in order for contacts to be included in the segment. Operators Between, On, Since require date(s) filters, whereas the rest of the operators need an integrer value(s)
The starting period of time. For dates, this should be an epoch value
The ending period. Required only for Between operator. For dates, this should be an epoch value
The from/to filters date type depending on the selected operator.
Multiple properties can be added to apply additional filtering on the conditions. So if more than one properties are specified, an operator is required that defines the logic between properties. This operator can only be ALL (all properties must be met) or ANY (at least one must be met) to incldue the contact in the segment.
List of event properties/attibutes that can be used as additional filtering conditions.
The name of the property which depends on the selected event. Each event has its own set of properties.
The property’s condition operator
The property’s value or in the case of range operator like Between, the starting value.
The maximum value for the property, required when using “range” operators like Between.
List of String values required when the operator implies multiple values comparison like Contains,Does not contain.
The property’s data type
Applicable only if the property is a list and represents the list name
The logical expression between the Groups. Required if more than one groups are specified
Responses
Customers who did 3-5 purchases of more than 5 euros in Freddo espresso/Espresso in the last 3 weeks AND these customers are either Persons with a birthday set but not employees or vips OR companies in Petrol/Gas station industries
POST https://devapi.crm.com/backoffice/v1/segments/{id}/conditions HTTP/1.1
Content-Type: application/json
{
"groups": [
{
"name": "A",
"type": "EVENT",
"event_name": "PURCHASE",
"inclusion": "DID",
"frequency": {
"operator": "BETWEEN",
"min_times": 1,
"max_times": 5,
"period": {
"operator": "LAST_WEEKS",
"from": "3",
"to": ""
}
},
"properties_operator":"ALL",
"properties": [
{
"property": "purchase.amount",
"operator": "MORE_THAN",
"min_value": "5.00",
"max_value": "",
"value_list": [
""
]
},
{
"property": "purchase.products.name",
"operator": "CONTAINS",
"min_value": "",
"max_value": "",
"value_list": [
"Freddo Espresso","Espresso"
]
}
]
},
{
"name": "B",
"type": "CONTACT",
"event_name": "",
"inclusion": "HAVE",
"properties_operator":"AT_LEAST",
"properties": [
{
"property": "type",
"operator": "EQUALS",
"min_value": "PERSON",
"max_value": "",
"value_list": [
""
]
},
{
"property": "birthday.month",
"operator": "NOT_EMPTY",
"min_value": "",
"max_value": "",
"value_list": [
""
]
},
{
"property": "category.name",
"operator": "EQUAL",
"min_value": "",
"max_value": "",
"value_list": [
"VIP","Employees"
]
}
]
},
{
"name": "C",
"type": "COTNACT",
"event_name": "",
"inclusion": "HAVE",
"properties_operator":"ALL",
"properties": [
{
"property": "type",
"operator": "EQUALS",
"min_value": "COMPANY",
"max_value": "",
"value_list": [
""
]
},
{
"property": "insdustry.name",
"operator": "CONTAINS",
"min_value": "",
"max_value": "",
"value_list": [
"Petrol","Gas Stations"
]
}
]
}
]
}
POST https://sandbox.crm.com/backoffice/v1/segments/{id}/conditions HTTP/1.1
Content-Type: application/json
{
"groups": [
{
"name": "A",
"type": "EVENT",
"event_name": "PURCHASE",
"inclusion": "DID",
"frequency": {
"operator": "AT_LEAST",
"min_times": 1,
"max_times": 5,
"period": {
"operator": "LAST_MONTHS",
"from": "1",
"to": "3",
"type": "INTEGER"
}
},
"properties_operator": "ALL",
"properties": [
{
"property": "purchase.amount",
"operator": "IS",
"min_value": "5.00",
"max_value": "10",
"value_list": [
""
],
"type": "STRING",
"list_name": "products"
}
]
}
],
"logical_expression": "(A OR B) AND C"
}
HTTP/1.1 200 OK
{id}/conditionsReturns a segment’s set of conditions
Path variables
The segment (identifier) of which conditions will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
A segment includes multiple groups of conditions.
The name of the conditions group. If not specified, then the group is named after a letter of the Latin alphabet starting from A, then B etc.
Each group includes conditions that refer to either an Event that was performed or Contact information
The name of the event that a contact performed or not. Applicable and required only for conditions of type Event. If not specified, then contacts that performed any event are eligible to be included in the segment
Defines the operator that will be used accoridng to the condition’s type. When the condition refers to an Event, then contact are included in the segment if they did or did not perform that Event. When the condition refers to Contact information, then contacts are included in the segment if they have or do not have the specified contact related information.
Applicable for Events only
Applicable for Events only
Applicable for Contacts only
Applicable for Contacts only
The frequency of an event, i.e hw many times an Event occured withn a period of time. Applicable and required for Event conditions.
The frequency’s operator
The minimum number of times the Event occured.
The maximum number of times the Event occured. Required only when the operator is set to BETWEEN
The period of time during which the Event(s) occured
The operator that shows he period of time during which Events must fall within in order for contacts to be included in the segment. Operators Between, On, Since require date(s) filters, whereas the rest of the operators need an integrer value(s)
The starting period of time. For dates, this should be an epoch value
The ending period. Required only for Between operator. For dates, this should be an epoch value
The operator that shows he period of time during which Events must fall within in order for contacts to be included in the segment. Operators Between, On, Since require date(s) filters, whereas the rest of the operators need an integrer value(s)
Multiple properties can be added to apply additional filtering on the conditions. So if more than one properties are specified, an operator is required that defines the logic between properties. This operator can only be ALL (all properties must be met) or ANY (at least one must be met) to incldue the contact in the segment.
List of event properties/attibutes that can be used as additional filtering conditions.
The name of the property which depends on the selected event. Each event has its own set of properties.
The property’s condition operator
The property’s value or in the case of range operator like Between, the starting value.
The maximum value for the property, required when using “range” operators like Between.
List of String values required when the operator implies multiple values comparison like Contains,Does not contain.
The property’s data type
Applicable only if the property is a list and represents the list name
The logical expression between the Groups. Required if more than one groups are specified
GET https://sandbox.crm.com/backoffice/v1/segments/{id}/conditions HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"groups": [
{
"name": "A",
"type": "EVENT",
"event_name": "PURCHASE",
"inclusion": "DID_NOT",
"frequency": {
"operator": "AT_LEAST",
"min_times": 1,
"max_times": 5,
"period": {
"operator": "LAST_MONTHS",
"from": "3",
"to": "5",
"type": "INTEGER"
}
},
"properties_operator": "ALL",
"properties": [
{
"property": "purchase.amount",
"operator": "LIKE",
"min_value": "5.00",
"max_value": "10",
"value_list": [
""
],
"type": "STRING",
"list_name": "products"
}
]
}
],
"logical_expression": "(A OR B) AND C"
}
{id}{id}{id}{id}/statuses{id}/statusesCreate a new service request
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Contacts unique identifier
The queue unique id.
A description of the service request.
Further details of the service request and what it applies
The unique GUID of the service
The type of object that it applies to
The categories applicable to this service request.
[
"djkjfhdskjhskdjh"
]The custom field’s unique key
The custom field’s value
The user identifier
The team identifier
Defines the owner (user) that is reponsible for this service request
Address information for the service request
The contact’s address id associated to the service request (either ‘id’ or ‘other’ can be specified)
The address line 1
The address line 2
The address state/province/county
The address town/city
The address postal code
The address country (based on ISO 3 char code)
The latitude of the address
The longitude of the address
The Google textual identifier that uniquely identifies an address
Examples
Responses
The request has succeeded
Body
The GUID for the new service request
POST https://sandbox.crm.com/backoffice/v1/service_requests HTTP/1.1
Content-Type: application/json
{
"contact_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"queue_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"description": "The client has an an issue with their billing.",
"applies_to": [
{
"entity_id": "ABCDAKJHKFJH862476",
"entity_type": "SUBSCRIPTION_SERVICES"
}
],
"categories": [
""
],
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
],
"assign_to": {
"user_id": "1edef819-0a1d-4d41-9d2a-d4bbc2ddbedf",
"team_id": "a43f08ca-998b-afbc-6ed4-c9dc2d136935"
},
"owner_id": "1ca16b72-9e38-bd02-3dbe-6419b6f904cf",
"urgency": "LOW",
"impact": "MEDIUM",
"address": {
"id": "61c943c8-dfeb-4c09-a25c-b054f48bf244",
"other": {
"address_line_1": "Elia Papakyriakou",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2015",
"country": "CYP",
"lat": 35.157115,
"lon": 33.313719,
"google_place_id": "ChIJrTLr-GyuEmsRBfy61i59si0"
}
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{id}Update an existing service request
Path variables
The GUID of the service request to be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
A description of the service request.
The calculated aproximate close date&time of the service request based off of the queue type and priority.
The calculated alert time based off the queue type and priority set for this service request.
The categories associated to service request
Further details of the service request and what it applies
The type of object that it applies to
The newly added service (identifier)
The custom field’s unique key
The custom field’s value
The user identifier
The team identifier
Defines the owner (user) that is reponsible for this service request
Address information for the service request
The contact’s address id associated to the service request (either ‘id’ or ‘other’ can be specified)
The address line 1
The address line 2
The address state/province/county
The address town/city
The address postal code
The address country (based on ISO 3 char code)
The latitude of the address
The longitude of the address
The Google textual identifier that uniquely identifies an address
Examples
Responses
The request has succeeded
Body
The GUID for the new service request
PUT https://sandbox.crm.com/backoffice/v1/service_requests/HPA1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
Content-Type: application/json
{
"description": "The client has an an issue with their billing.",
"approx_close_date": 78676786,
"alert_date": 87623764,
"priority_matrix": {
"urgency": "LOW",
"impact": "HIGH"
},
"categories": [
""
],
"applies_to": [
{
"entity_type": "SUBSCRIPTION_SERVICES",
"entity_id": "ce4a1856-eaf0-be8a-9a85-7169f9859175"
}
],
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
],
"assign_to": {
"user_id": "1edef819-0a1d-4d41-9d2a-d4bbc2ddbedf",
"team_id": "a43f08ca-998b-afbc-6ed4-c9dc2d136935"
},
"owner_id": "",
"address": {
"id": "61c943c8-dfeb-4c09-a25c-b054f48bf244",
"other": {
"address_line_1": "Elia Papakyriakou",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2015",
"country": "CYP",
"lat": 35.157115,
"lon": 33.313719,
"google_place_id": "ChIJrTLr-GyuEmsRBfy61i59si0"
}
}
}
{id}Delete a single service request.
Path variables
The GUID of the service request to be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/service_requests/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1 Retrieve all service requests
Request parameters
The page number that should be retrieved
The size (total records) of each page
Defines on which attribute the results should be sorted
Defines how the results will be ordered
Search for a service request using Contact person’s name, Owner, Description, ticket number,status, date_created, date_closed
The queue GUID (to view service request)
The unique contact id
The date from which the service request was created
The date until which the service request was created
Whether the SR is resolved. Default is unresolved
Filter based on the created date, which may fall within a given date range. The value can be a string with a date in epoch format. Each option must also include an operator. Use up to two options based on the required search (e.g. created_on[gte]=1618395497&created_on[lt]=1618395497).
Returns results where the created date is greater than this value
Returns results where the created date is greater than or equal to this value
Returns results where the created date is less than this value
Returns results where the created date is less then or equal to this value
Filter based on priority
Array of queue statuses GUID’s.
List of tag ids to filter by
List of closure reasons to filter records by
The approximate closure date of SR. Date range. ie. between today and next week Monday.The value can be a string with a date in epoch format. Each option must also include an operator. Eg: &expected_close_date.[gte]=1609459200&expected_close_date.[lt]=1609459200. Use up to two of the following options based on the required search:
Returns results where the ‘approx_close_date’ field is greater than this value.
Return results where the ‘approx_close_date’ field is greater than or equal to this value.
Return results where the ‘approx_close_date’ field is less than or equal to this value.
Return results where the ‘approx_close_date’ field is less than or equal to this value.
The alert dates of SR’s. Date range. ie. between today and next week Monday.The value can be a string with a date in epoch format. Each option must also include an operator. Eg: &expected_close_date.[gte]=1609459200&expected_close_date.[lt]=1609459200. Use up to two of the following options based on the required search:
Returns results where the ‘alert_date’ field is greater than this value.
Return results where the ‘alert_date’ field is greater than or equal to this value.
Return results where the ‘alert_date’ field is less than or equal to this value.
Return results where the ‘alert_date’ field is less than or equal to this value.
Defines whether custom fields should be retrieved or not (via List/Get APIs)
Filters based on custom fields (key/value set should be semicolon separated)
Filters based on specific assign to user
Filters based on specific assign to team
Defines whether approval requests information should be retrieved or not
Filter based on approval request state
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The service request unique identifier
The unique ticket number relating to the request
A brief description of the service request
The creation date of the service request
The calculated alert time based off the queue type and priority set for this service request.
The approx close date of SR.
Whether the SR has been resolved.
service request queue information
The service request queue id
The service request queue name
Current queue status information
The current service request queue status unique id
The name of the current service request queue status
The color code associated to the status
Details about the related contact
The contact identifier
The contact full name
The contact unique code
The categories associated to the service request
The id of the categories
The name of the caetgory
The closure reasons related to the service request
The id of the closure reason for this service request
The name to be displayed
Tag ID
Name of Tag
The colour of the tag - for list view only.
The custom field’s unique key
The custom field’s value
Details about the user that the record is assigned to
The user identifier
The user name
The username of the user
Details about the team that the record is assigned to
The team identifier
The team name
The address line 1
The address line 2
The address state/province/county
The address town/city
The address postal code
The address country (based on ISO 3 char code)
The latitude of the address
The longitude of the address
The Google textual identifier that uniquely identifies an address
Details about the latest requested approval(s)
The approval request state
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/service_requests HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "LEM1E31269B76D7A65ACCE45B2E68DFD",
"number": "SR0001ABC",
"description": "service request was submitted based off of billing issues",
"creation_date": 98765342,
"alert_date": 1,
"approx_close_date": 1,
"priority": "LOW",
"resolved": true,
"queue": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Billing Issues"
},
"queue_status": {
"id": "KVX1E31269B76D7A65ACCE45B2E68DFD",
"name": "Proposal submitted",
"color": "#FDS7GH"
},
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"categories": [
{
"id": "HSGJHGFJSF86876JUGDSJHG",
"name": "Maintenance issues"
}
],
"closure_reason": {
"id": "",
"name": "Reffered to Installer"
},
"tags": [
{
"id": "JHGJHGJHGHJi87987",
"name": "Maintenance",
"colour": "FR547F"
}
],
"custom_fields": [
{
"id": "f68fad29-4a1b-3a1e-5cfa-6540a5b1609a",
"key": "back_office",
"label": "Back Office",
"description": "The account's back office code",
"tooltip": "",
"visible": true,
"field": "MULTIPLE_LINES",
"entity": "ORDERS"
}
],
"assign_to": {
"user": {
"id": "47ac694d-6281-b873-bf46-3fd8da334a3a",
"name": "John Doe",
"username": "j_doe@crm.com"
},
"team": {
"id": "bf1370a1-73ad-0bbf-6fef-f2ce1938d4fe",
"name": "Support"
}
},
"owner": {
"id": "",
"username": "",
"name": ""
},
"address": {
"address_line_1": "Elia Papakyriakou",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2015",
"country": "CYP",
"lat": 35.157115,
"lon": 33.313719,
"google_place_id": "ChIJrTLr-GyuEmsRBfy61i59si0"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Retrieve the information for a specific service request.
Path variables
The service request identifier (GUID) of the service request to be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
If the service request has been ‘Closed’ the response should be returned.
Whether SR has been resolved.
The calculated alert time based off the queue type and priority set for this service request.
The calculated aproximate close date&time of the service request based off of the queue type and priority.
Details about the related contact
The contact identifier
The contact full name
The contact unique code
The GUID of the status
The name of the status
The priority of this status in the sequence
The colour relating to this status
The closure reason
The id relating to the closure reason
The name realting to the closure reason.
The closure reason description
The invoice that was raised against the service request when the service request was CLOSED.
This is an array of the objects to which this request applies to.
The unique GUID of the subscription service.
The type of object that it applies to
The name/number of the object.If the entity_type is SUBSCRIPTION_SERVICES then the entity_value should be the entity’s name.
The id of the category
The name of the category.
The custom field’s unique key
The custom field’s value
Details about the user that the record is assigned to
The user identifier
The user name
The username of the user
Details about the team that the record is assigned to
The team identifier
The team name
The address line 1
The address line 2
The address state/province/county
The address town/city
The address postal code
The address country (based on ISO 3 char code)
The latitude of the address
The longitude of the address
The Google textual identifier that uniquely identifies an address
GET https://sandbox.crm.com/backoffice/v1/service_requests/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "SR0001ABC",
"description": "The customer can not link their card",
"response": "Installation issue.",
"resolved": true,
"alert_date": 1,
"approx_close_date": 1,
"queue": {
"id": "LMP1E31269B76D7A65ACCE45B2E68DFD",
"name": "Billing issues"
},
"priority_matrix": {
"priority": "HIGH",
"urgency": "MEDIUM",
"impact": "LOW"
},
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"queue_status": {
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "Response submitted",
"priority": 5,
"colour": "#FA89CB"
},
"closure_reason": {
"id": "KJGKJGJG76786JHFJHF",
"name": "Referred to installer",
"description": ""
},
"invoice": {
"id": "JGDKJHKDJAHKSHi6876",
"number": "INV87386IUGY"
},
"applies_to": [
{
"entity_id": "PLE1E31269B76D7A65ACCE45B2E68DFD",
"entity_type": "SUBSCRIPTION_SERVICES",
"entity_value": "Streaming service, P007NDR",
"life_cycle_state": "EFFECTIVE"
}
],
"categories": [
{
"id": "JKFGHJHFGSJHGSFJHGF",
"name": "Maintenance"
}
],
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
],
"assign_to": {
"user": {
"id": "47ac694d-6281-b873-bf46-3fd8da334a3a",
"name": "John Doe",
"username": "j_doe@crm.com"
},
"team": {
"id": "bf1370a1-73ad-0bbf-6fef-f2ce1938d4fe",
"name": "Support"
}
},
"owner": {
"id": "",
"name": "",
"username": ""
},
"address": {
"address_line_1": "Elia Papakyriakou",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2015",
"country": "CYP",
"lat": 35.157115,
"lon": 33.313719,
"google_place_id": "ChIJrTLr-GyuEmsRBfy61i59si0"
}
}
{id}/statusesChange the queue status of a service request (e.g. progress a service request).
Path variables
The GUID of the service request whose queue status will be changed
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The new service request queue status ID
Defaults to current date & time
The reason that the service request needs to be moved back to a previous status.
The response to the Service Request. This is NOT required when status is ‘Closed’.This is optional due to the closure response selection.
The status of the request upon closing. This is required when status is ‘Closed’.
The account id relating to the charges associated with the service request. This account will be invoiced for the charges when closing the service request.
When the status is ‘Closed’ and the resolved = False. This is required.
Examples
Responses
Body
The GUID of the service request whose queue status was changed
Determines whether approval reuqests are applied or not, if not null an approval is requested
The apporval request identifier
POST https://sandbox.crm.com/backoffice/v1/service_requests/HPA1E31269B76D7A65ACCE45B2E68DFD/statuses HTTP/1.1
Content-Type: application/json
{
"queue_status_id": "CEEE83D6E0804A30966F684B0269AD91",
"date_achieved": 1583846865,
"regression_reason": "The issue has changed and the ticket needs to be moved back to awaiting customer.",
"response": "This issue is closed and mitigated. Faulty installation.",
"resolved": true,
"account_id": "HDFSFGFDSGS",
"closure_reason_id": "JKJHDKJHAKJHASH"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "HPA1E31269B76D7A65ACCE45B2E68DFD",
"approval_requests": [
{
"id": "3a4aad81-e5c2-72b7-3a86-903239d08767"
}
]
}
{id}/statusesRetrieve all the queue statuses a service request has progressed through.
Path variables
The GUID of the service request whose queue status will be retrieved
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The id of the service request.
The date of that status acheived.
The response to why the request has been regressed
Date SR status modified (relevant to service request history)
id of the queue status
name of the queue status
Colour relating to the queue status
The order of prioirty of the queue status.
GET https://sandbox.crm.com/backoffice/v1/service_requests/HPA1E31269B76D7A65ACCE45B2E68DFD/statuses HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "558269B76D7A65ACCE45B2E68DFD",
"date_achieved": 98765342,
"regression_reason": "The issue has changed and will there have to move back to awaiting response.",
"modified_date": 98765342,
"queue_status": {
"id": "KUHSKHSKUH&5765675",
"name": "Waiting for customer",
"colour": "87GFD8",
"priority": 1
}
}
]
}
{id}/files{id}/files/{file_id}{id}/files{id}/filesConnect an uploaded file to an existing service request
Path variables
The service request (identifier) that file will be attached
Notes
Integrating file upload for Service Requests should be based on the following APIs
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The file (identifier) to be attached
URL of the file to be attached
The file description
Responses
Body
The service request identifier
POST https://sandbox.crm.com/backoffice/v1/service_requests/66451204-4404-894c-4dc6-486c540ece40/files HTTP/1.1
Content-Type: application/json
{
"file_id": "30526723-24a3-e4e3-1a75-b26b1b41f05c",
"url": "https://crmcom.sharepoint.com/:x:/s/servicerequests/EZx2qopbvfN3uj1o3dOqbPm52Ct6bg?rtime=w0ic-hfG2Ug",
"description": "Screenshot sent by customer"
}{id}/files/{file_id}Delete a specific service request attachment file
Path variables
The service request (identifier) that file will be deleted
The attachment file (identifier) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/service_requests/66451204-4404-894c-4dc6-486c540ece40/files/04c0bebd-8bb0-0b3e-e1a6-716a0fd200b1 HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK {id}/filesRetrieve all attachment files for a specific service request
Path variables
The service request (identifier) that files will be retrieved
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The attachment identifier
The mime type of the uploaded file
The attachement description
The attachement file details
The file identifier
The file URL endpoint
The file name
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/service_requests/66451204-4404-894c-4dc6-486c540ece40/files HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "3ae9d64a-8a3b-f1e1-eed6-05b307f926fb",
"mime": "png",
"description": "this is a brief description of this image",
"file": {
"id": "0317868f-28f8-9f56-d248-5a78718b38cc",
"name": "img.png"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
Ability to add products as charges on a service request.
{id}/charges{id}/charges{id}/charges{id}/chargesCreates charges on service requests includes the price, as well as taxes to be applied.
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The account to which the charges will be associated with.
The unique identifier of a product
The unit price of the product. If specified, then the pricing strategy is not applied.
A note regarding the item
Responses
The request has succeeded
Body
The unique identifier of the Service Request
POST https://sandbox.crm.com/backoffice/v1/service_requests/{id}/charges HTTP/1.1
Content-Type: application/json
{
"account_id": "",
"discount": {
"amount": 1,
"type": "PERCENTAGE"
},
"line_items": [
{
"product_id": "",
"quantity": 1,
"price": 9.99,
"tax_amount": 1,
"discount": {
"discount_amount": 1,
"discount_percentage": 1,
"discount_incl_tax": 1
},
"sub_total": 1,
"notes": ""
}
],
"total_amount": 1,
"total_discount_amount": 1,
"total_discount_incl_tax": 1,
"total_price": 1,
"amount_due": 1,
"tax_amount": 1,
"net_amount": 1
}
{id}/chargesUpdates products associated to a service request.
Path variables
Service Request id
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Responses
The request has succeeded
Body
The unique identifier of the Service Request
PUT https://sandbox.crm.com/backoffice/v1/service_requests/{id}/charges HTTP/1.1
Content-Type: application/json
{
"account_id": "",
"discount": {
"amount": 1,
"type": "PERCENTAGE"
},
"line_items": [
{
"product_id": "",
"quantity": 1,
"price": 9.99,
"notes": "",
"tax_amount": 1,
"sub_total": 1,
"discount": {
"discount_amount": 1,
"discount_percentage": 1,
"discount_incl_tax": 1
}
}
],
"total_amount": 1,
"total_discount_amount": 1,
"total_discount_incl_tax": 1,
"total_price": 1,
"amount_due": 1,
"tax_amount": 1,
"net_amount": 1
}
{id}/chargesRetrieves the products associated to a service request
Path variables
The id of the service request
Responses
Body
The account that the charges are associated with
The id of the product.
The quantity of the product
The price of the product
GET https://sandbox.crm.com/backoffice/v1/service_requests/{id}/charges HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"account": {
"id": "",
"name": "",
"number": ""
},
"currency": "",
"discount": {
"amount": 1,
"type": "AMOUNT"
},
"line_items": [
{
"product": {
"id": "",
"sku": "",
"name": ""
},
"quantity": 1,
"price": 9.99,
"tax_model": "TAX_INCLUSIVE",
"notes": "",
"tax_amount": 1,
"discount": {
"discount_amount": 1,
"discount_percentage": 1,
"discount_incl_tax": 1
}
}
],
"total_cost": 1,
"net_amount": "",
"tax_amount": 1,
"total_discount": {
"amount": 1,
"amount_incl_tax": 1
},
"total_before_discount": 1,
"amount_due": 1
}
{id}/linked_requests{id}/linked_requests{id}/linked_requests/{link_id}{id}/linked_requestsCreate a new service request link
Path variables
The GUID of the link between two service requests
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The GUID of the linked request
Examples
Responses
The request has succeeded
Body
The GUID for the new service request
POST https://sandbox.crm.com/backoffice/v1/service_requests/CAD1E31269B76D7A65ACCE45B2E68DFD/linked_requests HTTP/1.1
Content-Type: application/json
[
{
"linked_request_id": "ABDF8727684768276FGHGDHC"
}
]{id}/linked_requestsRetrieve a link between service request and another
Path variables
The GUID of the link
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The GUID of the linked service Request
The ticket number of the linked service request.
GET https://sandbox.crm.com/backoffice/v1/service_requests/CAD1E31269B76D7A65ACCE45B2E68DFD/linked_request HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content":[
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "SR0001GHJ"
}
]
}{id}/linked_requests/{link_id}Delete a single service request link to another.
Path variables
The GUID of the service request link to be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/service_requests/4AD9C84FA60F9FE407140E20F707726A/linked_request/{link_id} HTTP/1.1
HTTP/1.1 200 OK {id}/notes{id}/notes/{note_id}{id}/notes/{note_id}{id}/notes{id}/notesCreate a new note for a service request
Path variables
Service Request GUID for which the note is to be created
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The note contents
Pinned notes appear at the top of the notes list.
Examples
Responses
The request has succeeded
Body
The identifier for the note created
POST https://sandbox.crm.com/backoffice/v1/service_requests/6A24D2B5E44F44B28451FE021FCAD51E/notes HTTP/1.1
Content-Type: application/json
{
"note": "After my telephone conversation with Zack this morning, it was decided that....",
"pinned": true
}{id}/notes/{note_id}Update a note for a service request.
Path variables
The service request GUID
The note GUID
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The actual note contents
Pinned notes appear at the top of the notes list.
Examples
Responses
Body
The GUID of the updated note
PUT https://sandbox.crm.com/backoffice/v1/service_requests/CAD1E31269B76D7A65ACCE45B2E68DFD/notes/SMA1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
Content-Type: application/json
{
"note": "After my telephone conversation with Zack this morning, it was decided that....",
"pinned": true
}{id}/notes/{note_id}Delete a single note for a service request
Path variables
The GUID of the service request
The GUID of the note to be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/service_requests/PT19C84FA60F9FE407140E20F707726A/notes/XOP9C84FA60F9FE407140E20F707726A HTTP/1.1 {id}/notesRetrieve all notes for a single service request
Path variables
The GUID of the lead whose notes are to be retrieved
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The note unique identifier
Date and time the note was created
Date and time the note was updated
Pinned notes appear at the top of the notes list
The note contents
Details of the user who created the note
The GUID of the user who created the note
The name of the user who created the note
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/service_requests/TFD1E31269B76D7A65ACCE45B2E68DFD/notes HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "LEP1E31269B76D7A65ACCE45B2E68D34",
"created_on": "98765775",
"updated_on": "98765795",
"pinned": "true",
"note": "After my telephone conversation with Zack this morning, it was decided that....",
"created_by": {
"id": "1121E31269B76D7A65ACCE45B2E68KP1",
"username": "Sam Jackson"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
This functionality relates to service request tags.
{id}/tags{id}/tags/{tag_id}{id}/tags{id}/tags{id}/tagsThe following process adds a tag to a service request.
Path variables
The service request GUID
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
the content relating to the tag
The tag id
POST https://sandbox.crm.com/backoffice/v1/service_requests/HRDGSWRSFVSDSDBSDSSDDE/tags HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"tags": [
{
"id": "FDHNFDBR675765ghdh"
}
]
}{id}/tags/{tag_id}Deletes a tag on a product.
Path variables
The id of the service request.
The id of the tag
DELETE https://sandbox.crm.com/backoffice/v1/service_requests/JFGJKSFGJFSGH/tags/KJDFHKJGFSJHG HTTP/1.1 {id}/tagsThe following process retrieves the tags for a service request
Path variables
Responses
Body
The id of the row associated to the service request and tag combination.
the tag ID
Name of Tag
Colour of tag
GET https://sandbox.crm.com/backoffice/v1/service_requests/{id}/tags HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"tag_id": "JGKJSGDKJGSKJG",
"id": "JKGJHFSDJHGDSJHGA",
"name": "Maintenance",
"colour": "The colour of the tag"
}
]
}{id}/tagsThe following process updates tags to a service requests.
Path variables
The service request GUID
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
the content relating to the tag
The tag id.
PUT https://sandbox.crm.com/backoffice/v1/service_requests/JGJHSGHJAGJHG/tags HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"tags": [
{
"id": "JKGSJGFKDGJKFGFSJK"
}
]
}{id}Creates a spend condition group including product, timing and organisation conditions.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The spend condition name
Conditions based on organisations
[
"6A24D2B5E44F44B28451FE021FCAD51E"
]Which product piece of information will be used as a condition; the product itself, it type or brand or family?
The unique identifier of the selected item type.
Conditions based on time
The month as a condition (1-12)
Validity (from) condition
The award validity type
Amount will be available to be spend from a specific date
Amount will be available to be spend from a specific period
Amount will be available to be spend from the next purchase
The valid from date (applicable for specific date validity type)
The validity from period (applicable for period validity type)
The award validity period unit (applicable for period validity type)
Expiration (valid to) condition
The award expiration type
The date that the amount expires (applicable for specific expiration type)
The expiration period (applicable for period expiration type)
The award validity period unit (applicable for period validity type)
Responses
Successful Request
Body
The spend condition identifier
POST https://devapi.crm.com/backoffice/v1/spend_conditions HTTP/1.1
Content-Type: application/json
{
"name": "Instant Rewards - Monday Only",
"organisations": [
"6A24D2B5E44F44B28451FE021FCAD51E"
],
"products": [
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"id_type": "TYPE"
}
],
"timings": [
{
"month": 1,
"day": 1,
"start_time": "19:00",
"end_time": "20:00"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "c0d4712e-6688-4604-b3d6-d084e4d2dc05"
}
Retrieves the spend conditions available with brief information
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The spend condition identifier
The spend condition name
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/spend_conditions HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "Happy Hour"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}Retrieve details for a specific spend condition
Path variables
The spend condition (identifer) to be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The spend conditions identifier
The spend condition name
Conditions based on organisations
The organisation identifier
The organisation name
The locations of the specific organisation
Information about the organisation’s location
The name of the location
The address of the location
Additional address information about the location
The state/province/county of the location
The town/city of the location
The postal code of the location
The country code of the location
The latitude of the location
The longitude of the location
The Google textual identifier that uniquely identifies a location
The organisation type
Which product piece of information will be used as a condition; the product itself, it type or brand or family?
The unique identifier of the selected item type.
The name of the entity e.g the product name or product type name
The descirption of the entity.
Conditions based on time
The month as a condition (1-12)
Valid (from) condition
The award validity type
Amount will be available to be spend from a specific date
Amount will be available to be spend from a specific period
Amount will be available to be spend from the next purchase
The date that the amount will be valid (applicable for specific validity type)
The specific validity period (applicable for period validity type)
The award validity period unit (applicable for period validity type)
Expiration (valid to) condition
The award expiration type
The date that the amount expires (applicable for specific expiration type)
The specific expiration period (applicable for period expiration type)
The award validity period unit (applicable for period validity type)
GET https://sandbox.crm.com/backoffice/v1/spend_conditions/c0d4712e-6688-4604-b3d6-d084e4d2dc05 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "Happy Hour",
"organisations": [
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "X-CAFE",
"locations": [
{
"name": "Head Office",
"address_line_1": "Elia Papakyriakou 21",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2415",
"country_code": "CY",
"lat": 35.157115,
"lon": 33.313719,
"google_place_id": "ChIJrTLr-GyuEmsRBfy61i59si0"
}
],
"type": "BUSINESS"
}
],
"products": [
{
"item_type": "PRODUCT",
"item_id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "Support Service",
"description": "24/7 Support to all users"
}
],
"timings": [
{
"month": 1,
"day": "THURSDAY",
"start_time": "",
"end_time": ""
}
]
}
{id}{id}/subscriptions{id}{id}/services{id}/allowance{id}/services{id}/services{id}{id}/devices{id}/devices/{device_id}{id}/devices{id}/devices{id}/devices{id}/billing{id}/allowed_devices{id}/services{id}/servicesCreates a new subscription for a contact
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Contacts unique identifier
The organisaton’s unique identifier. This is the organisation that owns the subscription
The unique identifier of the contact’s account. If not specified, then the primary account is used
The type of the event
If one of the contact’s payment methods is specified as the subscription’s payment method as well, then the Account is considered as the funding source. The account is also the default funding source if no payment method is specified.
The Wallet is the subscription’s funding source if subscriber specifically states that he/she wants to pay for the services using available wallet funds.
One of the contact’s payment methods that will be used for automatically paying off the subscription
The subscription’s address which must be one of the contact’s addresses. One of the two paramters must be specified
The unique identifer of the contact’s address
If set to true, then the contac’t sprimary address will be selected as the new subscription’s address
Examples
Responses
The request has succeeded
Body
The GUID for the new subscription
POST https://sandbox.crm.com/backoffice/v1/subscriptions HTTP/1.1
Content-Type: application/json
{
"contact_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"organisation_id": "",
"account_id": "",
"funding_source": "ACCOUNT",
"payment_method_id": "",
"address": {
"address_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"use_primary": "true"
},
"billing_day": {
"day_of_month": "",
"day_of_week": ""
},
"billing_period": {
"duration": "",
"uot": ""
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{id}Update the billing terms of a group of services. Services of the same billing period are grouped under the same subscription
Path variables
The subscription (identifier) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The action’s category unique identifier
One of the contact’s payment methods. Required when changing the payment preference of the subscription’s terms
Required when changing the billing day of the subscription’s terms
Applies for weekly subscriptions
Applies for subscriptions with billing cycles over a month
Required when changing the billing cycle of the subscription.
The duration of the new billing cycle
The billing cycle’s unit of time
Required when changing the subscription’s terms
Required when pausing all of the services of a subscription
The updated subscription’s address which must be one of the contact’s addresses. Applicable only when using the UPDATE action
The custom field’s unique key
The custom field’s value
The type of the event
If one of the contact’s payment methods is specified as the subscription’s payment method as well, then the Account is considered as the funding source. The account is also the default funding source if no payment method is specified.
The Wallet is the subscription’s funding source if subscriber specifically states that he/she wants to pay for the services using available wallet funds.
Responses
Body
The new subscripton action’s unique identifier
A proposed date on which the requested changes can be scheduled
PUT https://sandbox.crm.com/backoffice/v1/subscriptions/ac5401c3-b2e6-2d99-171f-276084d97536 HTTP/1.1
Content-Type: application/json
{
"action": "ACTIVATE",
"category_id": "ac5401c3-b2e6-2d99-171f-276084d97536",
"scheduled_date": 1,
"use_proposed_date": "false",
"payment_method_id": "ac5401c3-b2e6-2d99-171f-276084d97536",
"billing_day": {
"day_of_week": "MONDAY",
"day_of_month": 15
},
"agreement_date": 1,
"number_of_days": 1,
"address_id": "",
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "ac5401c3-b2e6-2d99-171f-276084d97536",
"proposed_scheduled_date": 1
}
{id}/subscriptionsReturns a list of subscriptions owned by a specified contact
Path variables
The contact’s unique identifier
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
By default, Inactive subscriptions are excluded. Use this parameter to get a list of Inactive Subscriptions only.
By default, billing information is not retunred
By default billing terms are not returned
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The unique identifier of the subscription
The subscription’s code.
The subscription’s life cycle state
There’s at elast one non-terminated service
There are no services on the subscription or if services exist, they are all terminated
Number of active (non-terminated) services
Number of devices
The date on which the subscription was activated for the first time
The date until which the subscription’s services are billed
Indicates whether the subscirpiton is sed to group together the one-time services purchased by the contact. Set to true it at least oe service was purchased and despite the fact that the service is expired
The subscription’s terms
The subscription’s billing cycle duration
The billing cycle’s duration
The billing cycle’s unit of time
The day of month/week until which the subscripton’s services will be billed. Either a day of month or day of week is returned, depnding on the subscription’s billing cycle (if it is less than a month, then a day of week is returned)
Day of month
Day of week
Determines whether usage is allowed to be consumed as part of at least one of the active services of the subscription. Usage might be allowed by one of the services, but at the time the Web API is triggered, the customer is blocked for consuming usage
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/contacts/{id}/subscriptions HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "0df9936c-7d5f-a878-4c05-9b942aa14295",
"code": "4347869878000989",
"life_cycle_state": "ACTIVE",
"active_services": 3,
"number_of_devices": 1,
"first_activation_date": 1620981311,
"billing_info": {
"rated_up_date": 1,
"next_billing_date": 1,
"next_payment_date": 1
},
"terms": {
"billing_period": {
"duration": 1,
"uot": "MONTHS"
},
"billing_day": {
"day_of_month": 1,
"day_of_week": "SUNDAY"
}
},
"usage_blocked": "true"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
Returns a list of subscriptions
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
By default, Inactive subscriptions are excluded. Use this parameter to get a list of Inactive Subscriptions only.
The date on which the subscriptions was activated for the first time. Each option includes the field name, the operator and the date field in epoch format. Use up to two of the following options based on the required search:
The date on which one of the subscription’s services gets expired
The date on which one of the subscription’s services will be renewed
The date on which the contract of one of the subscription’s services ends
The contact who owns the subscription
The account of the contact who ows the subscription
The device thatis provisioned by the subscriptions to be retrieved
By default, the subscription’s billing details are not returned. Set the value to True to get the basic billing information
By default, the subscription’s billing terms are not returned. Set the value to True to get the subscription’s billing day and period
Search for a subscription based on its code
The organisation that owns the subscription
The life cycle state of the subscription
Termed service’s product identifier. Subscription must have such a non-churned termed service
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
Determines whether usage is allowed to be consumed as part of at least one of the active services of the subscription. Usage might be allowed by one of the services, but at the time the Web API is triggered, the customer is blocked for consuming usage
Number of inactive services
Number of Draft services
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/subscriptions HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"code": "",
"life_cycle_state": "INACTIVE",
"first_activation_date": 1620984119,
"active_services": 3,
"number_of_devices": 3,
"organisation": {
"id": "4248fab3-67d5-2eb1-eaf6-079ce18cd2ed",
"name": "Bravo Coffee"
},
"contact": {
"id": "",
"name": "John Smith",
"code": "12345"
},
"billing_info": {
"next_billing_date": 1,
"next_payment_date": 1,
"rated_up_date": 1,
"one_time_services": true
},
"terms": {
"billing_period": {
"duration": 1,
"uot": "MONTHS"
},
"billing_day": {
"day_of_month": 1,
"day_of_week": "MONDAY"
}
},
"usage_blocked": "false",
"inactive_services": 2,
"draft_services": 1
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Returns detailed inormation for a subscription
Path variables
The unique identifier of the subscription
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
The type of the event
If one of the contact’s payment methods is specified as the subscription’s payment method as well, then the Account is considered as the funding source. The account is also the default funding source if no payment method is specified.
The Wallet is the subscription’s funding source if subscriber specifically states that he/she wants to pay for the services using available wallet funds.
The address identifier
The address type. Many of the same type.
A short name to allow it to be easily recognised in a list
Defines whether the address is the primary one
The address line 1
The address line 2
The address state/province/county
The address town/city
The address postal code
The address country (based on ISO 3 char code)
The latitude of the address
The longitude of the address
The Google textual identifier that uniquely identifies an address
The address care of
Determines whether usage is allowed to be consumed as part of at least one of the active services of the subscription. Usage might be allowed by one of the services, but at the time the Web API is triggered, the customer is blocked for consuming usage
GET https://sandbox.crm.com/backoffice/v1/subscriptions/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "",
"code": "",
"life_cycle_state": "ACTIVE",
"first_activation_date": 12345567,
"cancellation_date": 12345678,
"active_services": 3,
"number_of_devices": 1,
"billing_info": {
"rated_up_date": 1234567,
"next_billing_date": 1234567,
"next_payment_date": 12345671
},
"organisation": {
"id": "4248fab3-67d5-2eb1-eaf6-079ce18cd2ed",
"name": "Bravo Coffee"
},
"contact": {
"id": "",
"name": "John Smith",
"code": "12345"
},
"account": {
"id": "",
"number": "",
"name": ""
},
"terms": {
"agreement_date": 12345678,
"billing_period": {
"duration": 1,
"uot": "MONTHS"
},
"billing_day": {
"day_of_month": 1,
"day_of_week": "MONDAY"
},
"payment_method": {
"id": "",
"type": "CARD",
"last4": "1234",
"brand": "VISA",
"funding_type": "PREPAID"
},
"funding_source": "ACCOUNT"
},
"address": {
"id": "0df9936c-7d5f-a878-4c05-9b942aa14295",
"address_type": "ALTERNATIVE",
"address_name": "My house",
"is_primary": true,
"address_line_1": "Elia Papakyriakou",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2015",
"country": "CYP",
"lat": 35.157115,
"lon": 33.313719,
"google_place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
"care_of": "n/a"
},
"usage_blocked": "true"
}
{id}/servicesReturns a list of services to which a customer subscribed to
Path variables
The contact’s unique identifier
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
By default, only active services are included. Use this parameter to get a list of terminated/removed services services only.
Product classification of the subscription services to be retrieved. If not specified, all services are returned
Determine whether subscription and its billing terms will additionally be inclded in the response. Default to false
Unique identifier of the subscription that groups services by their billing cycle
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Determines if the service has usage allowance settings.
Applicabe only for services bundled with a device (traceable physical good) that also exists on the subscription
The type of the event
If one of the contact’s payment methods is specified as the subscription’s payment method as well, then the Account is considered as the funding source. The account is also the default funding source if no payment method is specified.
The Wallet is the subscription’s funding source if subscriber specifically states that he/she wants to pay for the services using available wallet funds.
The type of the event
Details about the integration
The integration identifier
The integration name
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/contacts/{id}/services HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"classification": "TERMED_SERVICE",
"has_allowance": "true",
"pendingchanges":"true",
"next_Change_date":123231231,
"service": {
"id": "",
"life_cycle_state": "EFFECTIVE",
"added_on": 1625555027,
"removed_on": 1625555027,
"first_activated_on": 1625555027,
"is_recurring_charge": true,
"product": {
"id": "",
"sku": "",
"name": "",
"classification": "TERMED_SERVICE",
"type_composition": "FLEXIBLE_BUNDLE"
},
"price": {
"id": "",
"price": 9.99,
"currency": "EUR",
"tax_model": "TAX_INCLUSIVE",
"price_type": "FIXED",
"billing_period": {
"duration": "",
"uot": ""
}
},
"rating": {
"state": "PENDING",
"rated_from": 1625555027,
"rated_to": 1625555027
},
"terms": {
"billing_model": "PRE_BILL",
"auto_renew": true,
"in_contract": true,
"quantity": 1,
"contract_period": {
"duration": 18,
"uot": "MONTHS",
"start_date": 1625555027,
"end_date": 1625555027
},
"termed_period": {
"billing_cycles": 1,
"start_date": 1,
"end_date": 1
}
},
"trial_period": {
"trial_state": "IN_TRIAL",
"start_date": 1625555027,
"end_date": 1625555027,
"duration": 7,
"uot": "DAYS"
},
"paused_period": {
"start_date": 1625555027,
"end_date": 1625555027
},
"components": [
{
"id": "",
"added_on": 1625555027,
"first_activated_on": 1625555027,
"in_contract": true,
"life_cycle_state": "",
"product": {
"id": "",
"sku": "",
"name": ""
},
"price": {
"price": 9.99,
"currency": "EUR"
},
"trial_period": {
"trial_state": "IN_TRIAL",
"start_date": 1625555027,
"end_date": 1625555027
}
}
],
"bundled_device": {
"id": "",
"serial_number": "",
"product": {
"id": "",
"sku": "",
"name": ""
}
}
},
"subscription": {
"id": "",
"code": "",
"terms": {
"agreement_date": 1625555027,
"funding_source": "ACCOUNT",
"billing_period": {
"duration": 1,
"uot": "MONTHS"
},
"billing_day": {
"day_of_month": 1,
"day_of_week": "WEDNESDAY"
},
"payment_method": {
"id": "",
"type": "CARD",
"last4": "1234",
"brand": "VISA",
"funding_type": "CREDIT"
}
}
},
"integrations": [
{
"id": "81ed6bcd-39ec-214c-5124-9e5ac6cb5dc4",
"name": "UniFi"
}
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/allowanceReturns the usage allowance provided through a termed/one-time service as well as the remaining usage
Path variables
Responses
Body
GET https://sandbox.crm.com/backoffice/v1/services/{id}/allowance HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"cash_amounts": {
"currency_code": "",
"allowed": {
"per_transaction": 9.99,
"per_day": 19.99,
"per_billing_cycle": 59.99
},
"remaining": {
"per_transaction": 9.99,
"per_day": 19.99,
"per_billing_cycle": 59.99
}
},
"products_allowance": [
{
"item_type": "PRODUCT",
"item_id": "",
"name": "",
"measurement_unit": {
"id": "",
"name": "",
"display_name": ""
},
"cash_amounts": {
"allowed": {
"per_transaction": 9.99,
"per_day": 19.99,
"per_billing_cycle": 59.99
},
"remaining": {
"per_transaction": 9.99,
"per_day": 19.99,
"per_billing_cycle": 59.99
},
"currency_code": ""
},
"usage_amounts": {
"allowed": {
"per_transaction": 9.99,
"per_day": 19.99,
"per_billing_cycle": 59.99
},
"remaining": {
"per_transaction": 9.99,
"per_day": 19.99,
"per_billing_cycle": 59.99
}
}
}
]
}
{id}/servicesAdds a new service on a subscription. Multiple services can be added within a single Web API call. Services are added as Effective on the subscription
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
List of service products that will be added on the subscription. At least one must be specified.
The identifier of the product. Only products classified as Termed services can be added as subscription services.
Required only when the service has multiple price terms. If a single price exist, then it is used by default. If a service has no prices at all, then the service is added on a subscription with no billing information/terms
Applicable and required when the service being added is a flexible bundle. At least one component should be specified.
The identifier of the product that will be added as a component in the flexible bundle
The price terms of the product to be added as a component. Required only when the component has multiple price terms and if its price is not included in the bundles price. If a single price exist, then it is used by default. If a service has no prices at all, then the service is added on a subscription with no billing information/terms
The date on which the services are scheduled to be added on the subscription. If not specified, then services are immediatelly added.
If due to business rules, the services canot be immedaitelly added as effectve on the subscription, this Web API will suggest a scheduled date. Set this paramters to True if the Web API’s proposed date will be autoamtically be used to schedule the addition of the service(s).
Promotion pass redeemed for subscription services
Promotion pass code
Pass code OTP (roadmapped)
Responses
Body
The unique identifier of the new subscription action
A proposed scheduled date returned if the requested action cannot be performed immediatelly due to business rules. If a proposed date is specified, then use it in the next Web API call as the scheduled date
POST https://sandbox.crm.com/backoffice/v1/subscriptions/{id}/services HTTP/1.1
Content-Type: application/json
{
"services": [
{
"product_id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"price_terms_id": "edc0809f-ed91-4b68-b912-5bd6064d901e",
"quantity": 5,
"components": [
{
"product_id": "2dc0809f-ed91-4b68-b912-5bd6064d901e",
"price_terms_id": "32c0809f-ed91-4b68-b912-5bd6064d901e"
}
]
}
],
"scheduled_date": 1621236954,
"use_proposed_date": true,
"pass": {
"code": "HPX68933209",
"otp": ""
}
}
{id}/servicesAdds a new service for a contact.Multiple services can be added within a single Web API call
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The unique dentifier of the service
Required only when the service has multiple price terms. If a single price exist, then it is used by default.
Applicable and mandatory only if the new service is a flexible bundle
The identifier of the product that will be added as a component in the flexible bundle
The price terms of the product to be added as a component. Required only when the component has multiple price terms and if its price is not included in the bundles price. If a single price exist, then it is used by default. If a service has no prices at all, then the service is added on a subscription with no billing information/terms
TO DO
Promotion pass details related to subscription services
Promotion pass code
Pass OTP (roadmapped)
Responses
Body
The unique identifier of the new subscription action
POST https://sandbox.crm.com/backoffice/v1/contacts/{id}/services HTTP/1.1
Content-Type: application/json
{
"services": [
{
"product_id": "3dc0809f-ed91-4b68-b912-5bd6064d901e",
"price_terms_id": "9dc0809f-ed91-4b68-b912-5bd6064d901a",
"components": [
{
"product_id": "3ac0809f-ed91-4b68-b912-5bd6064d901f",
"price_terms_id": "d1c0809f-ed91-4b68-b912-5bd6064d901c"
}
],
"quantity": 5
}
],
"scheduled_date": 1,
"use_proposed_date": true,
"pass": {
"code": "MDE52023874",
"otp": ""
}
}
{id}Updates a single susbcription service. A service might change due to various reasons and multiple changes can be logged per Web API log:
- Change the service’s state
- Change the service with another service
- Change the service’s price terms
- Change the service’s quantity
- Change a flex service’s components
Path variables
The subscription service’s identifier
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The type of the event
The action’s category unique identifier
The date on which the action is scheduled to be executed. If not specified, the action is immediatelly executed.
Applicable when business rules enforce an action to be performed on a future scheduled date. Set this parameter to True to indirectly use the business rules’ proposed scheduled date without explicitly defining it
Applicable and mandatory when pausig a service. Defines the paused period’s duration
Applicable when changing the terms of a service OR changing/swapping services
Change the service’s price with one of its applicable ones. A service’s price can be changed into a new set of price terms of the same or a different billing cycle
Applicable and required when extending the service termed period or the contract period
Applicable and required when upgrading or downgrading a service
The new service product to which the service will be changed with
Required when the new service has multiple price terms. If the new service product has a single price, then it will be used by default
Applicable only when amending a service bundle. At least one components to be added or to be removed must be specified
The service product identifier that will be included in the bundle
The price terms of the product to be added as a component. Required only when the component has multiple price terms and if its price is not included in the bundles price. If a single price exist, then it is used by default. If a service has no prices at all, then the service is added on a subscription with no billing information/terms
Service indetifier of the components to be removed
Locations at which the service is delivered to. This set of locatinos can only include the subscriber’s registered addresses
The contact address unique identifier
Responses
Body
The new subscripton action’s unique identifier
A proposed date on which the requested changes can be scheduled to tbe executed.
PUT https://sandbox.crm.com/backoffice/v1/services/{id} HTTP/1.1
Content-Type: application/json
{
"action": "ACTIVATE",
"category_id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"scheduled_date": 1659594284,
"use_proposed_date": true,
"number_of_days": 5,
"quantity": 5,
"price_terms_id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"extend_by": {
"period": 1,
"period_uot": "WEEKS"
},
"change_to_service": {
"product_id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"price_terms_id": "4dc0809f-ed91-4b68-b912-5bd6064d901e"
},
"components": {
"added": [
{
"product_id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"price_terms_id": "4dc0809f-ed91-4b68-b912-5bd6064d901e"
}
],
"removed": [
{
"id": "4dc0809f-ed91-4b68-b912-5bd6064d901e"
}
]
},
"locations": [
{
"id": "4dc0809f-ed91-4b68-b912-5bd6064d901e"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"proposed_scheduled_date": 1659594284
}
{id}/devicesAdds a new device on a subscription.Multiple devices can be added within a single Web API call
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The unique identifer of the device
Responses
Body
The unique identifer of the subscription action that adds the device on a subscription
POST https://sandbox.crm.com/backoffice/v1/subscriptions/{id}/devices HTTP/1.1
Content-Type: application/json
{
"devices": [
{
"device_id": "",
"price_terms_id": ""
}
]
}{id}/devices/{device_id}Updates a single susbcription device. The update removes the device from the subscription or replaces it with another one.
Path variables
The unique identifier of the subscription
The unique identifier of the Device
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
rename to RETURN
roadmap. Updates general service infromation like the custom fields
Applicable and required when replacing a device. Eitehr an identifier or the serial number of the device can be specified.
The unique identifer of the device
The device’s serial number
The custom field’s unique key
The custom field’s value
Responses
Body
The new subscripton action’s unique identifier
PUT https://sandbox.crm.com/backoffice/v1/subscriptions/{id}/devices/{device_id} HTTP/1.1
Content-Type: application/json
{
"action": "REMOVE",
"replaced_by": {
"device_id": "",
"serial_number": ""
},
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}{id}/devicesReturns a list of devices tha provision the services of a subscription
Path variables
The subscription’s unique identifier
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Number of services enabled on the device
The provisioning integrator, if applicable. Information dependes on the device’s product and its type
The integration’s unique identifier
the integration’s name e.g. Irdeto
The custom field’s unique key
The custom field’s value
GET https://sandbox.crm.com/backoffice/v1/subscriptions/{id}/devices HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"added_on": 23131231232,
"enabled_services": 1,
"device": {
"id": "",
"serial_number": "STB3332222111",
"state": "RENTAL",
"ownership": "OWNED_BY_BUSINESS",
"provisioning": {
"id": "",
"name": ""
},
"product": {
"id": "",
"sku": "",
"name": ""
},
"custom_fields": [
{
"id": "f68fad29-4a1b-3a1e-5cfa-6540a5b1609a",
"key": "back_office",
"label": "Back Office",
"description": "The account's back office code",
"tooltip": "",
"enabled": true,
"visible": true,
"field": "RADIO_BUTTONS",
"entity": "ORGANISATIONS"
}
]
}
}
]
}
{id}/devicesReturns a list of devices on which the specified service is or could be enabled on
Path variables
The service’s unique identifier
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Defines whether the service is already enabled on the device or not. If disabled, then the service can be enable don the related device
Unique code that relates the service and the device to which it is enabled on
The device on which the service is already or could be enabled on
the unique identifier of the device
The device’s serial number
The product of the device
The unique dentifier of the product
The product’s SKU
The product’s name
GET https://sandbox.crm.com/backoffice/v1/services/{id}/devices HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"state": "ENABLED",
"device": {
"id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"serial_number": "STB0001023222",
"product": {
"id": "2dc0809f-ed91-4b68-b912-5bd6064d901e",
"sku": "STB001",
"name": "Set-Top-Box"
}
}
}
]
}
{id}/devicesEnables and/or disables a service on one or more devices.
Path variables
The subscription’s unique identifier
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Define whether the service will be enabled or disabled on the specified device
The unique identifier of the device
Responses
Body
The unique identiier of the subscription action
GET https://sandbox.crm.com/backoffice/v1/subscriptions/{id}/devices HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id":"",
"added_on":23131231232,
"device":{
"id":"",
"serial_number":"STB3332222111",
"state":"RENTAL",
"ownership":"OWNED_BY_BUSINESS",
"product":{
"id":"",
"sku":"",
"name":""
},
"rental_price":{
"price":2.99,
"currency":"EUR",
"billing_period":{
"duration":1,
"uot":"MONTHS"
}
}
}
}
]
}
{id}/billingBills in advance a subscription for a number of upcoming billig cycles. Any scheduled changes planned within this period will be taken into account. In cases of exceeded credit limit, billing is successful only if it can also be paid using an online paymnt method or the CRM Wallet accordinly. Subscription services billed on a post-bill basis and usage service can never be billed in advance.
Path variables
The subscription’s unique identifier
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Number of billing cycles to bill in advance
The date up until which the subscirption will be billed. This date must be one of the future billing cycles’ start date i.e. it must be have the subscription’s billing date. This date however must be set within the next 24 months.
Responses
Body
Invoice unique identifier
Credit Note unique identifier
POST https://sandbox.crm.com/backoffice/v1/subsriptions/4dc0809f-ed91-4b68-b912-5bd6064d901e/billing HTTP/1.1
Content-Type: application/json
{
"upcoming_billing_cycles": 3,
"bill_up_to_date": 1689948097
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"invoice_id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"credit_note_id": "4dc0809f-ed91-4b68-b912-5bd6064d901e"
}{id}/allowed_devicesReturns a list of devices that can be added on a subscription. The list includes devices already owned by the contact and devices owned by the business.
Path variables
The subscription’s unique identifier
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Search for a device using its serial number
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The ownership of the device
The available device
GET https://sandbox.crm.com/backoffice/v1/subscriptions/{id}/allowed_devices HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"ownership": "OWNED_BY_BUSINESS",
"device": {
"id": "",
"serial_number": "",
"product": {
"id": "",
"sku": "",
"name": ""
}
}
}
]
}{id}/servicesAdds a new service for an Organisation.Multiple services can be added within a single Web API call
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The unique dentifier of the service
Required only when the service has multiple price terms. If a single price exist, then it is used by default.
Applicable and mandatory only if the new service is a flexible bundle
The identifier of the product that will be added as a component in the flexible bundle
The price terms of the product to be added as a component. Required only when the component has multiple price terms and if its price is not included in the bundles price. If a single price exist, then it is used by default. If a service has no prices at all, then the service is added on a subscription with no billing information/terms
Responses
Body
The unique identifier of the new subscription action
POST https://sandbox.crm.com/backoffice/v1/organisations/{id}/services HTTP/1.1
Content-Type: application/json
{
"services": [
{
"product_id": "3dc0809f-ed91-4b68-b912-5bd6064d901e",
"price_terms_id": "9dc0809f-ed91-4b68-b912-5bd6064d901a",
"components": [
{
"product_id": "3ac0809f-ed91-4b68-b912-5bd6064d901f",
"price_terms_id": "d1c0809f-ed91-4b68-b912-5bd6064d901c"
}
],
"quantity": 5
}
],
"scheduled_date": 1,
"use_proposed_date": true
}
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "3ac0809f-ed91-4b68-b912-5bd6064d901f",
"proposed_scheduled_date": 1625561889
}
]
{id}/servicesReturns a list of services to which an organisation subscribed to
Path variables
The contact’s unique identifier
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
By default, only active services are included. Use this parameter to get a list of terminated/removed services services only.
Product classification of the subscription services to be retrieved. If not specified, all services are returned
Determine whether subscription and its billing terms will additionally be inclded in the response. Default to false
Unique identifier of the subscription that groups services by their billing cycle
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Applicabe only for services bundled with a device (traceable physical good) that also exists on the subscription
The type of the event
If one of the contact’s payment methods is specified as the subscription’s payment method as well, then the Account is considered as the funding source. The account is also the default funding source if no payment method is specified.
The Wallet is the subscription’s funding source if subscriber specifically states that he/she wants to pay for the services using available wallet funds.
The type of the event
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/organisations/{id}/services HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"classification": "TERMED_SERVICE",
"service": {
"id": "",
"life_cycle_state": "EFFECTIVE",
"added_on": 1625555027,
"removed_on": 1625555027,
"first_activated_on": 1625555027,
"is_recurring_charge": true,
"product": {
"id": "",
"sku": "",
"name": "",
"classification": "TERMED_SERVICE",
"type_composition": "FLEXIBLE_BUNDLE"
},
"price": {
"id": "",
"price": 9.99,
"currency": "EUR",
"tax_model": "TAX_INCLUSIVE",
"price_type": "FIXED",
"billing_period": {
"duration": "",
"uot": ""
}
},
"rating": {
"state": "PENDING",
"rated_from": 1625555027,
"rated_to": 1625555027
},
"terms": {
"billing_model": "PRE_BILL",
"auto_renew": true,
"in_contract": true,
"quantity": 1,
"contract_period": {
"duration": 18,
"uot": "MONTHS",
"start_date": 1625555027,
"end_date": 1625555027
},
"termed_period": {
"billing_cycles": 1,
"start_date": 1,
"end_date": 1
}
},
"trial_period": {
"trial_state": "IN_TRIAL",
"start_date": 1625555027,
"end_date": 1625555027,
"duration": 7,
"uot": "DAYS"
},
"paused_period": {
"start_date": 1625555027,
"end_date": 1625555027
},
"components": [
{
"id": "",
"added_on": 1625555027,
"first_activated_on": 1625555027,
"in_contract": true,
"life_cycle_state": "",
"product": {
"id": "",
"sku": "",
"name": ""
},
"price": {
"price": 9.99,
"currency": "EUR"
},
"trial_period": {
"trial_state": "IN_TRIAL",
"start_date": 1625555027,
"end_date": 1625555027
}
}
],
"bundled_device": {
"id": "",
"serial_number": "",
"product": {
"id": "",
"sku": "",
"name": ""
}
}
},
"subscription": {
"id": "",
"code": "",
"terms": {
"agreement_date": 1625555027,
"funding_source": "ACCOUNT",
"billing_period": {
"duration": 1,
"uot": "MONTHS"
},
"billing_day": {
"day_of_month": 1,
"day_of_week": "WEDNESDAY"
},
"payment_method": {
"id": "",
"type": "CARD",
"last4": "1234",
"brand": "VISA",
"funding_type": "CREDIT"
}
}
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/actions{id}{id}{id}/allowed_actions{id}/allowed_actions{id}/actions{id}/actionsRetrieves a list of subscription actions
Path variables
Subscription unique identifier
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
The ientifier of the subscription action
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/subscriptions/{id}/actions HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"code": "",
"life_cycle_state": "",
"behaviour_code": "",
"business_classification_code": "",
"executed_on": 1234567,
"scheduled_on": 1234567,
"cancelled_on": 1234567,
"rejected_on": 1234567,
"category": {
"id": "",
"name": ""
},
"subscription": {
"id": "",
"code": ""
}
}
],
"pages": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Retrieves detailed information of an existing subscription action
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
A list of sevices affected by the subscription action
The updated quantity of the service
the service#s updated price. Applicable when changing a service’s terms
The price’s identifier
The price’s label
GET https://sandbox.crm.com/backoffice/v1/subscription_actions/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"code": "",
"life_cycle_state": "",
"behaviour_code": "",
"business_classification_code": "",
"executed_on": 1234567,
"scheduled_on": 1234567,
"cancelled_on": 1234567,
"rejected_on": 1234567,
"rejection_reason": "",
"subscription": {
"id": "",
"code": ""
},
"category": {
"id": "",
"name": ""
},
"services": [
{
"change_type": "ADDED",
"product": {
"id": "",
"sku": "",
"name": ""
},
"quantity": 2,
"price": {
"id": "",
"label": "VIP Price",
"price": 9.99,
"billing_period": {
"duration": 1,
"uot": "MONTHS"
}
}
}
]
}
{id}Updates an existing subscripton action.
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Allowed only for Scheduled actions
Allowed only for Rejected actions
Allowed only for Scheduled actions
Applicable only for Scheduled actions
Applicable only for Scheduled actions
Responses
Body
PUT https://sandbox.crm.com/backoffice/v1/subscription_actions/{id} HTTP/1.1
Content-Type: application/json
{
"action": "UPDATE",
"category_id": "",
"scheduled_date": 1234567,
"period_settings": {
"duration_in_days": 5,
"ends_on": 1234567
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "",
"proposed_scheduled_date": ""
}{id}/allowed_actionsRetrieves a list of subscription actions tha can be perofrmed on a specific subscription at a specific period of time
Path variables
Request parameters
The date on which the subscription action will be executed. If not specified, the current date is considered
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
A list of services that will be affected by the action
GET https://sandbox.crm.com/backoffice/v1/subscriptions/{id}/allowed_actions HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"behaviour_code": "",
"business_classification_code": "",
"services": [
{
"id": "",
"product": {
"id": "",
"sku": "",
"name": ""
}
}
]
}{id}/allowed_actionsRetrieves a list of subscription actions that can be perofrmed on a specific services at a specific period of time
Path variables
Request parameters
The date on which the subscription action will be executed. If not specified, the current date is considered
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
GET https://sandbox.crm.com/backoffice/v1/services/{id}/allowed_actions HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"behaviour_code": "",
"business_classification_code": ""
}{id}/actionsRetrieves a list of subscription actions performed for a contact
Path variables
Unique identifier of a contact
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
The identifier of the subscription action
The identifier of the subscription
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/contacts/{id}/actions HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"code": "",
"state": "SCHEDULED",
"behaviour_code": "REMOVE_SERVICE",
"business_classification_code": "",
"executed_on": 1234567,
"scheduled_on": 1234567,
"cancelled_on": 1234567,
"rejected_on": 1234567,
"category": {
"id": "",
"name": ""
},
"subscription": {
"id": "",
"code": ""
}
}
],
"pages": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/locations{id}/locations{id}/locationsUpdates the locations at which the service is used/consumed
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
A list of contact addresses that represent the various locations at which a service is being used/consumed. At least one address must be specified and must be one of the subscription owner’s addresses.
A contact address unique identifier.
Responses
Body
The subscription service’s unique identifier
PUT https://sandbox.crm.com/backoffice/v1/services/{id}/locations HTTP/1.1
Content-Type: application/json
{
"locations": [
{
"id": "1ac0809f-ed91-4b32-b912-5b45064d90af"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}{id}/locationsReturns a list of locations at which a service is being used/consumed. This is a set of addresses of the contact who owns the subscription service
Path variables
The service’s unique identifier
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The address identifier
The address type. Many of the same type.
A short name to allow it to be easily recognised in a list
Defines whether the address is the primary one
The address line 1
The address line 2
The address state/province/county
The address town/city
The address postal code
The address country (based on ISO 3 char code)
The latitude of the address
The longitude of the address
The Google textual identifier that uniquely identifies an address
The address care of
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/services/{id}/locations HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "0df9936c-7d5f-a878-4c05-9b942aa14295",
"address_type": "BUSINESS",
"address_name": "My house",
"is_primary": true,
"address_line_1": "Elia Papakyriakou",
"address_line_2": "7 Tower Stars",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2015",
"country": "CYP",
"lat": 35.157115,
"lon": 33.313719,
"google_place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
"care_of": "n/a"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Create a new top-up transaction for a specific account or wallet.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The account unique identification for which the topup will be performed. Either account or wallet is applicable and mandatory
The wallet unique identification for which the topup will be performed. Either account or wallet is applicable and mandatory
The type of the event
The ID of the actual payment method, if any. Applicable only when the wallet is toped-up using a Card
A unique 16-digit code, will be auto-generated if not provided
Date of Topup Request
The amount of the topup. This amoun is in the wallet’s currency
Group of conditions that define how the top up’s amount can be spent. Specifying spend conditions will move the money to the wallet’s Commerce balance otherwise, money goes to Open balance.
The custom field’s unique key
The custom field’s value
Responses
Successful Request
Body
The top-up unique identifier
Cash Top-Up for a specific Wallet
POST https://sandbox.crm.com/backoffice/v1/topups HTTP/1.1
Content-Type: application/json
{
"account_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"wallet_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"payment_method": "CASH",
"payment_method_id": "e283a863-18e1-7cae-48c4-7433bf28cf97",
"code": "1234567891234567",
"topup_date": 1618298816,
"amount": 9.99,
"spend_condition_id": "f283a863-18e1-7cae-48c4-7433bf28cf97"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "2b98beb3-df11-f14d-561b-a93fcd4a246a"
}
{id}Retrieve details of an existing topup transaction
Path variables
The unique identifier of the topup to be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The code of the topup transaction
The life cycle state of the topup transaction
The creation date of the topup. Defaults to the current date
The amount of the topup
The topup’s currency code
The contact for which the topup was performed
The unique ID
The full name of the contact that owns the topup
The unique code of the contact that owns the topup
The account for which the topup was performed. Either account or wallet is applicable.
The unique ID
The unique number
The wallet for which the topup was performed. Either account or wallet is applicable.
The unique ID
The unique code
The type of the event
Unique identifier of the contact/organisation payment method. Applicable only if the payment method type is Card
The card’s main information. Required and applicable if the payment method type is CARD
The card’s brand
The first 6 digits of the card. Either the card number or the first 6 and last 4 digits must be specified
The last 4 digits f the card. Either the card number or the first 6 and last 4 digits must be specified
The card expiration month
The card expiration year
The group of conditions that show how the top up’s amount can be spend.
The unique identifier of the spend condition
The name of the spend condition
The custom field’s unique key
The custom field’s value
GET https://sandbox.crm.com/backoffice/v1/topups/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"code": "1234567891234567",
"life_cycle_state": "POSTED",
"topup_date": 1583846865,
"amount": 9.99,
"currency_code": "EUR",
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"account": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "AC123456"
},
"wallet": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"code": "123456AAVV123685"
},
"payment_method": "CARD",
"payment_method_id": "a283a863-18e1-7cae-48c4-7433bf28cf97",
"payment_method_details": {
"brand": "VISA",
"first6": "",
"last4": "",
"expiration_month": 1,
"expiration_year": 2020
},
"spend_condition": {
"id": "a283a863-18e1-7cae-48c4-7433bf28cf97",
"name": "TV Services"
},
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
{id}Create a new Transfer between accounts, wallets or account and wallet
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The origin of the transfer. Can be either an account or a wallet
Source account unique id
Source wallet unique id
The destination of the transfer. Can be either an account or a wallet
Destination account unique id
Destination wallet unique id
date of transfer
Transfer amount. the amount is in the origin entity’s currency.
A unique 16-digit code, will be auto-generated if not provided
Applicable only when transfering funds to a wallet. If specified, then the amount will be transfered to the wallet’s Commerce Balance and reserved to be spent based on the conditions. Otheewise, money is transferred to the wallet’s Open balance
Responses
Successful Request
Body
The unique identifier of the transfer
POST https://sandbox.crm.com/backoffice/v1/transfers HTTP/1.1
Content-Type: application/json
{
"origin": {
"account_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"wallet_id": "A65ACCE45B2E68DFDCAD1E31269B76D7"
},
"destination": {
"account_id": "CE45B2E68DFDCAD1E31269B76D7A65AC",
"wallet_id": "B76D7A65ACCCAD1E31269E45B2E68DFD"
},
"transfer_date": 1620999582,
"amount": 9.99,
"code": "1234567891234567",
"spend_condition_id": "B76D7A65ACCCAD1E31269E45B2E68DFD"
}
{id}Get details of an existing transfer transaction
Path variables
The unique identifier of the transfer to be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The transfer code
The life cycle state of the transfer
Date of transfer
Transfer amount
The origin of the transfer. Can be either an account or a wallet. Information about the Contact is retrieved in either case
Origin account details
The unique ID of the source account
The unique number of the source account
Origin wallet details
The unique ID of the source wallet
The unique code of the source wallet
Details of the source contact
Contact’s unique ID
The full name of the contact that originated the transfer
The unique code of the contact that originated the transfer
The destination of the transfer. Can be either an account or a wallet. Information about the Contact is retrieved in either case
Destination account details
Destination account unique ID
Destination account unique number
Destination wallet details
Destiantion wallet unique ID
Destiantion wallet unique code
Destiantion contact’s details
Destination contact’s unique ID
The full name of the contact that the transfer was sent to
The unique code of the contact that the transfer was sent to
The transfer currency, defaults to the origin account currency
The group of conditions that define how the transfered amount can be spend. Applicable only when trasnfering money to a wallet.
The unique identifier fo the spend condition
The name of the spend condition
GET https://sandbox.crm.com/backoffice/v1/transfers/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"code": "1234567891234567",
"life_cycle_state": "POSTED",
"transfer_date": 1,
"amount": 9.99,
"origin": {
"account": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "AC123456"
},
"wallet": {
"id": "D7A65ACCE45BCAD1E31269B762E68DFD",
"code": "W123456AA"
},
"contact": {
"id": "1269B76D7A65ACCE4CAD1E35B2E68DFD",
"name": "John Smith",
"code": "C1230955623"
}
},
"destination": {
"account": {
"id": "76D7A65ACCE45B2E68DFDCAD1E31269B",
"number": "AC123456"
},
"wallet": {
"id": "CD7A65ACCE45B2E68DFDAD1E31269B76",
"code": "W321456AA"
},
"contact": {
"id": "E68DFDCAD1E37A65ACCE45B21269B76D",
"name": "Janet Smith",
"code": "C1249044512"
}
},
"currency_code": "EUR",
"spend_condition": {
"id": "E68DFDCAD1E37A65ACCE45B21269B76D",
"name": "TV services"
}
}
{id}{id}{id}Creates a single usage record within a single call. Usage is consumed because contact has purchased a termed or a one-time service. So in cases where usage is recorded for a usage service without a reference to the termed/one-time service, CRM.COM might record the usage against one or more termed/one-time services, starting from the oldest and shortest one-time services. Consuming usage against a termed service has lower priority.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The usage service being consumed. Only identifiers of products classified as Usage services can be specified.
The consumed usage amount. The amount is specified in the usage service’s measurement unit.
When the uage was consumed and recorded in CRM.COM
Who is the consuming usage. Usage is consumed by either a contact or an organisation. At least one of the parameters must be specified in order to successfully identify the contact
The contact’s unique identifier
The organisation’s identifier
Contact code
The MAC address of the device that is owned by the contact
The contact’s phone number
The unique identifier of the subscription
Defines whether the usage record’s processing will be performed ynchronously (at the time tha tis logged) or asynchronously. In the latter case, the usage record’s processing result can be sent back to the caller via Webhooks.
How much the usage costs. Applicable in cases where usage is rated by the 3rd party system that records usage. In these cases, CRM.COM does not apply any additional pricing and usage is billed as provided. Promotions however might be applied, if any.
The currency in which usage’s cost is recorded
The service through which usage is consumed. This is one of the contact’s service which is either classified as a termed or a one-time service. If not specified, then CRM.COM will record usage starting from the oldest and shortest one-time service (if any) and then from the termed service
The organisation at which usage was consumed.
The usage’s duration (start and end time)
The starting time of usage consuption
The end time of usage consuption
roadmap
Responses
POST https://sandbox.crm.com/backoffice/v1/usage_records/ HTTP/1.1
Content-Type: application/json
{
"usage_service_id": "897f0809f-ed91-4b68-b912-5bd6064ade12",
"usage_amount": 1.99,
"usage_timestamp": 1637318444,
"consumer_identity": {
"contact_id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"organisation_id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"code": "C00000100123",
"mac_address": "00-D0-56-F2-B5-12",
"phone_number": "003579976766555",
"subscription_id": "65fa809f-ed91-4b68-b912-5b23464d9acb"
},
"processing": "SYNC",
"charged_amount": 1.99,
"currency_code": "EUR",
"service_id": "00af0809f-ed91-4b68-b912-5bd60643253d",
"organisation_id": "601a809f-ed91-4b68-b912-5b23464deac7",
"duration": {
"from": 1650264327,
"to": 1650264339
},
"destination": ""
}
HTTP/1.1 204 No Content
Creates multiple usage records within a single call. Usage is consumed because contact has purchased a termed or a one-time service. So in cases where usage is recorded for a usage service without a reference to the termed/one-time service, CRM.COM might record the usage against one or more termed/one-time services, starting from the oldest and shortest one-time services. Consuming usage against a termed service has lower priority.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The usage service being consumed. Only identifiers of products classified as Usage services can be specified.
The consumed usage amount. The amount is specified in the usage service’s measurement unit.
When the uage was consumed and recorded in CRM.COM
Who is the contact or organisation consuming usage. At least one of the parameters must be specified in order to successfully identify the contact/organisation
The contact’s unique identifier
The organisation consuming usage
Contact code
The MAC address of the device that is owned by the contact
The contact’s phone number
The unique identifier of the contact’s subscription
How much the usage costs. Applicable in cases where usage is rated by the 3rd party system that records usage. In these cases, CRM.COM does not apply any additional pricing and usage is billed as provided. Promotions however might be applied, if ay.
The currency in which usage’s cost is recorded
The service through which usage is consumed. This is one of the contact’s service which is either classified as a termed or a one-time service. If not specified, then CRM.COM will record usage starting from the oldest and shortest one-time service (if any) and then from the termed service
The organisation at which usage was consumed.
The usage’s duration (start and end time)
The starting time of usage consuption
The end time of usage consuption
Responses
POST https://sandbox.crm.com/backoffice/v1/usage_records/bulk HTTP/1.1
Content-Type: application/json
[
{
"usage_service_id": "897f0809f-ed91-4b68-b912-5bd6064ade12",
"usage_amount": 1.99,
"usage_timestamp": 1637318444,
"consumer_identity": {
"contact_id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"organisation_id": "65fa809f-ed91-4b68-b912-5b23464d9acb",
"code": "C00000100123",
"mac_address": "00-D0-56-F2-B5-12",
"phone_number": "003579976766555",
"subscription_id": "65fa809f-ed91-4b68-b912-5b23464d9acb"
},
"charged_amount": 1.99,
"currency_code": "EUR",
"service_id": "00af0809f-ed91-4b68-b912-5bd60643253d",
"organisation_id": "601a809f-ed91-4b68-b912-5b23464deac7",
"duration": {
"from": 1650264327,
"to": 1650264339
},
"destination": ""
}
]
HTTP/1.1 204 No Content
{id}Updates a single usage record.
Path variables
Unique identifier of the usage record
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Usage record’s state
Usage record’s blling state
Usage record’s billing directive
Responses
Body
The unique identifier of the usage record
PUT https://sandbox.crm.com/backoffice/v1/usage_records/4dc0809f-ed91-4b68-b912-5bd6064d901e HTTP/1.1
Content-Type: application/json
{
"state": "CANCELLED",
"billing_state": "COMPLETED",
"billing_directive": "NOT_TO_BE_BILLED"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4dc0809f-ed91-4b68-b912-5bd6064d901e"
}{id}Deletes a single usage record
Path variables
The usage record (identifier) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/usage_records/cab35653-05ac-de36-5c64-1fbffbe3abfd HTTP/1.1
HTTP/1.1 204 No Content Retuns a list of usage records
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
The unique identifier of the termed subscrpiton service or contact one-time service
The unique identifier of the usage product
Filter based on the usage date, which may fall within a given date range. The value can be a string with a date in epoch format. Each option must also include an operator. Use up to two options based on the required search (e.g. usage_timestamp[gte]=1618395497&usage_timestamp[lt]=1618395497).
The oganisation consuming usage
The invoice in which the usage records were included
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/usage_records?contact_id=123 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"code": "",
"usage_amount": 1.99,
"usage_timestamp": 12345678,
"charged_amount": 1.99,
"currency": "EUR",
"state": "CANCELLED",
"billing_state": "COMPLETED",
"billing_directive": "TO_BE_CREDITED",
"contact": {
"id": "",
"code": "",
"name": ""
},
"usage_service": {
"id": "",
"sku": "",
"name": ""
},
"service": {
"id": "",
"sku": "",
"name": "",
"classification": "ONE_TIME_SERVICE"
},
"measurement_unit": {
"id": "",
"name": "",
"display_name": ""
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Returns detailed information of a usage record. A single usage record is returned per Web API call
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Applicable and mandatory only if a usage record is cancelled. Provides information on the user and the date on whiche the usage record was cancelled.
GET https://sandbox.crm.com/backoffice/v1/usage_records/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "",
"code": "",
"state": "REJECTED",
"billing_state": "COMPLETED",
"billing_directive": "NOT_TO_BE_BILLED",
"usage_timestamp": 1637320345,
"charged_amount": 9.99,
"currency": "EUR",
"usage_amount": 1.99,
"usage_service": {
"id": "",
"sku": "",
"name": ""
},
"measurement_unit": {
"id": "",
"name": "",
"display_name": ""
},
"service": {
"id": "",
"sku": "",
"name": "",
"classification": "ONE_TIME_SERVICE"
},
"contact": {
"id": "",
"code": "",
"name": "John Smith"
},
"subscription": {
"id": "",
"code": ""
},
"organisation": {
"id": "",
"type": "MERCHANT",
"name": "merchant name"
},
"cancellation": {
"date": 1,
"user": {
"id": "",
"username": ""
}
},
"financials": {
"invoice": {
"id": "",
"number": ""
},
"credit_note": {
"id": "",
"number": ""
}
}
}
{id}/mode{id}/sign_outAuthenticate a user and provide a token to be used for subsequent API calls
Request headers
The public api key required for API calls to identify the organisation
Request body
The credential’s username
The credential’s password
The user’s two-factor method that will be used during authentication (used only if user enabled two-factor authentication)
The two-factor method
The two-factor method value (applicable only for email, phone and back-up code based two-factor methods)
The token taken from the oAUTH service provider (used if username/password not specified)
The state taken from the oAUTH service provider (used if username/password not specified)
Responses
OK
Body
Authentication information provided for an admin user
The token that can be used in subsequent API calls
The token that can be used to generate a new access token
The token expiration date
The user’s first name
The user’s last name
The user’s email address
The organisation mode that the user was last signed into
Organisation was not live enabled
Organisation is in test mode (therefore User is signed in test mode)
Organisation supports live mode (therefore User is signed in live mode)
The organisations that the user is joined
The organisation’s external identifier
The organisation type
The organisation name
Defines the primary organisation that the user has joined
The organisation status
The organisation progress status
Defines whether a user (other than the owner) is invited
Defines whether a contact is created
Defines whether a reward scheme is created
Defines whether a reward offer is created
Defines whether a merchant is created (applicable only for Business organisation)
Defines whether a venue is created
Defines whether password has been expired or not
Defines the date on which the user’s lockout will be expired
The two-factor method that is used and all user’s (configured) two-factor methods
The two-factor method that is used and all user’s (configured) two-factor methods
The method that is used for the two-factor authentication
The two-factor method
The two-factor method obfuscated value (applicable only for email and phone based two-factor methods)
The user’s (configured) two-factor methods
The two-factor method
The two-factor method obfuscated value (applicable only for email and phone based two-factor methods)
Defines the number of days that are left until password is expired
POST https://devapi.crm.com/backoffice/v1/users/authenticate HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"username": "johndoe@crm.com",
"password": "password1234"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"access_token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhY2U5ZDRkMi0wYjhkLTExZWEtOTUxOC00MjAxMGE5YTAwMDMiLCJ0eXBlIjoiYWNjZXNzIiwicHJpbWFyeU9yZ2FuaXNhdGlvbiI6IjhkY2MzNjgwLTBiOGEtMTFlYS05NTE4LTQyMDEwYTlhMDAwMyIsImN1cnJlbnRPcmdhbmlzYXRpb24iOiI4ZGNjMzY4MC0wYjhhLTExZWEtOTUxOC00MjAxMGE5YTAwMDMiLCJzY29wZSI6WyJjdXN0b21lci13cml0ZSIsIm9yZGVyLXJlYWQiXSwicHJlZmVycmVkX3VzZXJuYW1lIjoiamQiLCJlbWFpbCI6ImpkQGNybS5jb20iLCJleHAiOjE1Nzk4ODA2Mjl9.-uJyEW-Y_QgHb1q-WHBBMew3J_TnUfvqy-NDFmIzFhbS3gkerE5QAqp4cgNMr5BiGcyt174UVhYGXp2Fg7BKcw",
"refresh_token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhY2U5ZDRkMi0wYjhkLTExZWEtOTUxOC00MjAxMGE5YTAwMDMiLCJ0eXBlIjoicmVmcmVzaCIsInByaW1hcnlPcmdhbmlzYXRpb24iOiI4ZGNjMzY4MC0wYjhhLTExZWEtOTUxOC00MjAxMGE5YTAwMDMiLCJjdXJyZW50T3JnYW5pc2F0aW9uIjoiOGRjYzM2ODAtMGI4YS0xMWVhLTk1MTgtNDIwMTBhOWEwMDAzIiwic2NvcGUiOlsiY3VzdG9tZXItd3JpdGUiLCJvcmRlci1yZWFkIl0sInByZWZlcnJlZF91c2VybmFtZSI6ImpkIiwiZW1haWwiOiJqZEBjcm0uY29tIiwiZXhwIjoxNTc5ODgwNjI5fQ.cW_g6ozy2OaP5Tx3l2QuzNeRBSXnNrP1AN6QoOqf6s95eVoUrld6bHRUdBt3H74CZyrxhp7Rs_uXtv17GhVz5w",
"expiration_date": 1579880629,
"first_name": "John",
"last_name": "Doe",
"email": "johndoe@crm.com",
"organisations": [
{
"external_id": "QWERTY12345671234567324ETFTGBY78",
"org_type": "ORGANISATION",
"name": "CRMdotCOM"
}
],
"progress": {
"invite_user": "true",
"create_contact": "false",
"create_reward_offer": "false",
"create_merchant": "false",
"create_venue": "false"
}
}
Authenticate a user over to an OIDC provider
Request parameters
The user’s username that will be used for OIDC purposes
Request headers
The public api key required for API calls to identify the organisation
Responses
The request has succeeded
Body
The URL that users should be redirected for OIDC authentication purposes
GET https://sandbox.crm.com/backoffice/v1/users/oidc?username=johndoe@crm.com HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
HTTP/1.1 200 OK
Content-Type: application/json
{
"authorization_url": "azure.crm.com"
}Provide authentication information using a refresh token that can be used in subsequent API calls
Request headers
The refresh token
Responses
OK
Body
Authentication information provided for an admin user
The token that can be used in subsequent API calls
The token that can be used to generate a new access token
The token expiration date
The user’s first name
The user’s last name
The user’s email address
The organisation mode that the user was last signed into
Organisation was not live enabled
Organisation is in test mode (therefore User is signed in test mode)
Organisation supports live mode (therefore User is signed in live mode)
The organisations that the user is joined
The organisation’s external identifier
The organisation type
The organisation name
Defines the primary organisation that the user has joined
The organisation status
The organisation progress status
Defines whether a user (other than the owner) is invited
Defines whether a contact is created
Defines whether a reward scheme is created
Defines whether a reward offer is created
Defines whether a merchant is created (applicable only for Business organisation)
Defines whether a venue is created
Defines whether password has been expired or not
Defines the date on which the user’s lockout will be expired
The two-factor method that is used and all user’s (configured) two-factor methods
The two-factor method that is used and all user’s (configured) two-factor methods
The method that is used for the two-factor authentication
The two-factor method
The two-factor method obfuscated value (applicable only for email and phone based two-factor methods)
The user’s (configured) two-factor methods
The two-factor method
The two-factor method obfuscated value (applicable only for email and phone based two-factor methods)
Defines the number of days that are left until password is expired
POST https://devapi.crm.com/backoffice/v1/users/refresh HTTP/1.1
refresh_token: eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhMjc4ZDNlNS05YjhlLTQzNmUtOTIzMC03MGYzZTJkZjFjYTUiLCJleHAiOjE1Njg1NTQxMjJ9.LemqPPThkqfakkKS6CdkNvV1Lnc88CWirEpHOPnWjJPQz02zgkKSwfbvrEsl3OmR2LUhDILsOXf4x-GPFmNJCg
HTTP/1.1 200 OK
Content-Type: application/json
{
"access_token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhY2U5ZDRkMi0wYjhkLTExZWEtOTUxOC00MjAxMGE5YTAwMDMiLCJ0eXBlIjoiYWNjZXNzIiwicHJpbWFyeU9yZ2FuaXNhdGlvbiI6IjhkY2MzNjgwLTBiOGEtMTFlYS05NTE4LTQyMDEwYTlhMDAwMyIsImN1cnJlbnRPcmdhbmlzYXRpb24iOiI4ZGNjMzY4MC0wYjhhLTExZWEtOTUxOC00MjAxMGE5YTAwMDMiLCJzY29wZSI6WyJjdXN0b21lci13cml0ZSIsIm9yZGVyLXJlYWQiXSwicHJlZmVycmVkX3VzZXJuYW1lIjoiamQiLCJlbWFpbCI6ImpkQGNybS5jb20iLCJleHAiOjE1Nzk4ODA2Mjl9.-uJyEW-Y_QgHb1q-WHBBMew3J_TnUfvqy-NDFmIzFhbS3gkerE5QAqp4cgNMr5BiGcyt174UVhYGXp2Fg7BKcw",
"refresh_token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhY2U5ZDRkMi0wYjhkLTExZWEtOTUxOC00MjAxMGE5YTAwMDMiLCJ0eXBlIjoicmVmcmVzaCIsInByaW1hcnlPcmdhbmlzYXRpb24iOiI4ZGNjMzY4MC0wYjhhLTExZWEtOTUxOC00MjAxMGE5YTAwMDMiLCJjdXJyZW50T3JnYW5pc2F0aW9uIjoiOGRjYzM2ODAtMGI4YS0xMWVhLTk1MTgtNDIwMTBhOWEwMDAzIiwic2NvcGUiOlsiY3VzdG9tZXItd3JpdGUiLCJvcmRlci1yZWFkIl0sInByZWZlcnJlZF91c2VybmFtZSI6ImpkIiwiZW1haWwiOiJqZEBjcm0uY29tIiwiZXhwIjoxNTc5ODgwNjI5fQ.cW_g6ozy2OaP5Tx3l2QuzNeRBSXnNrP1AN6QoOqf6s95eVoUrld6bHRUdBt3H74CZyrxhp7Rs_uXtv17GhVz5w",
"expiration_date": 1579880629,
"first_name": "John",
"last_name": "Doe",
"email": "johndoe@crm.com",
"organisations": [
{
"external_id": "QWERTY12345671234567324ETFTGBY78",
"org_type": "BUSINESS",
"name": "CRMdotCOM"
}
],
"progress": {
"invite_user": "true",
"create_contact": "false",
"create_reward_offer": "false",
"create_merchant": "false",
"create_venue": "false"
}
}
Request a new password for an existing user (providing the user’s login email address, where such password reset email will be sent)
Request headers
The public api key required for API calls to identify the organisation
Request body
The email that will be used to request a new password
Responses
OK
POST /users/forgot_password HTTP/1.1
Content-Type: application/json
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
{
"email": "jd@crm.com"
}
HTTP/1.1 200 OK Changes the password for a user (when a user requested a new one via Forgot Password)
Request body
The token that will verify that the client is trusted
The user’s new password
Responses
OK
POST /users/change_password HTTP/1.1
Content-Type: application/json
{
"token": "ABCTKN123456798VGP2020",
"password": "password1234"
}
HTTP/1.1 200 OK{id}/modeSwitch the user mode between test and live
Path variables
The user (identifer) that its mode will be changed
Request headers
Authorization Token
Responses
OK
Body
Authentication information provided for an admin user
The token that can be used in subsequent API calls
The token that can be used to generate a new access token
The token expiration date
The user’s first name
The user’s last name
The user’s email address
The organisation mode that the user was last signed into
Organisation was not live enabled
Organisation is in test mode (therefore User is signed in test mode)
Organisation supports live mode (therefore User is signed in live mode)
The organisations that the user is joined
The organisation’s external identifier
The organisation type
The organisation name
Defines the primary organisation that the user has joined
The organisation status
The organisation progress status
Defines whether a user (other than the owner) is invited
Defines whether a contact is created
Defines whether a reward scheme is created
Defines whether a reward offer is created
Defines whether a merchant is created (applicable only for Business organisation)
Defines whether a venue is created
Defines whether password has been expired or not
Defines the date on which the user’s lockout will be expired
The two-factor method that is used and all user’s (configured) two-factor methods
The two-factor method that is used and all user’s (configured) two-factor methods
The method that is used for the two-factor authentication
The two-factor method
The two-factor method obfuscated value (applicable only for email and phone based two-factor methods)
The user’s (configured) two-factor methods
The two-factor method
The two-factor method obfuscated value (applicable only for email and phone based two-factor methods)
Defines the number of days that are left until password is expired
POST https://sandbox.crm.com/backoffice/v1/organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/mode HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"access_token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhY2U5ZDRkMi0wYjhkLTExZWEtOTUxOC00MjAxMGE5YTAwMDMiLCJ0eXBlIjoiYWNjZXNzIiwicHJpbWFyeU9yZ2FuaXNhdGlvbiI6IjhkY2MzNjgwLTBiOGEtMTFlYS05NTE4LTQyMDEwYTlhMDAwMyIsImN1cnJlbnRPcmdhbmlzYXRpb24iOiI4ZGNjMzY4MC0wYjhhLTExZWEtOTUxOC00MjAxMGE5YTAwMDMiLCJzY29wZSI6WyJjdXN0b21lci13cml0ZSIsIm9yZGVyLXJlYWQiXSwicHJlZmVycmVkX3VzZXJuYW1lIjoiamQiLCJlbWFpbCI6ImpkQGNybS5jb20iLCJleHAiOjE1Nzk4ODA2Mjl9.-uJyEW-Y_QgHb1q-WHBBMew3J_TnUfvqy-NDFmIzFhbS3gkerE5QAqp4cgNMr5BiGcyt174UVhYGXp2Fg7BKcw",
"refresh_token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhY2U5ZDRkMi0wYjhkLTExZWEtOTUxOC00MjAxMGE5YTAwMDMiLCJ0eXBlIjoicmVmcmVzaCIsInByaW1hcnlPcmdhbmlzYXRpb24iOiI4ZGNjMzY4MC0wYjhhLTExZWEtOTUxOC00MjAxMGE5YTAwMDMiLCJjdXJyZW50T3JnYW5pc2F0aW9uIjoiOGRjYzM2ODAtMGI4YS0xMWVhLTk1MTgtNDIwMTBhOWEwMDAzIiwic2NvcGUiOlsiY3VzdG9tZXItd3JpdGUiLCJvcmRlci1yZWFkIl0sInByZWZlcnJlZF91c2VybmFtZSI6ImpkIiwiZW1haWwiOiJqZEBjcm0uY29tIiwiZXhwIjoxNTc5ODgwNjI5fQ.cW_g6ozy2OaP5Tx3l2QuzNeRBSXnNrP1AN6QoOqf6s95eVoUrld6bHRUdBt3H74CZyrxhp7Rs_uXtv17GhVz5w",
"expiration_date": 1579880629,
"first_name": "John",
"last_name": "Doe",
"email": "johndoe@crm.com",
"mode": "LIVE",
"organisations": [
{
"external_id": "QWERTY12345671234567324ETFTGBY78",
"org_type": "CLOUD_OPERATOR",
"name": "CRMdotCOM",
"mode": "LIVE"
}
],
"progress": {
"invite_user": "true",
"create_contact": "false",
"create_reward_scheme": "true",
"create_reward_offer": "false",
"create_merchant": "false",
"create_venue": "false"
}
}
Request an one-time password for a specific user. The request will check the user details and send an outbound validation number that can be used to verify the contact
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
Information on how the user will be identified
The predetermined information that will be used to identify the user
Two-factor Authentication based on Email
Two-factor Authentication based on Phone (SMS)
The value of the credential to check
Responses
OK
Body
The one time password auth otp id
POST https://sandbox.crm.com/backoffice/v1/users/otp HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"credentials": [
{
"name": "TFA_EMAIL",
"value": "j_ioannou@crm.com"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"auth_otp": "0e5efc4e-5dc7-ea54-cf9d-498914806e0f"
}Verify an one-time password that was requested and provide authentication information that can be used for subsequent API calls
Request headers
The public api key required for API calls to identify the organisation
Request body
Information on how the user will be identified
User identification credentials
Two-factor Authentication Auth Id
The value of the credential to verify the user’s authenticity
The OTP code that should be used for verification purposes
Responses
OK
Body
Authentication information provided for an admin user
The token that can be used in subsequent API calls
The token that can be used to generate a new access token
The token expiration date
The user’s first name
The user’s last name
The user’s email address
The organisation mode that the user was last signed into
Organisation was not live enabled
Organisation is in test mode (therefore User is signed in test mode)
Organisation supports live mode (therefore User is signed in live mode)
The organisations that the user is joined
The organisation’s external identifier
The organisation type
The organisation name
Defines the primary organisation that the user has joined
The organisation status
The organisation progress status
Defines whether a user (other than the owner) is invited
Defines whether a contact is created
Defines whether a reward scheme is created
Defines whether a reward offer is created
Defines whether a merchant is created (applicable only for Business organisation)
Defines whether a venue is created
Defines whether password has been expired or not
Defines the date on which the user’s lockout will be expired
The two-factor method that is used and all user’s (configured) two-factor methods
The two-factor method that is used and all user’s (configured) two-factor methods
The method that is used for the two-factor authentication
The two-factor method
The two-factor method obfuscated value (applicable only for email and phone based two-factor methods)
The user’s (configured) two-factor methods
The two-factor method
The two-factor method obfuscated value (applicable only for email and phone based two-factor methods)
Defines the number of days that are left until password is expired
POST https://sandbox.crm.com/backoffice/v1/users/validate-otp HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"credentials": [
{
"name": "TFA_OTP",
"value": "ABC-123"
}
],
"code": 123456
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"access_token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhY2U5ZDRkMi0wYjhkLTExZWEtOTUxOC00MjAxMGE5YTAwMDMiLCJ0eXBlIjoiYWNjZXNzIiwicHJpbWFyeU9yZ2FuaXNhdGlvbiI6IjhkY2MzNjgwLTBiOGEtMTFlYS05NTE4LTQyMDEwYTlhMDAwMyIsImN1cnJlbnRPcmdhbmlzYXRpb24iOiI4ZGNjMzY4MC0wYjhhLTExZWEtOTUxOC00MjAxMGE5YTAwMDMiLCJzY29wZSI6WyJjdXN0b21lci13cml0ZSIsIm9yZGVyLXJlYWQiXSwicHJlZmVycmVkX3VzZXJuYW1lIjoiamQiLCJlbWFpbCI6ImpkQGNybS5jb20iLCJleHAiOjE1Nzk4ODA2Mjl9.-uJyEW-Y_QgHb1q-WHBBMew3J_TnUfvqy-NDFmIzFhbS3gkerE5QAqp4cgNMr5BiGcyt174UVhYGXp2Fg7BKcw",
"refresh_token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhY2U5ZDRkMi0wYjhkLTExZWEtOTUxOC00MjAxMGE5YTAwMDMiLCJ0eXBlIjoicmVmcmVzaCIsInByaW1hcnlPcmdhbmlzYXRpb24iOiI4ZGNjMzY4MC0wYjhhLTExZWEtOTUxOC00MjAxMGE5YTAwMDMiLCJjdXJyZW50T3JnYW5pc2F0aW9uIjoiOGRjYzM2ODAtMGI4YS0xMWVhLTk1MTgtNDIwMTBhOWEwMDAzIiwic2NvcGUiOlsiY3VzdG9tZXItd3JpdGUiLCJvcmRlci1yZWFkIl0sInByZWZlcnJlZF91c2VybmFtZSI6ImpkIiwiZW1haWwiOiJqZEBjcm0uY29tIiwiZXhwIjoxNTc5ODgwNjI5fQ.cW_g6ozy2OaP5Tx3l2QuzNeRBSXnNrP1AN6QoOqf6s95eVoUrld6bHRUdBt3H74CZyrxhp7Rs_uXtv17GhVz5w",
"expiration_date": 1579880629,
"first_name": "John",
"last_name": "Doe",
"email": "johndoe@crm.com",
"mode": "TRIAL",
"organisations": [
{
"external_id": "QWERTY12345671234567324ETFTGBY78",
"org_type": "SERVICE_OWNER",
"name": "CRMdotCOM"
}
],
"progress": {
"invite_user": "true",
"create_contact": "false",
"create_reward_scheme": "true",
"create_reward_offer": "false",
"create_merchant": "false",
"create_venue": "false"
},
"password_token": "ABCDEFGH123456789",
"lockout_date": 1615897181,
"tfa_methods": [
{
"id": "3aa0ce8a-7307-5cec-9cdc-9e651e04916e",
"method": "PHONE",
"obfuscated": "j*****oe@crm.com"
}
]
}
{id}/sign_outTerminates the user’ session and will no longer be able to access the client (SPA)
Path variables
The user (identifer) that will be signed out
Request headers
Authorization Token
Responses
OK
POST https://devapi.crm.com/backoffice/v1/users/CAD1E31269B76D7A65ACCE45B2E68DFD/sign_out HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK {id}{id}/my_profile{id}{id}{id}/my_profile{id}/activate{id}/deactivate{id}/invite_resend{id}/invite_revoke{id}/media_groups{id}/actionsInvite a new user to an organisation with a specific role (invitation will be sent via the specified email)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The organisation identifier that the user is invited to
The user’s first name
The user’s last name
The user role
The user’s identity
The provider of the identity
The identity challenge
The teams that the user will be part of
Responses
OK
Body
The user identifier
POST /users/invite HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"organisation_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"first_name": "Jane",
"last_name": "Doe",
"role_id": "AUR1E31269B76D7A65ACCE45B2E68DFD",
"identity": {
"type": "EMAIL",
"identity_challenge": "jd@crm.com"
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}Accept a user’s invitation for joining an organisation
Request body
The token that will verify that the client is trusted
The user’s password
Responses
OK
POST /users/accept_invite HTTP/1.1
Content-Type: application/json
{
"token": "ABCTKN123456798VGP2020",
"password": "password1234"
}
HTTP/1.1 200 OK{id}Update an existing user
Path variables
The user identifier that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The user’s first name
The user’s last name
The user role
The language preferred by the user for communication
The language preferred by the user for software translation
Information about the user’s contact details
The identifier of the user’s contact detail
The name of the user’s contact detail
The type of the contact information
The value of the user’s contact detail
The teams that the user will be part of
Responses
OK
Body
The user identifier
PUT /users/CK1234567890123456789012345678 HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"first_name": "Jane",
"last_name": "Doe",
"role_id": "UR1234567890123456789012345678",
"contact_info": [
{
"id": "CK1234567890123456789012345678",
"name": "Work",
"type": "EXTENSION",
"value": "janedoe@crm.com"
}
],
"teams": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{id}/my_profileUpdate the signed-in user details
Path variables
The (signed-in) user (identifer) that will be updated
Request headers
Authorization Token
Request body
The user’s first name
The user’s last name
The language preferred by the user for communications
The language preferred by the user for software translation
Information about the user’s contact details
The identifier of the user’s contact detail
The name of the user’s contact detail
The type of the contact information
The value of the user’s contact detail
Responses
OK
Body
The user identifier
PUT https://sandbox.crm.com/backoffice/v1/users/CK1234567890123456789012345678/my_profile HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"first_name": "Jane",
"last_name": "Doe",
"preferred_language": "EN",
"contact_info": [
{
"id": "CK1234567890123456789012345678",
"name": "Work",
"type": "PHONE",
"value": "janedoe@crm.com"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{id}Delete a user from a specific organisation
Path variables
The user (identifer) that will be deleted
Notes
The user will be deleted only from the specific organisation and not from all organisations that the user might belong
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE /users/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK Retrieve a list of users based on search criteria (e.g. all active users)
Request parameters
The value of the search (case insensitive) across Full Name (first + last name), Email Address, Phone Number
The user first name
The user last name
The user email address
Defines wchich users should be returned (false: retrieve all users that have accepted their invitation, true: retrieve users that have pendingi invitation, null: retrieve all users)
Filter users based on user roles
Filter users based on teams
Defines which users will be retrieved based on whether they are locked due to incorrect password validations or not
Defines which users will be retrieved based on their status
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The user identifier
The user’s first name
The user’s last name
The language preferred by the user for communication
The language preferred by the user for software translation
The user’ status
The date when the user was invited
Defines whether two-factor authentication is enabled or not
Defines when the user lockout period will end (applicable if the user is locked out due to reaching the maximum invalid password attempts)
Information about the user roles
The user role identifier
The user role name
Information about the user’s contact details
The user’s contact info identifier
The contact info name
The type of the contact information
The value of the contact info
Defines whether the contact info is used as an user’s identidy
Information about the user’s identities
The user identity
The provider of the identity
the identity’s challenge
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
The timestamp of the user’s last login
The timestamp of the user’s last deactivation
The page number
The number of records per page
The overal number of records
GET /users HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"first_name": "John",
"last_name": "Doe",
"is_active": true,
"role": {
"id": "AUR1E31269B76D7A65ACCE45B2E68DFD",
"name": "Owner"
},
"contact_info": [
{
"id": "AUR1E31269B76D7A65ACCE45B2E68DFD",
"type": "EMAIL",
"value": "johndoe@crm.com",
"is_identity": "true"
}
],
"identity": [
{
"id": "CAD1QQ1269B76D7A65ACCE45B2E68DFD",
"provider": "EMAIL",
"identity_challenge": "johndoe@crm.com"
}
],
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"type": "MARKETING",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/offer.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/offer.jpg"
}
]
}
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Get details for a single user
Path variables
The user (identifer) that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The user identifier
The user’s first name
The user’s last name
The language preferred by the user for communication
The language preferred by the user for software translation
Information about the user roles
The user role identifier
The user role name
Information about the user’s contact details
The contact info identifier
The name of the contact info
The type of the contact information
The value of the contact info
Defines whether the contact info is used as an user’s identidy
Information about the user’s identities
The user identity
The provider of the identity
The identity’s challenge
The teams that the user is part of
The organisation identifier
The organisation name
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
The timestamp of the user’s last login
The timestamp of the user’s last deactivation
GET /users/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"first_name": "John",
"last_name": "Doe",
"preferred_language": "EN",
"role": {
"id": "AUR1E31269B76D7A65ACCE45B2E68DFD",
"name": "Rewards Manager"
},
"contact_info": [
{
"id": "AUR1E31269B76D7A65ACCE45B2E68DFD",
"name": "Work",
"type": "EMAIL",
"value": "johndoe@crm.com",
"is_identity": "true"
}
],
"identity": [
{
"id": "CAD1QQ1269B76D7A65ACCE45B2E68DFD",
"provider": "EMAIL",
"identity_challenge": "johndoe@crm.com"
}
],
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"type": "PROFILEIMAGE",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/offer.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/offer.jpg"
}
]
}
]
}
{id}/my_profileGet details for the signed-in user
Path variables
The (signed-in) user (identifer) that will be retrieved
Request headers
Authorization Token
Responses
OK
Body
The user identifier
The user’s first name
The user’s last name
The language preferred by the user for communication
The language preferred by the user for software translation
Information about the user roles
The user role identifier
The user role name
Information about the user’s contact details
The contact info identifier
The name of the contact info
The type of the contact information
The value of the contact info
Defines whether the contact info is used as an user’s identidy
Information about the user’s identities
The user identity
The provider of the identity
The identity’s challenge
The teams that the user is part of
The organisation identifier
The organisation name
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
GET /users/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"first_name": "John",
"last_name": "Doe",
"preferred_language": "EN",
"role": {
"id": "AUR1E31269B76D7A65ACCE45B2E68DFD",
"name": "Rewards Manager"
},
"contact_info": [
{
"id": "AUR1E31269B76D7A65ACCE45B2E68DFD",
"name": "Work",
"type": "EMAIL",
"value": "johndoe@crm.com",
"is_identity": "true"
}
],
"identity": [
{
"id": "CAD1QQ1269B76D7A65ACCE45B2E68DFD",
"provider": "EMAIL",
"identity_challenge": "johndoe@crm.com"
}
],
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"type": "PROFILEIMAGE",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/offer.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/offer.jpg"
}
]
}
]
}
Retrieve a list of organisations that a user is a member to
Request parameters
The user’s username that will be used for retrieving the organisations that such user is a member to
Responses
The request has succeeded
Body
The organisation identifier
The organisation name
The organisation supported login method
The public API Key for the organisation
GET https://sandbox.crm.com/backoffice/v1/users/organisations?username=johndoe@crm.com HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "b780f4d2-59c1-e3be-cbe6-247df4117793",
"name": "CRM.COM",
"login_method": "USERNAME_PASSWORD",
"public_api_key": "11f4b2bb-65d9-46b5-9ca3-b726778f651f"
}
]{id}/activateActivate a specific user
Path variables
The user (identifer) that will be activates
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The user identifier
POST /users/CK1234567890123456789012345678/activate HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{id}/deactivateDeactivate a specific user
Path variables
The user (identifer) that will be deactivated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The user identifier
POST /users/CK1234567890123456789012345678/deactivate HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{id}/invite_resendResend a user invitation
Path variables
The user (identifer) that invitation will be send again
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The user identifier
POST /users/CAD1E31269B76D7A65ACCE45B2E68DFD/invite_resend HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}Resend a user verification
Request headers
The secret api key required for API calls to ensure that the client is trusted
Request body
The email that was used during registration and verification should be resend (if matched)
Responses
OK
POST https://sandbox.crm.com/backoffice/v1/users/verify_resend HTTP/1.1
Content-Type: application/json
api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
{
"email": "john@crm.com"
}
HTTP/1.1 200 OK {id}/invite_revokeResend a user invitation
Path variables
The user (identifer) that invitation will be revoked
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
DELETE /users/CAD1E31269B76D7A65ACCE45B2E68DFD/invite_revoke HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK {id}/media_groupsLink a user with one or many media groups
Path variables
The user (identifer) that media groups will be updated
Notes
Uploading media for a user requires the execution of the following APIs
- Create new Media Group
- Create User Media Groups
- Upload Media
- Perform Cloudinary Upload (where CRM will send all signature details)
- Cloudinary service calls back CRM media group (using an internal callback)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The media group identifier
Responses
POST https://sandbox.crm.com/backoffice/v1/users/sdfsfsdf-32-fwef-wef-wefwef23/media_groups HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
[
{
"media_group_id": "3f1f9e63-7f40-4e5e-bc42-11a162f7f1fb"
}
]
HTTP/1.1 200 OK {id}/actionsPerform an action on a single user
Path variables
The user (identifer) that an action will be applied
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The action that will be applied on the user
Cancel the lockout that is applied on user due to invalid authentication (reaching the max auth attemps with no success)
Responses
OK
Body
The user identifier
POST https://sandbox.crm.com/backoffice/v1/users/CK1234567890123456789012345678/actions HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"actions": "CANCEL_LOCK"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{id}/contactinfo{id}/contactinfo/{contactinfo_id}{id}/contactinfo/{contactinfo_id}{id}/contactinfoAdd contact info to a specific user
Path variables
The user (identifer) whose contact info will be added
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The contact info name
The type of the contact information
The contact info value
Responses
OK
Body
The user contact info identifier
POST /users/CK1234567890123456789012345678/contactinfo HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"name": "Work",
"type": "EMAIL",
"value": "jd@crm.com"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "AK1234567890123456789012345678"
}{id}/contactinfo/{contactinfo_id}Update existing contact info of a specific user
Path variables
The user (identifer) whose contact info will be update
The contact info (identifer) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The contact info name
The contact info value
Responses
OK
Body
The user contact info identifier
PUT /users/CK1234567890123456789012345678/contactinfo/AK1234567890123456789012345678 HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"name": "Work",
"value": "jd@crm.com"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "AK1234567890123456789012345678"
}{id}/contactinfo/{contactinfo_id}Delete existing contact info of a specific user
Path variables
The user (identifer) whose contact info will be deleted
The contact info (identifer) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
DELETE /users/CK1234567890123456789012345678/contactinfo/AK1234567890123456789012345678 HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK {id}/identities{id}/identities/{identity_id}{id}/identities/{identity_id}{id}/identitiesCreate an identity for a specific user
Path variables
The user (identifer) whose identity will be created
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The provider of the identity
The user’s challenge
The user’s value (applicable only when provider is EMAIL based)
Responses
OK
Body
The user identity identifier
POST /users/CK1234567890123456789012345678/identities/ID1234567890123456789012345678 HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"identity_challenge": "johndoe@crm.com",
"identity_value": "1234"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{id}/identities/{identity_id}Update an identity for a specific user
Path variables
The user (identifer) whose identity will be updated
The identity (identifer) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The user’s identity challenge
The user’s identity value (applicable only when identity is EMAIL based)
The user’s identity previous value (applicable only when identity is EMAIL based)
Responses
OK
Body
The user identity identifier
POST /users/CK1234567890123456789012345678/identities/ID1234567890123456789012345678 HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"identity_challenge": "johndoe@crm.com",
"identity_value": "1234"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{id}/identities/{identity_id}Delete an identity for a specific user
Path variables
The user (identifer) whose identity will be deleted
The identity (identifer) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
DELETE /users/CK1234567890123456789012345678/identities/ID1234567890123456789012345678 HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK {id}/two_factor_methods{id}/two_factor_methods/{tfm_id}{id}/two_factor_methods{id}/two_factor_methods/{tfm_id}/actions{id}/two_factor_methods/backup{id}/two_factor_methodsCreate a 2FA method for a specific user
Path variables
The user (identifier) that two-factor method will be created
Request headers
Authorization Token
Request body
The two-factor method
The two-factor authentication value
Responses
Body
The two-factor authentication method identifier
The two-factor authentication time-based one-time password (TOTP) details
The TOTP URL that will be used for the QR code
The TOTP key that can be used for manual registration on an authenticator app
{id}/two_factor_methods/{tfm_id}Delete a user’s existing two-factor authentication method
Path variables
The user (identifier) whose two-factor authentication method will be deleted
The two-factor authentication method (identifier) that will be deleted
Request headers
Authorization Token
Responses
The request has succeeded
DELETE https://sandbox.crm.com/backoffice/v1/users/43459841-5a83-1cd1-92c1-1b9238c0603a/two_factor_methods/30213192-3bd2-868e-128e-b93495526e8f HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 204 No Content {id}/two_factor_methodsRetrieve a list of a user’s two-factor authentication methods based on search criteria (e.g. all methods)
Path variables
The user (identifier) whose two-factor authentication methods will be retrieved
Request headers
Authorization Token
Responses
The request has succeeded
Body
The two-factor authentication method identifier
The two-factor method
The two-factor authentication obfuscated value (applicable only for email and phone based methods)
GET https://sandbox.crm.com/backoffice/v1/users/43459841-5a83-1cd1-92c1-1b9238c0603a/two_factor_methods HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "e44d7b18-c4b1-c7d7-30ef-7e5a01c77cf0",
"method": "EMAIL",
"value": "j_*****@crm.com"
}
]
}{id}/two_factor_methods/{tfm_id}/actionsPerform actions on a user’s newly added two-factor authentication method
Path variables
The user (identifier) whose two-factor authentication method will be updated
The two-factor authentication method that actions will be applied on
Request headers
Authorization Token
Request body
The action that will be applied on the two-factor authentication method
The 6-digit verification code (required for VERIFY action)
Responses
The request has succeeded
Body
The two-factor authentication method identifier
PUT https://sandbox.crm.com/backoffice/v1/users/43459841-5a83-1cd1-92c1-1b9238c0603a/two_factor_methods/30213192-3bd2-868e-128e-b93495526e8f/actions HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"action": "VERIFY",
"code": "135792"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "0bb44610-f77c-85e0-f8a1-d35da22f5c78"
}{id}/two_factor_methods/backupGenerate a new back-up code (unique 24-alphanumeric character code) as part of a user’s two-factor authentication method
Path variables
The user (identifier) for which a two-factor authentication backup code will be generated
Notes
Back-up code can be used for authentication purposes (sign-in) when user forgets all two-factor authentication methods does not have access to them
Request headers
Authorization Token
Responses
The request has succeeded
Body
The two-factor authentication back-up code
POST https://sandbox.crm.com/backoffice/v1/users/43459841-5a83-1cd1-92c1-1b9238c0603a/two_factor_methods/backup HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"backup_code": "ybkc-efxv-rggd-qtdv-xckg"
}The following group will detail the API’s required in order to monitor the events and logs taking place in the system.
{id}{id}Returns a list of Events logged in MongoDB
Request parameters
Search for an event using keywords relating to the event description or event name.
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Retrieve events submitted by a specific contact
Retrieve events for a specific entity
Retrieve a single event using the unique API log id
Filter events based on date submitted
Returns results where the submitted date is greater than this value
Returns results where the submitted date is greater than or equal to this value
Returns results where the submitted date is less than this value
Returns results where the submitted date is less then or equal to this value
Filter events based on unique id of the system user
Filter based on entity (identifier) associated to such event
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Details relating to the event.
The event identifier
The date&time that the event was created.
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/events HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "evnt_IGD78345hjhDFHD76t883hnfh",
"source": "/organisations/ba7944ab-53ef-4425-ac7c-faaf2e33a4a1/switch",
"status": "200",
"submitted_date": 1625472619,
"method": "POST",
"reason_phrase": "OK"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Returns an Event logged in Mongo DW
Path variables
The event (identifier) to retrieve the details
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Retrieves all API logs.
Request parameters
search by entity_id and source
search by source
Filter based on entity (identifier)
List of statuses in order to search logs based on multiple statuses
Filter API logs based on date submitted
Returns results where the submitted date is greater than this value
Returns results where the submitted date is greater than or equal to this value
Returns results where the submitted date is less than this value
Returns results where the submitted date is less then or equal to this value
Filter API log based on unique id of the system user
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The API log identifier
The API method
The API source
The API log status
The status info
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/api_logs HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "b6c1c158-7ef8-4f1a-82d1-060dcc9e3da2",
"status": 1,
"method": "DELETE",
"source": "/organisations/ba7944ab-53ef-4425-ac7c-faaf2e33a4a1/switch\"",
"reason_phrase": "OK",
"submitted_date": ""
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Retrieves details regarding to the specific log
Path variables
The log (identifier) to be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The API (URL) endpoint
The status info
GET https://sandbox.crm.com/backoffice/v1/api_logs/42f75e3f-5337-2358-5ec0-9025992c9e3b HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"name": "updateProductTypes",
"source": "/product_types/9EAA2884B6D04DD89F324A26D63944C9",
"status": 1,
"method": "DEL",
"request": "\"composition_method\\\":\\\"FLAT\\\",\\\"name\\\":\\\"Consumables\\\",\\\"description\\\":null,\\\"negative_balance_allowed\\\":false,\\\"display_name\\\":\\\"\\\",\\\"is_modifier\\\":false,\\\"is_stockable\\\":false,\\\"variant_attributes\\\":[]}",
"response": "{\\\"id\\\":\\\"9EAA2884B6D04DD89F324A26D63944C9\\\"}\", \"id\":\"849a07f0-f180-47ef-9c4a-89a67306ebfe\", \"ip_address\":\"172.30.182.233\", \"api_version\":\"V1\", \"reason_phrase\":\"OK\", \"submitted_date\":1630312452 \":[]}"
}
Retrieve the Accounting Periods
Request parameters
Defines on which attribute the results should be sorted
The page number that should be retrieved
The size (total records) of each page
Defines how the results will be ordered
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The ID of the accounting period
The number of the accounting period
The name of the accounting period
The starting date of the accounting period
The ending date of the accounting period
The life cycle state of the accounting period
The actual date that the period was closed
GET /accounting_periods HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"accounting_period_id": "4AD9C84FA60F9FE407140E20F707726A",
"number": "102019",
"name": "OCTOBER2019",
"from_date": "1583764050",
"to_date": "1583764050",
"life_cycle_state": "OPEN",
"closed_date": "1583764050"
}
]Get the generic account settings
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The default Credit Limit that a contact will be assigned when creating a new Account. Defines in the business’s base currency
Number of dayswithin which an Invoice is due to be paid
GET https://sandbox.crm.com/backoffice/v1/account_generic_settings HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"name_display_settings": "ACCOUNT_CONTACT_NAME",
"allocation_settings": "FIFO_AGAINST_ITEM",
"accounting_period_settings": {
"close_months_before": 1
},
"credit_terms_settings": {
"credit_limit": 9.99,
"payment_terms": {
"id": "4AD9C84FA60F9FE407140E20F707726A",
"type": "NET_7",
"label": "Net 7",
"net_term_days": 7
},
"additional_rules": [
{
"credit_limit": 8.99,
"payment_terms": {
"id": "4AD9C84FA60F9FE407140E20F707726A",
"type": "DUE_IMMEDIATELLY",
"label": "Due Immediatelly",
"net_term_days": 1
},
"account_classifications": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "VIP"
}
]
}
]
},
"numbering_schemes": [
{
"entity": "INVOICE",
"prefix": "",
"starting_number": "",
"number_of_digits": 1,
"last_number": ""
}
]
}
Update the generic account settings
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Responses
Successful Request
Body
PUT https://sandbox.crm.com/backoffice/v1/account_generic_settings HTTP/1.1
Content-Type: application/json
{
"name_display_settings": "ACCOUNT_CONTACT_NAME",
"allocation_settings": "FIFO_AGAINST_ITEM",
"accounting_period_settings": {
"close_months_before": 3
},
"credit_terms_settings": {
"credit_limit": 9.99,
"payment_terms_id": "4AD9C84FA60F9FE407140E20F707726A",
"additional_rules": [
{
"credit_limit": 8.99,
"payment_terms_id": "4AD9C84FA60F9FE407140E20F707726A",
"account_classifications": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "VIP"
}
]
}
]
},
"numbering_schemes": [
{
"entity": "INVOICE",
"prefix": "",
"number_of_digits": 5,
"starting_number": "00001"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}{id}Create the account classifications
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the classification to be created
Determines whether it’s the default classification
Responses
Successful Request
Body
The unique identifier of the classification
{id}Update a specific account classification
Path variables
The account classification identifier that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the classification
Determines whether it’s the default classification
Responses
Successful Request
Body
The unique identifier of the account classification
{id}Delete a specific account classification
Path variables
The account classification identifier that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Responses
Successful Request
List all the available account classifications
Request parameters
Defines on which attribute the results should be sorted
The page number that should be retrieved
The size (total records) of each page
Defines how the results will be ordered
The name of the account classification
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/account_classifications HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"name": "Normal",
"id": "7b3a5787-1f0f-4062-b373-df2ecf943658",
"is_default": true
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}{id}Creates a new Payment Term
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The number of days in which the invoice will be due
Determines whether it’s the default payment term
Responses
Successful Request
Body
The unique identifier of the payment term
POST https://sandbox.crm.com/backoffice/v1/payment_terms HTTP/1.1
Content-Type: application/json
{
"net_term_days": 180,
"is_default": "true"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726A"
}{id}Updates an existing Payment Term
Path variables
The unique identifier of the Payment Term to be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The number of days in which the invoice will be due
Determines whether it’s the default payment term
Responses
Successful Request
Body
The unique identifier of the payment term
PUT https://sandbox.crm.com/backoffice/v1/payment_terms/{id} HTTP/1.1
Content-Type: application/json
{
"net_term_days": 180,
"is_default": "true"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726A"
}List all the available Payment Terms
Request parameters
Defines on which attribute the results should be sorted
The page number that should be retrieved
The size (total records) of each page
Defines how the results will be ordered
The name of the Payment Term
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/payment_terms HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "Net 7",
"net_term_days": 7,
"is_default": "true"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}Delete a specific payment term
Path variables
The payment terms identifier that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/payment_terms/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
HTTP/1.1 204 No Content {id}{id}{id}Create an activity type.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
A unique name for the type
The description of the type.
The unique colour code relating to the type.
Examples
Responses
Body
The unique identifier of the newly created type
POST https://sandbox.crm.com/backoffice/v1/types HTTP/1.1
Content-Type: application/json
{
"name": "Installations",
"description": "A customer requires an installation of some sorts.",
"color": "FAC9990",
"owner": [
{
"user id": "4KHSKUFGKNS8369874KJGJKS",
"name": "John Smith"
}
]
}{id}Update an activity type.
Path variables
The GUID of the activity type
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
A unique name for the type
The state of the type.
The description of the type.
The unique colour code relating to the type.
Examples
Responses
Body
The unique identifier of the newly created type
PUT https://sandbox.crm.com/backoffice/v1/types/JHGSKJGSE7686487643HJGFSG HTTP/1.1
Content-Type: application/json
{
"name": "Installations",
"state": "Active",
"description": "A customer requires an installation of some sorts.",
"color": "FAC9990",
"resources": [
{
"user id": "4KHSKUFGKNS8369874KJGJKS",
"name": "John Smith"
}
]
}{id}Delete a type.
Path variables
The GUID of the type to be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/queues/74D9C84FA60F9FE407140E20F707726A HTTP/1.1 Retrieve all details pertaining to activity types.
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Search for a queue using its name
The state of the activity
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The GUID of the type
The name of the queue
The life cycle state of the queue
The decsription of the type.
The unique colour code that has been assigned to the queue type.
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/types HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "74D9C84FA60F9FE407140E20F707726A",
"name": "Billing Issues",
"state": "Active",
"number_of_users": 5,
"description": "The user requires installation of some type.",
"color": "F56CSD"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Retrieve a types details.
Path variables
The activity type identifier that will details will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The GUID of the retrieved type.
The types’s name
The life cycle state of the type
The description of the type.
The unique color code assigned to the type.
GET https://sandbox.crm.com/backoffice/v1/activity_types/74D9C84FA60F9FE407140E20F707726A HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "",
"name": "Installation",
"state": "Active",
"description": "The user requires an installation of some sorts.",
"color": "TRD45F",
"resources": [
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "John Snow"
}
]
}Update the generic business network settings
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Defines which organisation types will consist the business network
[
"MERCHANT_VENUE"
][
"SERVICE_PROVIDER_POINT"
]Responses
Successful Request
PUT https://sandbox.crm.com/backoffice/v1/business_network_settings HTTP/1.1
Content-Type: application/json
{
"model": [
"SERVICE_PROVIDERS",
"SERVICE_POINTS"
]
}
HTTP/1.1 200 OK Retrieve business network generic settings
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Defines which organisation types will consist the business network
[
"MERCHANT_VENUE"
][
"SERVICE_PROVDER_POINT"
]GET https://sandbox.crm.com/backoffice/v1/business_network_settings HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"model": [
"SERVICE_PROVIDERS",
"SERVICE_POINTS"
]
}Update the community commerce settings (e.g. B2B Settlement)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Details about settlement settings (required if settlement is enabled)
Defines whether settlement is enabled or not
Defines when settlement will take place
The repeat frequency provided as a cron expression pattern
Details about the settlement fee(s) that will be applied on award and/or spend transactions (applicable only if settlement is enabled)
Defines whether settlement fees will be applied or not
Defines whether the related type will be amount or percentage based
Defines the default fee on award that will be applied on all organisations (merchants/service providers)
Defines the default fee on spend that will be applied on all organisations (merchants/service providers)
Defines the fees that will be applied explicitly on specific organisations (merchants/service providers)
Defines the entity type that fees will be explicitly applied
Defines the entity identifier that fees will be explicitly applied
The explicit award fee
The explicit spend fee
Defines the settlement rules that will be applied during settlement (e.g. financial transaction types)
Defines the financial transaction types that will be used when posting a payment/payout during settlement
The payment type identifier that will be used. If not specified, then the default type will be used
The payout type identifier that will be used. If not specified, then the default type will be used
Defines the min/max amount that can be settled against an organisation account
The min amount that can be settled against an organisation account
The max amount that can be settled against an organisation account
Responses
Successful Request
Body
The organisation identifier
PUT https://sandbox.crm.com/backoffice/v1/community_commerce HTTP/1.1
Content-Type: application/json
{
"settlement_settings": {
"enable_settlement": "false",
"settlement_evaluation": "DAILY",
"frequency": "0 0 12 * * ?"
},
"settlement_fees": {
"enable_settlement_fees": "true",
"fee_type": "AMOUNT",
"default_award_fee": 1.99,
"default_spend-fee": 2.91,
"explicit_fees": [
{
"entity_type": "ORGANISATION",
"entity_id": "3a4ff705-356d-16e4-d5f7-dd5e7c3c29d5",
"award_fee": 5.91,
"spend_fee": 1.99
}
]
},
"settlement_rules": {
"financial_transactions": {
"payment_type_id": "cf916e07-0f19-4640-a800-3fc9b3ba509c",
"payout_type_id": "4ff4cefb-05c7-2db6-19f7-917e6770219b"
},
"amount_allowance": {
"min_amount": 99.99,
"max_amount": 999.99
}
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "a331211c-7a48-c107-096e-870a574f0e85"
}
Retrieve the community commerce settings (e.g. B2B Settlement)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
Details about settlement settings
Defines whether settlement is enabled or not
Defines when settlement will take place
The repeat frequency provided as a cron expression pattern
Details about the settlement fee(s) that will be applied on award and/or spend transactions (applicable only if settlement is enabled)
Defines whether settlement fees will be applied or not
Defines whether the related type will be amount or percentage based
Defines the default fee on award that will be applied on all organisations (merchants/service providers)
Defines the default fee on spend that will be applied on all organisations (merchants/service providers)
Defines the fees that will be applied explicitly on specific organisations (merchants/service providers)
Defines the entity type that fees will be explicitly applied
Defines the entity that fees will be explicitly applied
Defines the entity (identifier) that fees will be explicitly applied
Defines the entity (name) that fees will be explicitly applied
Defines the entity (identifier) that fees will be explicitly applied
The explicit award fee
The explicit award fee
Defines the settlement rules that will be applied during settlement (e.g. financial transaction types)
Defines the financial transaction types that will be used when posting a payment/payout during settlement
Details about the payment type that should be used for settlement
The payment type identifier
The payment type name
Details about the payout type that should be used for settlement
The payout identifier
The payout name
Defines the min/max amount that can be settled against an organisation account
The min amount that can be settled against an organisation account
The max amount that can be settled against an organisation account
GET https://sandbox.crm.com/backoffice/v1/community_commerce HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"settlement_settings": {
"enable_settlement": "true",
"settlement_evaluation": "DAILY",
"frequency": "0 0 12 * * ?"
},
"settlement_fees": {
"enable_settlement_fees": "true",
"fee_type": "PERCENTAGE",
"default_award_fee": 1.98,
"default_spend_fee": 9.99,
"explicit_fees": [
{
"entity_type": "ORGANISATION",
"entity": {
"id": "4c6a4cbb-7b47-b360-0654-e50cb52bd891",
"name": "Nice Restaurant"
},
"entity_id": "3a4ff705-356d-16e4-d5f7-dd5e7c3c29d5",
"award_fee": 5.91,
"spend_fee": 1.99
}
]
},
"settlement_rules": {
"financial_transactions": {
"payment_type": {
"id": "e2f0f36a-a192-35b1-f2f6-363a0ace9e15",
"name": "Settlement Payment"
},
"payout_type": {
"id": "bcff5929-8bc5-10ce-0bf5-6d659c314ae2",
"name": "Settlement Payout"
}
},
"amount_allowance": {
"min_amount": 1,
"max_amount": 1
}
}
}
Retrieve the settlement transactions related to B2B Settlement
Request parameters
Filter based on the settlement transaction type
Award Transaction
Spend Transaction
Award Settlement Fee
Spend Settlement Fee
Filter based on the accounting transaction type
Filter based on settlement transaction status
Filters based on the organisation (identifier) that the settlement transaction is posted against
Filter based on the created date, which may fall within a given date range. The value can be a string with a date in epoch format. Each option must also include an operator. Use up to two options based on the required search (e.g. created_on[gte]=1618395497&created_on[lt]=1618395497).
Returns results where the created date is greater than this value
Returns results where the created date is greater than or equal to this value
Returns results where the created date is less than this value
Returns results where the created date is less then or equal to this value
Filter based on an account journal entry
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The settlement transaction identifier
Defines the settlement transaction type
Award Transaction
Spend Transaction
Award Settlement Fee
Spend Settlement Fee
Defines the accounting type of the settlement transaction
The settlement transaction status
The initial amount to be settled (before applying the applicable contribution/settlement fee)
The amount to be settled (after contribution/settlement fee is applied)
The contribution/settlement fee that was applied on the settlement transaction
Defines the fee type
Contribution fee, applied on award transactions
Settlement fee, applied on award/spend transactions
Defines whether the fee is amount or percentage based
Fee will be amount based
Fee will be percentage based
The fee value
The organisation that the settlement transaction is posted against
The organisation type
The organisation identifier
The organisation name
Details about the event that initiated such settlement request
Defines the type of the event that is related to the settlement transaction
The event identifier
The event reference number/code (if applicable)
The event amount
The date on which the event was posted
Details about the reward offer (related to the award type)
The reward offer identifier
The reward offer name
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/settlement_transactions HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "daf23f03-e267-fe94-9965-5c81e9ab4a4d",
"settlement_type": "AWARD",
"accounting_type": "CREDIT",
"event_amount": 2.22,
"settlement_amount": 20.12,
"fee": {
"fee_type": "CONTRIBUTION",
"value_type": "AMOUNT",
"value": 2.84
},
"organisation": {
"type": "MERCHANT",
"id": "f2c2d9ea-5a94-729d-0c45-7fdd1d540e7b",
"name": "CRM"
},
"settlement_event": {
"type": "PURCHASE",
"id": "598c02d3-1978-3585-3a3b-2311d6c94d1c",
"reference_number": "2833205645375343",
"amount": 102.79,
"posted_date": 1635170879
},
"reward_offer": {
"id": "1b5f5824-e05f-bb8e-d2ee-19eb5ed83240",
"name": "10% instant discount"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}{id}{id}Create a new team
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The team name
The team description
Responses
Body
The team identifier
POST https://sandbox.crm.com/backoffice/v1/teams HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"name": "Admin",
"description": "Admin Team"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "609de9a4-8220-be54-63ca-a7044b1326e0"
}{id}Update an existing team
Path variables
The team (identifer) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The team name
The team description
Responses
Body
The team identifier
PUT https://sandbox.crm.com/backoffice/v1/teams/dfdeb9f9-003d-fca7-c548-0a88676bb9cf HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"name": "Admin",
"description": "Admin Team"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "609de9a4-8220-be54-63ca-a7044b1326e0"
}{id}Delete an existing team
Path variables
The team (identifer) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/teams/dfdeb9f9-003d-fca7-c548-0a88676bb9cf HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK Search for teams
Request parameters
Filters based on the team name
Defines whether the number of users per team will be retrieved
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The team identifier
The team name
The team description
The number of users that belong to the team
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/teams HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "a9dca18e-1d60-8d5b-cf46-848d9fa91dd6",
"name": "Admin",
"description": "Admin Team"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}Get details for a specific team
Path variables
The team (identifer) that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The team identifier
The team name
The team description
GET https://sandbox.crm.com/backoffice/v1/teams/d64e7544-aba8-d6de-f8d0-54e02b1daba3 HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "6646193b-9177-1d1a-aca9-7c16ee67e786",
"name": "Admin",
"description": "Admin Team Description"
}Updates the tracking settings of communications
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
Enables the tracking functionality
Responses
PUT https://devapi.crm.com/backoffice/v1/tracking_settings HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"enable_tracking": true,
"track_end_point": "",
"track_custom_url": "",
"email_tracking_mode": "ALL",
"link_tracking_mode": "ALL"
}
HTTP/1.1 200 OK Retrieves the tracking settings for communications
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
Enables the tracking functionality
GET https://devapi.crm.com/backoffice/v1/tracking_settings HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"enable_tracking": true,
"track_end_point": "",
"track_custom_url": "",
"email_tracking_mode": "ALL",
"link_tracking_mode": "COMM_PLANS"
}{name_day_rule_id}{name_day_rule_id}Update the generic contact settings
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The settings which defines how the names are presented in the system
Enable consent functionality so that the Contact accepts/rejects/withdraws it. Default value is FALSE.
Contact Identities settings, applying additional security precautions
Defines whether credentials (username&password) will require verification or not
Responses
Successful Request
Body
The unique identifier of the organisation
PUT https://sandbox.crm.com/backoffice/v1/contact_generic_settings HTTP/1.1
Content-Type: application/json
{
"name_display_settings": "FIRST_LAST",
"cim_settings": [
{
"medium": "EMAIL",
"is_enabled": true
}
],
"consent_settings": {
"enable_consent": true,
"functionality_on_pending": "FULL_FUNCTIONALITY",
"functionality_on_rejecting": "ANONYMIZE",
"functionality_on_withdraw": "FULL_FUNCTIONALITY"
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
Returns the general settings of the contact
Responses
The request has succeeded
Body
The name display settings that define how the contact name is presented
Contact Identities settings, applying additional security precautions
Defines whether credentials (username&password) will require verification or not
GET https://sandbox.crm.com/backoffice/v1/contact_generic_settings HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"name_display_settings": "FIRST_MIDDLE_LAST",
"cim_settings": [
{
"medium": "CARD",
"is_enabled": true
}
],
"consent_settings": {
"is_enabled": true,
"functionality_on_pending": "FULL_FUNCTIONALITY",
"functionality_on_rejecting": "ANONYMIZE",
"functionality_on_withdraw": "ANONYMIZE",
"consent_file_url": ""
}
}
Create the name day rules
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The day of the name day (1-31)
The month of the name day (1-12)
A list of names that celebrate the specific name day, comma separated
A description of the name day
Responses
Successful Request
Body
The unique identifier of the name day rule created
{name_day_rule_id}Update the name day rules
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The day of the name day (1-31)
The month of the name day (1-12)
A list of names that celebrate the specific name day, comma separated
A description of the name day
Responses
Successful Request
Body
The unique identifier of the name day rules
{name_day_rule_id}Delete a name day rule
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The unique identifier of the organisation
Retrieve the contact name day rules
Request parameters
The first name of the contact to retrieve only applicable name days
Defines on which attribute the results should be sorted
The page number that should be retrieved
The size (total records) of each page
Defines how the results will be ordered
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The unique identification of the name day rule
The day of the name day rule
The month of the name day rule
The names that celebrate this name day, comma separated
A description of the name day
{category_id}{category_id}Create the contact categories
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the category to be created
Responses
Successful Request
Body
The unique identifier of the category
{category_id}Update a specific contact category
Path variables
The contact category identifier that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the category
Responses
Successful Request
Body
The unique identifier of the contact category
{category_id}Update a specific contact category
Path variables
The contact category identifier that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Responses
Successful Request
List all the available contact categories
Request parameters
Defines on which attribute the results should be sorted
The page number that should be retrieved
The size (total records) of each page
Defines how the results will be ordered
The name of the contact category
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The ID of the contact category
The name of the contact category
{id}{id}Create a single KYC profile
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the KYC profile
A description of the KYC profile
The conditions for which the kyc profile is applied
The entity for which the condition applies
The entity’s ID or Name
Define the sets of fields that are required to verify the KYC profile. The sets are combined with an OR
The fields that are included within a set (combined with AND). It can be any custome field value OR an existing contact field
Responses
Successful Request
Body
The unique identifier of the KYC profile
POST https://sandbox.crm.com/backoffice/v1/kyc_profiles HTTP/1.1
Content-Type: application/json
{
"name": "Standard Customers",
"description": "The KYC Profile",
"conditions": [
{
"name": "CONTACT_CATEGORY",
"value": "4AD9C84FA60F9FE407140E20F707726A"
}
],
"fields": [
{
"sets": [
"first_name"
]
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726A"
}
{id}Update an existing KYC profile. Profiles that are already provided on at least one contact, cannot be updated
Path variables
The ID of the KYC profile to be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the KYC profile
A description of the KYC profile
The conditions for which the kyc profile is applied
The entity for which the condition applies
The entity’s ID or Name
Define the sets of fields that are required to verify the KYC profile. The sets are combined with an OR
The fields that are included within a set (combined with AND). It can be any custome field value OR an existing contact field
Responses
Successful Request
Body
The unique identifier of the KYC profile
PUT https://sandbox.crm.com/backoffice/v1/kyc_profiles/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1
Content-Type: application/json
{
"name": "Standard Customers",
"description": "The KYC Profile",
"conditions": [
{
"name": "ACCOUNT_CLASSIFICATION",
"value": "4AD9C84FA60F9FE407140E20F707726A"
}
],
"fields": [
{
"sets": [
"passport_number"
]
}
]
}{id}Delete an existing KYC profile validating that is not already used on at least one Contact
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
DELETE https://sandbox.crm.com/backoffice/v1/kyc_profiles/{id} HTTP/1.1
HTTP/1.1 200 OK List all available KYC Profiles
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Search for KYC Profiles across their Names
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The ID of the KYC profile
The name of the KYC profile
A description of the KYC profile
The conditions for which the kyc profile is applied
The entity for which the condition applies
Define the sets of fields that are required to verify the KYC profile. The sets are combined with an OR
The fields that are included within a set (combined with AND). It can be any custome field value OR an existing contact field
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/kyc_profiles HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "Standard Customers",
"description": "The KYC Profile",
"conditions": [
{
"name": "ACCOUNT_CLASSIFICATION",
"value": "4AD9C84FA60F9FE407140E20F707726A"
}
],
"fields": [
{
"sets": [
"..any custom field value"
]
}
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Defines the field that is mandatory during contact registration
Defiend whether the field is mandatory during contact registration
Update the generic customer event settings for an organisation
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Information about handling invalid product information on purchase customer events
The product type identifier that will be used when creating invalid products from purchase customer events
Responses
Successful Request
Body
The organisation identifier
PUT /customer_event_generic_settings HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"purchase_settings": {
"invalid_product_type_id": "QWERTY1234543212345678UJIKY76HJR"
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "QWERTY1234543212345678UJIKY76HJR"
}Retrieve the generic customer event settings for an organisation
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
Information about handling invalid product information on purchase customer events
The product type identifier that will be used when creating invalid products from purchase customer events
GET /customer_event_generic_settings HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"purchase_settings": {
"invalid_product_type_id": "QWERTY1234543212345678UJIKY76HJR"
}
}{id}{id}{id}Create a customer event classification within a single organisation
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The classification name
The classification description
The classification type
Responses
Successful Request
Body
The classification identifier
POST /customer_event_classification HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"name": "Cash",
"description": "Cash driven customer event",
"type": "REFERRAL"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{id}Update a specific contact classification for a specific organisation
Path variables
The customer event classification (identifier) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the classification
The description of the classification
Responses
Successful Request
Body
The classification identifier
PUT /customer_event_classifications/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"name": "Cash",
"description": "Represent cash driven customer events"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{id}Delete a specific customer event classification for a specific organisation
Path variables
The customer event classification (identifier) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
DELETE /customer_event_classifications/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK Search for customer event classifications within a single organisation
Request parameters
The name of the classification
The type of the classification
Defines on which attribute the results should be sorted
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The classification identifier
The name of the classification
The description of the classification
The type of the classification
The page number
The number of records per page
The overal number of records
GET /customer_event_classifications HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "Cash",
"description": "Cash driven customer event",
"type": "KPI_PERFORMANCE"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}Get details for a single customer event classification
Path variables
The classification (identifier) that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The classification identifier
The name of the classification
The description of the classification
The type of the classification
GET /customer_event_classifications/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "Cash",
"description": "Cash driven customer event",
"type": "KPI_PERFORMANCE"
}{id}{id}Get the generic financial settings
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The default tax model that is automatically set when setting up product prices
Prices include taxes
Prices does not include tax
Business rules that enable a payment retry attempt on failing to pay off an invoice or a subscription
Enable payment retries
How often an attempt will be perfomed right after a payment failure
The frequency value
The frequency’s unit of time
How many payment attempts will be performed
The maximum period of time that the system will retry. A payment retry will not be performed if maximum period of time is reached and regardless of the fact that not all retries were perforemd.
The period of time
Period of time unit of time
Defines what happens to the subscription of all payment retries fail
The allowed payment method types that can be used across the system
The type of the event
Defines whether the payment method type is allowed or not. Not allowed types canno tbe used when adding contac tpayment methods, posting payments etc
GET https://sandbox.crm.com/backoffice/v1/financial_settings HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"tax_model": "TAX_INCLUSIVE",
"payment_retries": {
"enable": true,
"frequency": {
"value": 1,
"uot": "HOURS"
},
"retries": 3,
"maximum_period": {
"period": 3,
"uot": "DAYS"
},
"subscription_action": "DEACTIVATE"
},
"payment_methods": [
{
"type": "WALLET",
"is_allowed": "false"
}
]
}
Update the generic financial settings
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The default tax model that is automatically set when setting up product prices
Prices include taxes
Prices do not include taxes
Business rules that enable a payment retry attempt on failing to pay off an invoice or a subscription
Enable payment retries
How often an attempt will be perfomed right after a payment failure
The frequency value
The frequency’s unit of time
How many payment attempts will be performed
The maximum period of time that the system will retry. A payment retry will not be performed if maximum period of time is reached ad regardless of the fact that not all retries were perforemd.
The period’s value
Period of time unit of time
Defines what happens to the subscription of all payment retries fail
The type of the event
Responses
Successful Request
Body
Unique identifier of financial Settings
PUT https://sandbox.crm.com/backoffice/v1/financial_settings HTTP/1.1
Content-Type: application/json
{
"tax_model": "TAX_INCLUSIVE",
"payment_retries": {
"enable": true,
"frequency": {
"value": 1,
"uot": "HOURS"
},
"retries": 3,
"maximum_period": {
"period": 3,
"uot": "DAYS"
},
"subscription_action": "DEACTIVATE"
},
"payment_methods": [
{
"type": "ACCOUNT_DEBIT"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "81560181-f08f-4a83-a683-8ca6555b608a"
}
Create the financial transaction types
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the financial transaction type
The type of the event
Sets the financial transaction type as the default of its classification
A description of the financial transaction type
Responses
Successful Request
Body
The unique identifier of the financial transaction type
POST https://sandbox.crm.com/backoffice/v1/financial_transaction_types HTTP/1.1
Content-Type: application/json
{
"name": "INVOICE",
"classification": "INVOICE",
"is_default": "true",
"description": ""
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}{id}Update the financial transaction type
Path variables
The id of the financial transaction type to be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the financial transaction type
Sets the financial transaction type as the default of its classification
A description of the financial transaction type
Responses
Successful Request
Body
The unique identifier of the financial transaction type
PUT https://sandbox.crm.com/backoffice/v1/financial_transaction_types/{id} HTTP/1.1
Content-Type: application/json
{
"name": "INVOICE",
"is_default": "true",
"description": ""
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}{id}Delete a financial transaction type
Path variables
The id of the financial transaction type to be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
DELETE https://devapi.crm.com/backoffice/v1/financial_transactions_types/{id} HTTP/1.1
HTTP/1.1 200 OK Get all the available financial transaction types
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
The value of the search across name, classification (case insensitive)
The classification of the financial transaction
Filters only the default types
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The name of the financial transaction type
The type of the event
Sets the financial transaction tyep as the default of its classification
A description of the financial transaction type
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/financial_transaction_types HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"name": "INVOICE",
"classification": "INVOICE",
"is_default": "true",
"description": ""
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}{id}Creates devices status
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the device status
A description of the device status
Defines ones of the default statuses, that the specific one will clone its behaviour
Defines which status is the default one used by the system
Responses
Successful Request
Body
The unique identifier of the device status
POST https://stagingapi.crm.com/backoffice/v1/device_statuses HTTP/1.1
Content-Type: application/json
{
"name": "Refurbished",
"description": "Devices that have been fixed and will be sold with discount",
"cloned_status": "AVAILABLE"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726A"
}{id}Updates an additional device status
Path variables
The ID of the device status
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the device status
A description of the device status
Defines which status is the default one used by the system
Responses
Successful Request
Body
The unique identifier of the device status
PUT https://stagingapi.crm.com/backoffice/v1/device_statuses HTTP/1.1
Content-Type: application/json
{
"name": "Refurbished",
"description": "Devices that have been fixed and will be sold with discount",
"cloned_status": "INACTIVE"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726A"
}{id}Delete an existing device status
Path variables
The device status (identifier) to be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
DELETE https://stagingapi.crm.com/backoffice/v1/device_statuses/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1
HTTP/1.1 200 OK Retrieve a list of device statuses based on search criteria (e.g. all used device statuses)
Request parameters
Filter based on device status attributes (name and classification)
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The name of the device status
A description of the device status
Defines ones of the default statuses, that the specific one will clone its behaviour.
Defines whether the status is the default one used by the system
The page number
The number of records per page
The overal number of records
GET https://stagingapi.crm.com/backoffice/v1/device_statuses HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"name": "Refurbished",
"description": "Devices that have been fixed and will be sold with discount",
"cloned_status": "IMPORTED"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}{id}Create a possible reason for losing a lead
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
A unique name for the lost reason
A description for the lost reason
Examples
Responses
Body
The unique identifier of the newly created lost reason
POST https://sandbox.crm.com/backoffice/v1/lost_reasons HTTP/1.1
Content-Type: application/json
{
"name": "Requirements",
"description": "The product does not meet customer's requirements"
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726A"
}{id}Update a lost (lead) reason
Path variables
The GUID of the lost reason to be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
A unique lost reason name
A description of the lost lead reason
Examples
Responses
Body
The unique identifier of the updated lost reason
PUT https://sandbox.crm.com/backoffice/v1/lost_reasons/74D9C84FA60F9FE407140E20F707726A HTTP/1.1
Content-Type: application/json
{
"name": "Too expensive",
"description": "Pricing is not within organisation's budget."
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "74D9C84FA60F9FE407140E20F707726A"
}{id}Delete a lost lead reason
Path variables
The GUID of the lost reason to be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/lost_reasons/74D9C84FA60F9FE407140E20F707726A HTTP/1.1
HTTP/1.1 200 OK List all available reasons for losing a lead
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Search for a lost reason based on its name and description
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The GUID of the lost reason
The name of the lost reason
The description of the lost reason
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/lost_reasons?search_value=pricing HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "Pricing",
"description": "Pricing not within organisation's budget"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}{id}{id}{id}/actions{id}/pipeline_stages/{stage_id}Create a pipeline with it’s stages to be used for leads.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
A unique name for the lead queue
The pipeline’s stages
Stage name
The order of the stage within the queue
Examples
Responses
Body
The unique identifier of the newly created pipeline
POST https://sandbox.crm.com/backoffice/v1/pipelines HTTP/1.1
Content-Type: application/json
{
"name": "European subscriptions lead",
"pipeline_stages": [
{
"name": "Proposal Submitted",
"stage_order": "4"
}
]
}{id}Update a lead’s queue and it’s statuses
Path variables
The GUID of the pipeline to be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The unique pipeline name
The stages of the pipeline
Pipeline stage name
Order of the stage within the pipeline
Examples
Responses
Body
The unique identifier of the updated pipeline
PUT https://sandbox.crm.com/backoffice/v1/pipelines/74D9C84FA60F9FE407140E20F707726A HTTP/1.1
Content-Type: application/json
{
"name": "Large-scale business lead",
"pipeline_stages": [
{
"name": "Proposal Submitted",
"stage_order": 4
}
]
}Retrieve all pipelines
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Search for a pipeline using it’s name
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The GUID of the pipeline
The name of the pipeline
The life cycle state of the pipeline
Number of stages that the pipeline contains
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/pipelines HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "74D9C84FA60F9FE407140E20F707726A",
"name": "Small local business lead",
"life_cycle_state": "Effective",
"number_of_stages": 5
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}Retrieve a pipeline and it’s stages
Path variables
The GUID of the pipeline
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The GUID of the retrieved pipeline
The pipeline name
The life cycle state of the pipeline
The pipeline’s stages
Pipeline stage GUID
Pipeline stage name
The order of the stage within the pipeline
GET https://sandbox.crm.com/backoffice/v1/pipelines/74D9C84FA60F9FE407140E20F707726A HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "",
"name": "Small local business lead",
"life_cycle_state": "Effective",
"pipeline_stages": [
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "Proposal submitted",
"stage_order": 5
}
]
}{id}Delete a pipeline
Path variables
The GUID of the pipeline to be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/pipelines/74D9C84FA60F9FE407140E20F707726A HTTP/1.1 {id}/actionsActions to be taken for a leads queue
Path variables
The GUID of the pipeline to take action on
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The action to be performed
Upate the life cycle state of a queue
The new life cycle state (required only if the action is LIFE_CYCLE_STATE)
The queue can be assigned to leads
The queue cannot be assigned to leads
Examples
Responses
Body
The unique identifier of the updated pipeline
PUT https://sandbox.crm.com/backoffice/v1/pipelines/74D9C84FA60F9FE407140E20F707726A/actions HTTP/1.1
Content-Type: application/json
{
"action": "LIFE_CYCLE_STATE",
"life_cycle_state": "NOT_EFFECTIVE"
}{id}/pipeline_stages/{stage_id}Delete a pipeline stage
Path variables
The GUID of the pipeline
The GUID of the pipeline stage to be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The GUID of the new pipeline stage to which any existing Leads will be transferred to
Responses
DELETE https://sandbox.crm.com/backoffice/v1/pipelines/74D9C84FA60F9FE407140E20F707726A/pipeline_stages/PR90C84FA60F9FE407140E20F7077277 HTTP/1.1
Content-Type: application/json
{
"new_stage_id": "407140E20F7077277PR90C84FA60F9FE"
}{id}{id}{id}/licenses{license_id}{id}/actions{id}/assets{id}{id}{id}Create a new license
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the license
The description of the license
Responses
Body
The license identifier
POST https://sandbox.crm.com/backoffice/v1/licenses HTTP/1.1
Content-Type: application/json
{
"name": "Trial License",
"description": "This is free Trial License with limited access to features"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "42f3752c-676a-8245-1c87-130b93f960c7"
}{id}Update a license
Path variables
The identifier of the license that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the license
The description of the license
Responses
Body
The license identifier
PUT https://sandbox.crm.com/backoffice/v1/licenses/42f3752c-676a-8245-1c87-130b93f960c7 HTTP/1.1
Content-Type: application/json
{
"name": "Trial License",
"description": "This is free Trial License with limited access to features"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "42f3752c-676a-8245-1c87-130b93f960c7"
}{id}Delete a single license
Path variables
The license (identifier) that will be deleted
Responses
Successfull Request
DELETE https://sandbox.crm.com/backoffice/v1/licenses/42f3752c-676a-8245-1c87-130b93f960c7 HTTP/1.1
HTTP/1.1 200 OK {id}/licensesReturns a list of licenses of the organisation
Path variables
The oginasation identifier
Request parameters
Search for license based on name and description
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The license identifier
The name of the license
The description of the license
The life cycle state of the license
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/organization/d332dd8a-254e-47c9-ba1f-3f369877a9b3/licenses HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "42f3752c-676a-8245-1c87-130b93f960c7",
"name": "Trial License",
"description": "The is Trial License",
"life_cycle_state": "ACTIVE"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{license_id}Returns the details of a license of the organisation.
Path variables
The license (identifier) for which information will be retreived
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The license identifier
The name of the license
The description of the license
The life cycle state of the license
The assets of a license
The asset identifier
The name of the asset
The description of the asset
The modules of the asset
The name of the module
The features of the module
The name of the feature
The license code of the feature
GET https://sandbox.crm.com/backoffice/v1/organization/d332dd8a-254e-47c9-ba1f-3f369877a9b3/licenses/42f3752c-676a-8245-1c87-130b93f960c7 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": {
"id": "42f3752c-676a-8245-1c87-130b93f960c7",
"name": "Trial License",
"description": "The is a Trial License with limited access to features",
"life_cycle_state": "ACTIVE",
"assets": [
{
"id": "1a7fc6dc-9932-5965-b028-14843782c843",
"name": "CRM",
"description": "Asset for CRM modules",
"modules": [
{
"name": "Contacts",
"features": [
{
"name": "View Contacts",
"license_code": "CRM_CON_VIEW"
},
{
"name": "Manage Contacts",
"license_code": "CRM_CON_MANAGE"
}
]
},
{
"name": "Activities",
"features": [
{
"name": "View Activities",
"license_code": "CRM_ACT_VIEW"
},
{
"name": "Manage Activities",
"license_code": "CRM_ACT_MANAGE"
}
]
}
]
},
{
"id": "a744fded-8f08-0dd9-97ef-8a97c5512c38",
"name": "Analytics",
"description": "Asset for Analytics modules",
"modules": [
{
"name": "Insights",
"features": [
{
"name": "View Insights",
"license_code": "ANA_INS_VIEW"
},
{
"name": "Manage Insights",
"license_code": "ANA_INS_MANAGE"
}
]
},
{
"name": "Reports",
"features": [
{
"name": "View Reports",
"license_code": "ANA_REP_VIEW"
},
{
"name": "Manage Reports",
"license_code": "ANA_REP_MANAGE"
}
]
}
]
}
]
}
}
{id}/actionsPerform an action on an existing license
Path variables
The license (identifier) whose life cycle state will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The life cycle state that the license will changed into
Responses
Successfull Requst
Body
The license identifier
POST https://sandbox.crm.com/backoffice/v1/licenses/42f3752c-676a-8245-1c87-130b93f960c7/actions HTTP/1.1
Content-Type: application/json
{
"life_cycle_state": "ACTIVE"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "42f3752c-676a-8245-1c87-130b93f960c7"
}{id}/assetsAdd assets to license
Path variables
The license (identifier) for which assets will be set
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The assets added to the license
The asset identifier to add to the license
Responses
Successful Request
Body
The license identifier
POST https://sandbox.crm.com/backoffice/v1/licenses/42f3752c-676a-8245-1c87-130b93f960c7/assets HTTP/1.1
Content-Type: application/json
{
"assets": [
{
"id": "2b7adb86-ef99-a693-699f-ca2f48b75b91"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "42f3752c-676a-8245-1c87-130b93f960c7"
}Create an asset
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the asset
The description of the asset
The modules of the asset
The name of the module
The features of the module
The name of the feature
The unique license code of the feature
Responses
Successsful Request
Body
The asset identifier
POST https://sandbox.crm.com/backoffice/v1/assets HTTP/1.1
Content-Type: application/json
{
"name": "CRM",
"description": "The CRM related modules of the system",
"modules": [
{
"name": "Contacts",
"features": [
{
"name": "Manage Contacts",
"license_code": "CRM_COM_MANAGE"
}
]
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "92357407-15a3-4228-6581-383ffc5c9a74"
}
Returns a list of assets
Request parameters
Search for assets based on name and description
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The asset identifier
The name of the asset
The description of the asset
The modules of the asset
The name of the module
The features of the module
The name of the feature
The license code of the feature
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/assets HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "81c3f16b-9d36-3eef-6fc3-f9206f2edc6c",
"name": "CRM",
"description": "The asset related the CRM modules of the system",
"modules": [
{
"name": "Contacts",
"features": [
{
"name": "Manage Contacts",
"license_code": "CRM_CON_MANAGE"
}
]
}
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Returns the details of a single asset
Path variables
The asset (identifier) for which information will be retrieved
Responses
Body
The asset identifier
The name of the asset
The description of the asset
The modules of the asset
The name of the module
The features of the module
The name of the feature
The license code of the feature
GET https://sandbox.crm.com/backoffice/v1/assets/addd8657-b32a-fa54-b7d8-3ba166f37779 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "addd8657-b32a-fa54-b7d8-3ba166f37779",
"name": "CRM",
"description": "The asset related to CRM modules",
"modules": [
{
"name": "Contacts",
"features": [
{
"name": "View Contacts",
"license_code": "CRM_CON_VIEW"
}
]
},
{
"name": "Activities",
"features": [
{
"name": "View Activities",
"license_code": "CRM_ACT_VIEW"
}
]
}
]
}
{id}Update an asset
Path variables
The asset (identifier) which will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the asset
The description of the asset
The modules of the asset
The name of the module
The features of the module
The name of the feature
The unique license code of the feature
Responses
Successsful Request
Body
The asset identifier
POST https://sandbox.crm.com/backoffice/v1/assets/92357407-15a3-4228-6581-383ffc5c9a74 HTTP/1.1
Content-Type: application/json
{
"name": "CRM",
"description": "The CRM related modules of the system",
"modules": [
{
"name": "Contacts",
"features": [
{
"name": "Manage Contacts",
"license_code": "CRM_COM_MANAGE"
}
]
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "92357407-15a3-4228-6581-383ffc5c9a74"
}
{id}Delete a single asset
Path variables
The asset (identifier) that will be deleted
Responses
Successfull Request
DELETE https://sandbox.crm.com/backoffice/v1/assets/1c64097c-1f09-82d3-5d5e-2f662a254a3d HTTP/1.1
HTTP/1.1 200 OK {id}{id}Create a new measurement unit. A single measurement unit can be created per Web API call.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the measurement unit which is mandatory and unique.
The name of the unit that wll be used for display and checkout purposes.
The measurement unit description.
Responses
Body
The unique identifier of the new measurement unit
POST https://sandbox.crm.com/backoffice/v1/measurement_units HTTP/1.1
Content-Type: application/json
{
"name": "Phone calls",
"display_name": "minutes",
"description": "Unit that measures the duration of a phone call in minutes"
}Returns a list of measurement units
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Search for measurement units using their name or display name.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The unique identifier of the measurement unit
The name of measurement unit
The display name of the measurement unit
The measurement unit’s description
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/measurement_units HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "3FD9C84FA60F9FE407140E20F707726A",
"name": "Minutes",
"display_name": "min.",
"description": "Phone call minutes"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}Update an existing unit of measurement. A sinly measurement unit can be updated per Web API call
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the measurement unit
The display name of the measurement unit
The measurement unit’s description
Responses
Body
The unique identifier of the updated measurement unit
PUT https://sandbox.crm.com/backoffice/v1/measurement_units/{id} HTTP/1.1
Content-Type: application/json
{
"name": "Phone call minutes",
"display_name": "minutes",
"description": "Measures a phone call's duration in minutes"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "2dc0809f-ed91-4b68-b912-5bd6064d901e"
}{id}Deletes an existing unit of measurement. A single measurement unit can be deleted per Web API call
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/measurement_units/{id} HTTP/1.1
HTTP/1.1 200 OK Retrieve Order generic settings
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The type of the event
Delivered to the customer’s address
Picked up by the customer from a venue
Online sales of services
The invoice type identifier that will be used. If not specified, then the default invoice type will be used
The credit note type identifier that will be used. If not specified, then the default credit note type will be used
Business rules that define how Invoices will be generated for milestone-based Orders
The invoice type identifier that will be used. If not specified, then the default invoice type will be used
The invoice milestone product, i.e. the product that will be included in the milestone invoice. Only products classified as expenses can be specified.
Responses
PUT https://sandbox.crm.com/backoffice/v1/order_settings HTTP/1.1
Content-Type: application/json
{
"numbering_schemes": [
{
"entity": "ORDERS",
"prefix": "",
"starting_number": "",
"number_of_digits": 1
}
],
"financial_settings": [
{
"supply_method": "DELIVERY",
"invoice_type_id": "4ea25d61-ebfe-3a7b-2a45-96d8b059d369",
"credit_note_type_id": "4ea25d61-ebfe-3a7b-2a45-96d8b059d369"
}
],
"milestone_settings": {
"invoice_type_id": "3aa25d61-ebfe-3a7b-2a45-96d8b059d369",
"product_id": "1aa25d61-ebfe-3a7b-2a45-96d8b059d369"
}
}
HTTP/1.1 200 OK
Retrieve Order generic settings
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The type of the event
The entity for which the numbering scheme is configured
The prefix of the numbering scheme. Defaults to the first letter(s) of the entity’s name
The starting number of the nuberig scheme (excluding prefix). Defaults to 10001
Number of digits (excluding prefix). Defaults to 5
The last number generated for this numbering scheme
Business rules that define how financial transactions will be issued for Orders
The type of the event
Delivered to the customer’s address
Picked up by the customer from a venue
Online sales of services
Details about the invoice type that will be used
The invoice type identifier
The invoice type name
Details about the credit note type that will be used
The credit note type identifier
The credit note type name
Business rules that define how Invoices will be generated for milestone-based Orders
The Invoice type that will be used for milestone invoices
The unique identifier of the invoice type
the invoice type name
Details about a product
The product identifier
The product SKU code
The product name
GET https://sandbox.crm.com/backoffice/v1/order_settings HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"numbering_schemes": {
"entity": "SERVICE_REQUESTS",
"prefix": "SR",
"starting_number": "0000001",
"number_of_digits": "7",
"last_number": "SR000001"
},
"financial_settings": [
{
"supply_method": "DELIVERY",
"invoice_type": {
"id": "The invoice type identifier that will be used",
"name": "Order Invoice"
},
"credit_note_type": {
"id": "a4b059a3-2aa7-b2c2-4191-a966168e97d7",
"name": "ORDER Credit Note"
}
}
],
"milestone_settings": {
"invoice_type": {
"id": "34b059a3-2aa7-b2c2-4191-a966168e97d7",
"name": "Milestone Invoice"
},
"product": {
"id": "e283a863-18e1-7cae-48c4-7433bf28cf97",
"sku": "ABC-12345",
"name": "A product"
}
}
}
{id}{id}Retrieve all reasons that will justify an order cancellation
Request parameters
Search for a cancellation reason based on its name or description
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The cancellation reason identifier
The cancellation reason name
The cancellation reason description
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/order_cancellation_reasons HTTP/1.1
api_key: adea79a6-fe7f-2e92-56c7-9a0685ffa290
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "caf332bc-4e90-47b5-a05d-142b264897b9",
"name": "Cancelled by Customer",
"description": "Customer requested to cancel an order due to mistake"
},
{
"id": "6a628f20-21b6-cb1f-4a9f-c15780c4b7e7",
"name": "Cancelled by Admin",
"description": "Order cancelled by admin user"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
Creates a new Cancellation Reason that will be used when cancelling orders
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Responses
Body
POST https://devapi.crm.com/backoffice/v1/order_cancellation_reasons/ HTTP/1.1
Content-Type: application/json
{
"name": "",
"description": ""
}{id}Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Responses
Body
PUT https://devapi.crm.com/backoffice/v1/order_cancellation_reasons/3423423423 HTTP/1.1
Content-Type: application/json
{
"name": "",
"description": ""
}{id}Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://devapi.crm.com/backoffice/v1/order_cancellation_reasons/{id} HTTP/1.1
HTTP/1.1 200 OK {id}{id}{id}{id}/point_of_no_returnCreates a new Order Queue
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Determines whether the Order will be invoiced upfront, i.e. on placing the Order and setting its state to New
Responses
Body
Identifier of the new Order
POST https://sandbox.crm.com/backoffice/v1/order_queues HTTP/1.1
Content-Type: application/json
{
"name": "Support Calls",
"description": "Deals with support calls",
"state": "ACTIVE",
"is_upfront": "true",
"statuses": [
{
"order": 1,
"name": "Awaiting customer",
"description": "This status is awaiting confirmation from a customer",
"colour": "F1SJ86",
"invoice_milestone": {
"percentage": 1
}
}
]
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": ""
}
{id}Updates an existing Order Queue
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Detemrines if Orders of this queue will be invoiced upfront i.e. on placing them and setting their state into New
Responses
Body
PUT https://sandbox.crm.com/backoffice/v1/order_queues/{id} HTTP/1.1
Content-Type: application/json
{
"name": "",
"description": "",
"state": "ACTIVE",
"is_upfront": "true",
"statuses": [
{
"order": 1,
"name": "Awaiting customer",
"description": "This status is awaiting confirmation from a customer",
"colour": "F1SJ86",
"invoice_milestone": {
"percentage": 1
}
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}Deletes an Order Queue
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://stagingapi.crm.com/backoffice/v1/order_queues/{id} HTTP/1.1
HTTP/1.1 200 OK Returns a list of Order Queues
Request parameters
Search Queues by name, description
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
The state of the order queue
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/order_queues HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "74D9C84FA60F9FE407140E20F707726A",
"name": "Basic food ordering queue",
"description": "",
"state": "ACTIVE",
"number_of_statuses": 1
}
],
"pages": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}Returns detailed information of an Order Queue
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The type of the event
Only one status is allowed for the NEW state per queue
Multiple statuses are allowed for the IN PROGRESS state per queue.
Only one status is allowed for the COMPLETED state per queue
Shows which order queue status also marks the point of no return for Orders
GET https://sandbox.crm.com/backoffice/v1/order_queues/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "74D9C84FA60F9FE407140E20F707726A",
"name": "Basic food ordering queue",
"description": "",
"state": "ACTIVE",
"statuses": [
{
"id": "hGSgKJAGKJAGD",
"order": 1,
"name": "Awaiting customer",
"description": "Awaiting customer lorem ipsulum",
"life_cycle_state": "NEW",
"point_of_no_return": true,
"colour": "FSD56F",
"invoice_milestone": {
"percentage": 1
}
}
]
}
{id}/point_of_no_returnSet the point of no return to a status in a queue
Path variables
The unique identified of the order queue
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Shows how point of no return is managed through the Web API call
The unique identifier of the queue status. Must be one of the non-deleted statuses of the specified queue. Required when setting/changing the point of no return as it shows which status is considered as the point of no return for orders of this queue
Responses
PUT https://sandbox.crm.com/backoffice/v1/queues/{id}/point_of_no_return HTTP/1.1
Content-Type: application/json
{
"action": "ADD",
"status_id": "5dc0809f-ed91-4b68-b912-5bd6064d901e"
}
HTTP/1.1 200 OK Returns a list of Order Queues
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/order_queue_statuses HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "56923c81-275b-fd53-7bb7-a9d6001db8db",
"name": "Basic food ordering queue",
"queue": {
"id": "56923c81-275b-fd53-7bb7-a9d6001db8db",
"name": ""
}
}
],
"pages": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}{id}Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Responses
POST https://devapi.crm.com/backoffice/v1/order_categories HTTP/1.1
Content-Type: application/json
{
"name": "",
"descripion": "",
"parent_id": ""
}{id}Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://devapi.crm.com/backoffice/v1/order_categories/{id} HTTP/1.1
HTTP/1.1 200 OK {id}Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Responses
Body
PUT https://devapi.crm.com/backoffice/v1/order_categories/{id} HTTP/1.1
Content-Type: application/json
{
"name": "",
"description": "",
"parent_id": ""
}Returns a list of Order Categories
Request parameters
Search for a category using its name or description
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The page number
The number of records per page
The overal number of records
GET https://stagingapi.crm.com/backoffice/v1/order_categories HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"name": "",
"description": "",
"child_nodes": 2,
"parent": {
"id": "",
"name": ""
}
}
],
"pages": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}{id}{id}Creates an Order Fulfillment Policy
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The type of the event
Delivered to the customer’s address
Picked up by the customer from a venue
Online sales of services
Defines whether order completion time is appicable
Defines the maximum threshold for applying the expense on the order (i.e. apply 2 euro delivery expense for orders less than 10 euros)
Defines whether the fulfillment policy is applicable for all organisations under the Business or specific organisations
The organisations (Merchants, Venues) that will fulfill orders based on this policy (applicable only if type = SPECIFIC)
[
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]The applicable payment method types for this policy. If not specified then all allowed payment method types are applicable.
The type of the event
Responses
The request has succeeded
Body
The fulfillment policy identifier
POST https://sandbox.crm.com/backoffice/v1/order_fulfillment_policies/ HTTP/1.1
Content-Type: application/json
{
"name": "",
"description": "",
"supply_methods": "DELIVERY",
"minimum_amount": 1,
"automatic_completion": {
"automatic_completion_time": "30",
"automatic_completion_time_UOT": "MINUTES"
},
"expiration_settings": {
"type": "NEVER_EXPIRES",
"expires_in": 3,
"expiration_UOT": "DAYS"
},
"completion_time_applicable": "true",
"average_completion_time": {
"time_to_complete": 30,
"time_to_complete_UOT": "MINUTES"
},
"expenses": [
{
"supply_method": "DELIVERY",
"product_id": "",
"order_amount": 10
}
],
"accessibility": {
"type": "ALL",
"organisations": [
""
]
},
"payment_method_types": [
"CARD"
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "d892c9b4-0a6b-baf9-8a32-913c932bd2ab"
}
{id}Path variables
The order fulfillment policy that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The type of the event
Delivered to the customer’s address
Picked up by the customer from a venue
Online sales of services
Defines whether order completion time is appicable
Defines the maximum threshold for applying the expense on the order (i.e. apply 2 euro delivery expense for orders less than 10 euros)
Defines whether the fulfillment policy is applicable for all organisations under the Business or specific organisations
The organisations (Merchants, Venues) that will fulfill orders based on this policy (applicable only if type = SPECIFIC)
[
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]The applicable payment method types for this policy. If not specified then all allowed payment method types are applicable.
The type of the event
Responses
The request has succeeded
Body
The order fulfillment policy identifier
PUT https://sandbox.crm.com/backoffice/v1/order_fulfillment_policies/d892c9b4-0a6b-baf9-8a32-913c932bd2ab HTTP/1.1
Content-Type: application/json
{
"name": "",
"description": "",
"supply_methods": "DELIVERY",
"minimum_amount": 1,
"automatic_completion": {
"automatic_completion_time": "30",
"automatic_completion_time_UOT": "MINUTES"
},
"expiration_settings": {
"type": "NEVER_EXPIRES",
"expires_in": 3,
"expiration_UOT": "DAYS"
},
"completion_time_applicable": "true",
"average_completion_time": {
"time_to_complete": 30,
"time_to_complete_UOT": "MINUTES"
},
"expenses": [
{
"supply_method": "DELIVERY",
"product": {
"id": "",
"sku": ""
},
"order_amount": 1
}
],
"accessibility": {
"type": "ALL",
"organisations": [
""
]
},
"payment_method_types": [
"CRM_WALLET"
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "d892c9b4-0a6b-baf9-8a32-913c932bd2ab"
}
{id}Path variables
The order fulfillment poilicy that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://devapi.crm.com/backoffice/v1/order_fulfillment_policies/{id} HTTP/1.1
HTTP/1.1 200 OK Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Search by name or description
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/order_fulfillment_policies HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"name": "",
"description": "",
"supply_methods": "PICK_UP",
"organisations": [
{
"id": "",
"name": ""
}
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}Returns detailed information for an Order fulfillment policy
Path variables
The order fulfillment policy that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
Defines whether order completion time is appicable
Defines whether the fulfillment policy is applicable for all organisations under the Business or specific organisations
The organisations (Merchants, Venues) that will fulfill orders based on this policy (applicable only if type = SPECIFIC)
The organisation identifier
The name of the organisation
The applicable payment method types for this policy
The type of the event
Defines the maximum threshold for applying the expense on the order (i.e. apply 2 euro delivery expense for orders less than 10 euros)
GET https://sandbox.crm.com/backoffice/v1/order_fulfillment_policies/c011cb43-b76e-7e5a-436c-f5917e358849 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"name": "",
"description": "",
"supply_methods": "DELIVERY",
"minimum_amount": 1,
"automatic_completion": {
"automatic_completion_time": "30",
"automatic_completion_time_UOT": "MINUTES"
},
"currency": "EUR",
"expiration_settings": {
"type": "NEVER_EXPIRES",
"expires_in": 3,
"expiration_UOT": "DAYS"
},
"completion_time_applicable": "true",
"average_completion_time": {
"time_to_complete": 30,
"time_to_complete_UOT": "MINUTES"
},
"accessibility": {
"type": "ALL",
"organisations": [
{
"id": "",
"name": ""
}
]
},
"payment_method_types": [
"CHEQUE"
],
"expenses": [
{
"supply_method": "DELIVERY",
"product": {
"id": "",
"sku": ""
},
"order_amount": ""
}
]
}
Returns supported supply methods based on the fulfillment policies configured
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The supported supply methods
[
"DELIVERY","PICK_UP","DIRECT_SALE"
]GET https://sandbox.crm.com/backoffice/v1/supply_methods HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"supply_methods": [
"DELIVERY",
"PICK_UP"
]
}{id}{id}{id}List order cmpletion rules
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The page number
The number of records per page
The overal number of records
GET https://stagingapi.crm.com/backoffice/v1/order_completion_rules HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"additional_completion_time": 5,
"additional_completion_time_UOT": "MINUTES",
"min_number_of_running_orders": 5,
"max_number_of_running_orders": 10,
"organisation": {
"id": "",
"name": ""
},
"product_conditions": [
{
"item_type": "TYPE",
"item_id": ""
}
],
"timing_conditions": [
{
"day_of_week": "TUESDAY",
"start_time": "09:00",
"end_time": "11:00"
}
],
"min_number_of_pending_items": 1,
"max_number_of_pending_items": 1
}
],
"pages": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Get order completion rule
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The name of the product type or the product SKU depending on the condition type
GET https://stagingapi.crm.com/backoffice/v1/order_completion_rules/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "",
"additional_completion_time": 5,
"additional_completion_time_UOT": "MINUTES",
"min_number_of_running_orders": 5,
"max_number_of_running_orders": 10,
"organisation": {
"id": "",
"name": ""
},
"product_conditions": [
{
"item_type": "TYPE",
"item_id": "",
"name": ""
}
],
"timing_conditions": [
{
"day_of_week": "MONDAY",
"start_time": "09:00",
"end_time": "11:00"
}
],
"min_number_of_pending_items": 1,
"max_number_of_pending_items": 1
}
Creates a new rule for completing orders
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Responses
Body
POST https://stagingapi.crm.com/backoffice/v1/order_completion_rules HTTP/1.1
Content-Type: application/json
{
"additional_completion_time": 5,
"additional_completion_time_UOT": "MINUTES",
"min_number_of_running_orders": 5,
"max_number_of_running_orders": 10,
"organisation_id": "",
"product_conditions": [
{
"item_type": "PRODUCT",
"item_id": ""
}
],
"timing_conditions": [
{
"day_of_week": "MONDAY",
"start_time": "09:00",
"end_time": "11:00"
}
],
"min_number_of_pending_items": 1,
"max_number_of_pending_items": 1
}
{id}Update a existing rule for completing orders
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Responses
Body
PUT https://stagingapi.crm.com/backoffice/v1/order_completion_rules/{id} HTTP/1.1
Content-Type: application/json
{
"additional_completion_time": 5,
"additional_completion_time_UOT": "MINUTES",
"min_number_of_running_orders": 5,
"max_number_of_running_orders": 10,
"organisation_id": "",
"product_conditions": [
{
"item_type": "TYPE",
"item_id": ""
}
],
"timing_conditions": [
{
"day_of_week": "MONDAY",
"start_time": "09:00",
"end_time": "11:00"
}
],
"min_number_of_pending_items": 1,
"max_number_of_pending_items": 1
}
{id}Delete an existing order completion rule
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://stagingapi.crm.com/backoffice/v1/order_completion_rules/{id} HTTP/1.1
HTTP/1.1 204 No Content Generic settings for passes
Get the generic settings for financial passes
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
Pass code hashing details
Is pass code hashing enabled?
Hashing algorithm (if hashing is enabled)
GET https://sandbox.crm.com/backoffice/v1/pass_settings HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"pass_code_hashing": {
"is_enabled": "true",
"algorithm": "SHA-1"
}
}Update generic financial pass settings
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Pass code hashing details
Is pass code hashing enabled?
Hashing algorithm (if hashing is enabled)
Responses
PUT https://sandbox.crm.com/backoffice/v1/pass_settings HTTP/1.1
Content-Type: application/json
{
"pass_code_hashing": {
"is_enabled": "true",
"algorithm": "SHA-1"
}
}Update allowed payment methods for organisations
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The payment method to update
Defines whether the payment method is allowed or not. Defaults to False.
Responses
POST https://sandbox.crm.com/backoffice/v1/allowed_payment_methods HTTP/1.1
Content-Type: application/json
[
{
"allowed_payment_method": "PAYPAL",
"is_allowed": "false"
}
]List allowed payment methods for organisations
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The type of the event
The label of allowed payment method for display purposes
Defines whether the payment method is allowed or not.
GET https://sandbox.crm.com/backoffice/v1/allowed_payment_methods HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"payment_method_type": "WALLET",
"label": "Cash",
"is_allowed": "true"
}
]Set generic platform settings
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The timezone of the organisation (applicable for Business organisations)
Responses
PUT https://sandbox.crm.com/backoffice/v1/platform_settings HTTP/1.1
Content-Type: application/json
{
"timezone": "EUROPE/ATHENS"
}
HTTP/1.1 200 OK Get generic platform settings
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The organisation timezone
GET https://sandbox.crm.com/backoffice/v1/platform_settings HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"timezone": "EUROPE/ATHENS"
}Retrieve a list of languages that the back-end software can be translated to
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The language code
GET https://sandbox.crm.com/backoffice/v1/software_languages HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"language": "EN"
}
]
}Managing Application Settings and Publishing
{id}{id}{id}{id}/settingsCreate a new application
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The application name
The application description
The application type
Mobile Consumer Applications (Apple and Google)
Mobile Merchant Applications (Apple and Google)
Web Portal
Captive Portal
Responses
Successful Request
Body
The application identifier
POST https://sandbox.crm.com/backoffice/v1/applications HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"name": "Brew Coffee",
"description": "Best coffee application",
"app_type": "PWA"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "118e64a6-85ad-413a-b6a1-9aeffd678ef3"
}{id}Update an existing application
Path variables
The application (identifer) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The application name
The application description
Responses
Successful Request
Body
The application identifier
PUT https://sandbox.crm.com/backoffice/v1/applications/5fd79941-e4ce-e6b9-2a3c-b455e3fb0220 HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"name": "Brew Coffee",
"description": "Best coffee application"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "118e64a6-85ad-413a-b6a1-9aeffd678ef3"
}{id}Delete an existing application
Path variables
The application (identifer) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/applications/eac1f771-2608-85c1-9289-08abb5c1d7a0 HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK Retrieves a list of all applications
Request parameters
Filters based on application name
Filters based on application type
The platform application identifier
The application version number
Use cloud name to retrieve Web APP settings.
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successfull Completed
Body
The application identifier
The application name
The application description
The application type
Mobile Consumer Applications (Apple and Google)
Mobile Merchant Applications (Apple and Google)
Web Portal
Captive Portal
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/applications HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "6d2652b7-9b8d-6174-65c3-c3fefc87e8cd",
"name": "Coffee App",
"description": "Best coffee app description",
"app_type": "NATIVE"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}Get details of a single application
Path variables
The application (identifer) that will be returned
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successfull Completed
Body
The application identifier
The application name
The application description
The application type
Mobile Consumer Applications (Apple and Google)
Mobile Merchant Applications (Apple and Google)
Web Portal
Captive Portal
Details about the app appearance
The background color that the app will use as the main color (hex code). Note: will temporarily co-exist with landing_page_colours & screen_colours for backward compatibility purposes
The color that te app will use on card-like components (hex code). Note: will temporarily co-exist with landing_page_colours & screen_colours for backward compatibility purposes
The color that the app will use on all buttons, link text, selected tabs (hex code). Note: will temporarily co-exist with landing_page_colours & screen_colours for backward compatibility purposes
Colours applied to the landing page. Note: New colour configurations
The landing page background colour (hex code), this can be replaced by an image defined in creatives.usage_type = LANDING_PAGE_BACKGROUND_IMAGE
Landing page button colour (hex code)
Landing page text colour (hex code)
Colours applied to other screens. Note: New colour configurations
Screen button colour is applied to clickable buttons, selected tabs and text option buttons (hex code)
Colour of the wallet card (hex code). If reward tiering is configured then this colour is overridden with the reward tier colour
Colour used on card like components across all screens (hex code)
JSON script contaning specific mapping of existing colour settings to particular elements of the app. Used in special circumstances to allow fine tuning of colour mapping without the need to rebuild the app. This is maintained solely by CRMI and is not visible on the back-end UI.
The colour scheme of the app
The text font style that the app will use
The homepage layout of the app
Defines the app details (about, terms and conditions, privacy policy)
Details about us (URL or contact should be specified)
The about URL
The about rich content
Details about the terms and conditions (URL or contact should be specified)
The terms and conditions URL
The terms and conditions rich content
Details about the privacy policy (URL or contact should be specified)
The privacy policy URL
The privacy policy rich content
Details about the FAQs (URL or contact should be specified)
The FAQs URL
The FAQs rich content
Details about contact us
The contact us email address
The contact us phone number country code
The contact us phone number
The contact us website
Details about the features that will be supported by the app
Defines whether billing feature is supported
Defines whether rewards feature is supported
Defines whether ordering feature is supported
Defines whether subscriptions feature is supported
Defines whether finance feature is supported
Defines whether crm feature is supported
Defines whether marketing content feature is supported
Defines whether business network feature is supported
Defines the supported business network items (only if business network feature is supported)
Defines whether multitenancy will be supported
Defines the consumer ordering model
Supported contact features for app & portal
Are contact features supported?
How the contact code will be depicted on the app/portal, for scanning purposes
As a barcode
As a QR code
Defines the supported crm items
Defines whether contacts will be able to submit service requests
Defines the supported finance items (only if finance feature is supported)
Defines whether contacts will be able to top up their wallets
Defines whether contacts will be able to redeem a pass
Defines whether redeem pass should be supported by other attributes
The type of supplementary attribute
Defines the supported ordering items (only if ordering feature is supported)
Defines whether pick up is supported as supply method
Defines whether delivery is supported as supply method
Defines whether direct sale is supported as supply method
Defines whether contact can set preferred organisation for ordering
Defines the countries where orders will be applicable
The country (code)
Defines whether contact can pay for order using wallet funds
Defines whether contacts can specific the wallet funds amount to use on orders
Defines whether the wallet fund amount must cover the full basket amount
Defines a list of order catalogs that should filter available products to order
The order catalog identifier
The order catalog name
Defines the supported rewards items (only if rewards feature is supported)
Defines whether automatic spend preferences will be supported
Details about the automatic spend settings that a contact can set up
Defines whether automatic spends can be set for any purchase
Defines whether contact can set preferred merchants on which automatic spends wil be applied (applicable only if any_purchase = true)
Contact auto spends will be applied on all merchant purchases
Contact will have the ability to select the merchants that auto spends will be applied
Defines whether automatic spends can be set for next purchase at merchant X
Defines whether the ability to select payment method for cashback returns will be supported
Defines whether customer self service purchase identification and OTP request to spend will be supported
Defines whether reward tiering will be supported
Defines whether contact can set preferred organisation for rewards
Defines whether refer a friend will be supported
Defines the communication method that should be used for refer a friend
Defines whether OTP send will be supported
Defines the supplementary attributes that will be supported for OTP spends
Defines how reclaim purchase identification will be made
Defines marketing content to display in front-end systems
Define links for embedded browser in front-end systems
Defines the title of the link
Defines the url of the link
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
Defines the supported Merchant App items
Defines whether the merchant app supports submission of Spend requests
Defines whether the purchase (front-end reduction) will be posted successfully only if requested spend amount fully covers the purchase amount
Details on how customers can auth by the app
Supported authentication based on email and password
Supported authentication based on email and one time password
Supported authentication based on one time password
Enable to define a demo contact from existing contacts
The contact assigned as demo contact
The id of the contact assigned as demo contact
The name of the contact assigned as demo contact
The otp to accept for signing in
Supported authentication based on Facebook
Facebook App ID required for FB authentication
Facebook App Secret for Server to Server communication (must not be sent to client)
Supported authentication based on Google
Google App ID required for Google authentication
Google App Secret for Server to Server communication (must not be sent to client)
Defines whether contacts will be able to change their authentication details
Defines whether contacts will be able to manage their authentication details
Defiens whether contact will be able to add new authentication details
Defiens whether contact will be able to update existing authentication details
Defiens whether contact will be able to delete existing authentication details
Details on supported contact attributes
Lists all supported contact attributes
The contact attribute
Defines if the profile attribute is supported or not
Details about the application identifiers per supported platform
The platform on which the application will be published
The application id of each platform
DNS Cloud name for the Web URL
The application version
The image/video/animation that will be displayed in the app landing page
The creative identifier
Information about the creative type
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
GET https://sandbox.crm.com/backoffice/v1/applications/bd909bd2-2397-8af8-b256-87e496620209 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "0b9ab3de-af32-47f9-faca-ff5c94063819",
"name": "Brew Coffee App",
"description": "Best coffee app",
"app_type": "CAPTIVE",
"appearance": {
"background_color": "#eb4034",
"card_color": "#eb4034",
"button_color": "#eb4034",
"landing_page_colours": {
"background": "#eb4034",
"button": "#36e3d7",
"text": "#e3cf36"
},
"screen_colours": {
"button": "#36e3d7",
"wallet": "#eb4034",
"card": "#eb4034"
},
"advanced_colour_mapping": "let appearance = { main_color: '#ffffff', //landing_page.text_color, landing_page.button_text_color, main_page.card_text_color, main_page.icon_color, side_bar.text_color, side_bar.icon_color, tab_bar.background_color button_color: '#50e3c2',//landing_page.button_color, main_page.button_color, main_page.button_selected, side_bar.background_color, tab_bar.selected, card_color: '#F0F0F3', //main_page.button_unselected, main_page.card_bg_color, main_page.input_background_color background_color: '#d32166', //landing_page.background_color text_normal_color: '#212121', //main_page.text_label_color, main_page.input_label_color text_main_color: '#03041D', //main_page.button_unselected_text_color, main_page.text_color, main_page.text_title_color, main_page.card_icon_color, main_page.input_text_color border_color: 'rgba(3, 4, 29, 0.16)', //main_page.border_button_color, main_page.border_input_color, tab_bar.unselected, darkmode_color: '#212121', //background pages when dark_mode = true darkmode_text: '#ffffff', //main_page.text_color }",
"dark_mode": "false",
"text_font": "Helvetica",
"homepage_layout": "LAYOUT1"
},
"about_details": {
"about": {
"url": "https?/crm.com",
"content": "About Us"
},
"terms_conditions": {
"url": "https?/crm.com",
"content": "Terms & Conditions"
},
"privacy_policy": {
"url": "https?/crm.com",
"content": "Privacy Policy"
},
"faqs": {
"url": "https://crm.com",
"content": "FAQs"
},
"contact_us": {
"email_address": "info@crm.com",
"phone_country_code": "CYP",
"phone_number": "22265566",
"website": "https?/crm.com"
}
},
"features": {
"billing": true,
"rewards": true,
"ordering": true,
"subscriptions": "true",
"finance": "true",
"crm": "true",
"marketing_content": "false",
"business_network": "false",
"business_network_details": {
"multitenancy": "false",
"ordering_model": "MARKETPLACE"
},
"contact": {
"is_supported": "true",
"code_representation": "BARCODE"
},
"crm_details": {
"service_requests": "false"
},
"finance_details": {
"wallet_top_up": "false",
"redeem_pass": "true",
"redeem_pass_attributes": [
"VALUE"
]
},
"ordering_details": {
"ordering_pickup": true,
"ordering_delivery": true,
"ordering_direct_sale": "true",
"preferred_organisation_orders": "true",
"ordering_countries": [
{
"country": "CYP"
}
],
"allow_wallet_funds_payment": "true",
"allow_specific_funds_amount": "false",
"allow_full_basket_wallet_fund": "false",
"order_catalogs": [
{
"id": "b948f9ee-e17c-2404-77ba-26e0589d686c",
"name": "WiFi Products"
}
]
},
"rewards_details": {
"automatic_spends": true,
"automatic_spend_options": {
"any_purchase": "true",
"any_purchase_collect_on": "ANY_MERCHANT",
"next_purchase_merchant": "true"
},
"return_cashback": true,
"customer_selfservice_purchases": true,
"reward_tiering": "false",
"preferred_organisation_rewards": "true",
"refer_friend": "true",
"refer_friend_communication_method": "EMAIL",
"otp_spend": "true",
"otp_spend_attributes": [
"AMOUNT"
],
"reclaim_purchase_methods": [
"BARCODE"
]
},
"marketing_content_details": {
"embedded_links": [
{
"title": "News & upcoming event",
"url": "https://www.guababeachbar.com/news&events",
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"usage_type": "LANDING_PAGE_HEADER_IMAGE",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/logo.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/logo.jpg"
}
]
}
]
}
]
},
"merchant_app": {
"allow_spend": true,
"restrict_fully_covered": "true"
}
},
"auth_support": {
"email_password": true,
"email_verification": "true",
"email_otp": "false",
"sms_otp": true,
"activate_demo_contact": "true",
"demo_contact_details": {
"contact_id": "BA84F57FC19A4ECB84EE779957364B83",
"contact_name": "John Jones",
"otp": "123456"
},
"facebook": true,
"fb_app_id": "sfsdf-23-we-wer-3ew-dw",
"fb_app_secret": "qqsdf-23-we-wer-3ew-qq",
"google": true,
"google_app_id": "sfsdf-23-we-wer-3ew-dw",
"google_app_secret": "qqsdf-23-we-wer-3ew-qq"
},
"contact": {
"profile_details": [
{
"type": "NAMEDAY",
"is_supported": true
}
]
},
"app_identifiers": [
{
"platform": "GOOGLE",
"platform_app_id": "1762e052-4805-73eb-36f2-e77d6dc883e8",
"cloud_name": "crmdotcom",
"version": "1.1"
}
],
"background_creative": {
"id": "CA123456789AQWSXZAQWS1236547896541",
"usage_type": "BACKGROUND",
"width": 2159,
"height": 2159,
"format": "jpg, lottie, mp4",
"url": "https://assets.crm.com/image/background.jpg",
"pubic_id": "crm-com/image",
"media": [
{
"width": 1,
"height": 1,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/background.jpg"
}
]
},
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"usage_type": "APPLE_LOCKSCREEN_ICON",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/logo.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/logo.jpg"
}
]
}
]
}
{id}/settingsSet the configuration details (appearance, supported features) of a single application
Path variables
The application (identifer) whose settings will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Details about the app appearance
The background color that the app will use as the main color (hex code). Note: will temporarily co-exist with landing_page_colours & screen_colours for backward compatibility purposes
The color that te app will use on card-like components (hex code). Note: will temporarily co-exist with landing_page_colours & screen_colours for backward compatibility purposes
The color that the app will use on all buttons, link text, selected tabs (hex code). Note: will temporarily co-exist with landing_page_colours & screen_colours for backward compatibility purposes
Colours applied to the landing page
The landing page background colour (hex code), this can be replaced by an image defined in creatives.usage_type = LANDING_PAGE_BACKGROUND_IMAGE
Landing page button colour (hex code)
Landing page text colour (hex code)
Colours applied to other screens
Screen button colour is applied to clickable buttons, selected tabs and text button options (hex code)
Colour of the wallet card (hex code). If reward tiering is configured then this colour is overridden with the reward tier colour
Colour used on card like components across all screens (hex code)
JSON script contaning specific mapping of existing colour settings to particular elements of the app. Used in special circumstances to allow fine tuning of colour mapping without the need to rebuild the app. This is maintatined solely via this API call and is not visible on the back-end UI.
The colour scheme of the app
The text font style that the app will use
The homepage layout of the app
Defines the app details (about, terms and conditions, privacy policy)
Details about us (URL or contact should be specified)
The about URL
The about rich content
Details about the terms and conditions (URL or contact should be specified)
The terms and conditions URL
The terms and conditions rich content
Details about the privacy policy (URL or contact should be specified)
The privacy policy URL
The privacy policy rich content
Details about the FAQs (URL or contact should be specified)
The FAQs URL
The FAQs rich content
Details about contact us
The contact us email address
The contact us phone number country code
The contact us phone number
The contact us website
Details about the features that will be supported by the app
Defines whether billing feature is supported
Defines whether rewards feature is supported
Defines whether ordering feature is supported
Defines whether subscriptions feature is supported
Defines whether finance feature is supported
Defines whether crm feature is supported
Defines whether business network feature is supported
Defines whether Marketing Content feature is supported
Defines the supported business network items (only if business network feature is supported)
Defines whether multitenancy will be supported
Supported contact features for app & portal
Are contact features supported?
How the contact code will be depicted on the app/portal, for scanning purposes
As a barcode
As a QR code
Defines the supported crm items
Defines whether contacts will be able to create service requests
Defines the supported finance items (only if finance feature is supported)
Defines whether contacts will be able to top up their wallets
Defines whether contacts will be able to redeem a pass
Defines whether redeem pass should be supported by other attributes
The type of supplementary attribute
Defines the supported ordering items (only if ordering feature is supported)
Defines whether pick up is supported as supply method
Defines whether delivery is supported as supply method
Defines whether direct sale is supported as supply method
Defines whether contact can set preferred organisation for ordering
Defines the countries where orders will be applicable
The country (code)
Defines whether contact can pay for order using wallet funds
Defines whether contacts can specific the wallet funds amount to use on orders
Defines whether the wallet fund amount must cover the full basket amount
Defines a list of order catalogs that should filter available products to order
The order catalog identifier
Defines the supported rewards items (only if rewards feature is supported)
Defines whether automatic spend preferences will be supported
Details about the automatic spend settings that a contact can set up
Defines whether automatic spends can be set for any purchase
Defines whether contact can set preferred merchants on which automatic spends wil be applied (applicable and required only if any_purchase = true)
Contact auto spends will be applied on all merchant purchases
Contact will have the ability to select the merchants that auto spends will be applied
Defines whether automatic spends can be set for next purchase at merchant X
Defines whether the ability to select payment method for cashback returns will be supported
Defines whether customer self service purchase identification will be supported
Defines how reclaim purchase identification will be made (required when contact self-submit purchase is enabled)
Defines whether reward tiering will be supported
Defines whether contact can set preferred organisation for rewards
Defines whether refer a friend will be supported
Defines the communication method that should be used for refer a friend
Defines whether OTP send will be supported
Defines the supplementary attributes that will be supported for OTP spends
Defines marketing content to display in front-end systems
Define links for embedded browser in front-end systems
Defines the title of the link
Defines the URL of the link
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
Defines the supported Merchant app items
Defines whether the merchant app supports submission of Spend requests
Defines whether the purchase (front-end reduction) will be posted successfully only if requested spend amount fully covers the purchase amount
Details on supported contact attributes
Lists all supported contact attributes
The contact attribute
Defines if the profile attribute is supported or not
Details on how customers can auth by the app
Supported authentication based on email and password
Supported authentication based on email and one time password
Supported authentication based on one time password
Enable to define a demo contact from existing contacts
The contact assigned as demo contact
The id of contact assigned as demo contact
The otp to accept for signing in
Supported authentication based on Facebok
Facebook App ID required for FB authentication (applicable and required when Facebook authentication is enabled)
Facebook App Secret for Server to Server communication (must not be sent to client) (applicable and required when Facebook authentication is enabled)
Supported authentication based on Google
Google App ID required for Google authentication (applicable and required when Google authentication is enabled)
Google App Secret for Server to Server communication (must not be sent to client) (applicable and required when Google authentication is enabled)
Defines whether contacts will be able to manage their authentication details
Defiens whether contact will be able to add new authentication details
Defiens whether contact will be able to update existing authentication details
Defiens whether contact will be able to delete existing authentication details
Details about the application identifiers per supported platform
The platform on which the application will be published
The application id for each platform
The application version
Responses
Successfull Completed
Body
The application identifier
POST https://sandbox.crm.com/backoffice/v1/applications/f8343fdf-a91f-1def-a265-35ac78b0a3ba/settings HTTP/1.1
Content-Type: application/json
{
"appearance": {
"background_color": "#eb4034",
"card_color": "#eb4034",
"button_color": "#eb4034",
"landing_page_colours": {
"background": "#eb4034",
"button": "#36e3d7",
"text": "#e3cf36"
},
"screen_colours": {
"button": "#36e3d7",
"wallet": "#eb4034",
"card": "#eb4034"
},
"advanced_colour_mapping": "let appearance = { main_color: '#ffffff', //landing_page.text_color, landing_page.button_text_color, main_page.card_text_color, main_page.icon_color, side_bar.text_color, side_bar.icon_color, tab_bar.background_color button_color: '#50e3c2',//landing_page.button_color, main_page.button_color, main_page.button_selected, side_bar.background_color, tab_bar.selected, card_color: '#F0F0F3', //main_page.button_unselected, main_page.card_bg_color, main_page.input_background_color background_color: '#d32166', //landing_page.background_color text_normal_color: '#212121', //main_page.text_label_color, main_page.input_label_color text_main_color: '#03041D', //main_page.button_unselected_text_color, main_page.text_color, main_page.text_title_color, main_page.card_icon_color, main_page.input_text_color border_color: 'rgba(3, 4, 29, 0.16)', //main_page.border_button_color, main_page.border_input_color, tab_bar.unselected, darkmode_color: '#212121', //background pages when dark_mode = true darkmode_text: '#ffffff', //main_page.text_color }",
"dark_mode": "false",
"text_font": "Gilroy",
"homepage_layout": "LAYOUT1"
},
"about_details": {
"about": {
"url": "https?/crm.com",
"content": "About Us"
},
"terms_conditions": {
"url": "https?/crm.com",
"content": "Terms & Conditions"
},
"privacy_policy": {
"url": "https?/crm.com",
"content": "Privacy Policy"
},
"faqs": {
"url": "https?/crm.com",
"content": "FAQs"
},
"contact_us": {
"email_address": "info@crm.com",
"phone_country_code": "CYP",
"phone_number": "22265566",
"website": "https?/crm.com"
}
},
"features": {
"billing": "false",
"rewards": true,
"ordering": true,
"subscriptions": true,
"finance": "false",
"crm": "true",
"business_network": "false",
"marketing_content": "false",
"business_network_details": {
"multitenancy": "true"
},
"contact": {
"is_supported": "true",
"code_representation": "BARCODE"
},
"crm_details": {
"service_requests": "false"
},
"finance_details": {
"wallet_top_up": "true",
"redeem_pass": "true",
"redeem_pass_attributes": [
"VALUE"
]
},
"ordering_details": {
"ordering_pickup": true,
"ordering_delivery": true,
"ordering_direct_sale": true,
"preferred_organisation_orders": "true",
"ordering_countries": [
{
"country": "CYP"
}
],
"allow_wallet_funds_payment": "true",
"allow_specific_funds_amount": "false",
"allow_full_basket_wallet_fund": "true",
"order_catalogs": [
{
"id": "676055d9-fe79-6836-8a50-c2d3764e9919"
}
]
},
"rewards_details": {
"automatic_spends": "true",
"automatic_spend_options": {
"any_purchase": "true",
"any_purchase_collect_on": "ANY_MERCHANT",
"next_purchase_merchant": "true"
},
"return_cashback": "false",
"customer_selfservice_purchases": "true",
"reclaim_purchase_methods": [
"TRX_CODE"
],
"reward_tiering": "true",
"preferred_organisation_rewards": "true",
"refer_friend": "true",
"refer_friend_communication_method": "EMAIL",
"otp_spend": "true",
"otp_spend_attributes": [
"AMOUNT"
]
},
"marketing_content_details": {
"embedded_links": [
{
"title": "New and upcoming events",
"url": "https://www.guababechbar.com/news&events",
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"usage_type": "APP_LOGO",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/logo.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/logo.jpg"
}
]
}
]
}
]
},
"merchant_app": {
"allow_spend": true,
"restrict_fully_covered": "true"
}
},
"contact": {
"profile_details": [
{
"type": "GENDER",
"is_supported": "false"
}
]
},
"auth_support": {
"email_password": true,
"email_verification": "true",
"email_otp": "true",
"sms_otp": true,
"activate_demo_contact": "true",
"demo_contact_details": {
"contact_id": "BA84F57FC19A4ECB84EE779957364B83",
"otp": "123456"
},
"facebook": true,
"fb_app_id": "dsf-w-f-esf-23f-w-eff2f",
"fb_app_secret": "qqsdf-23-we-wer-3ew-qq",
"google": true,
"google_app_id": "dsf-w-f-esf-23f-w-eff2f",
"google_app_secret": "qqsdf-23-we-wer-3ew-qq"
},
"app_identifiers": [
{
"platform": "WEB",
"platform_app_id": "1762e052-4805-73eb-36f2-e77d6dc883e8",
"cloud_name": "",
"version": "1.1"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "90f91e6b-54a4-6b93-5200-79ba9a361cb0"
}
{id}/media_groups{id}/media_groupsCreate a new media group for a specific application
Path variables
The application (identifer) whose media groups will be set
Notes
Uploading media for an application requires the execution of the following APIs
- Create new Media Group
- Create Application Media Groups
- Upload Media
- Perform Cloudinary Upload (where CRM will send all signature details)
- Cloudinary service calls back CRM media group (using an internal callback)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The media group identifier
Responses
The request has succeeded
POST https://devapi.crm.com/backoffice/v1/applications/6A24D2B5E44F44B28451FE021FCAD51E/media_groups HTTP/1.1
Content-Type: application/json
{
"name": "Default",
"description": "Seasonal offer media"
}
HTTP/1.1 200 OKUpdate the copyright notice (at Cloud Operator level only)
Notes
Applicable to be configured only by a “Cloud Operator” and will be applied throughout the software
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The actual copyright text
Responses
Success
Body
The organisation identifier
PUT https://sandbox.crm.com/backoffice/v1/copyright_notice HTTP/1.1
Content-Type: application/json
{
"copyright_text": "CRM.COM Software 2005-2021"
}Returns the copyright notice for a Cloud Operator
Request parameters
The organisation’s external identifier
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
The public api key required for API calls to identify the organisation
Responses
The request has succeeded
Body
The copyright text
GET https://sandbox.crm.com/backoffice/v1/copyright_notice?external _id=QWERTY12345671234567324ETFTGBY78 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"copyright_text": "CRM.COM Software 2005-2021"
}Update the supported countries that contacts can agree to register against to
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Information about the supported countries
The supported country of agreement code
Defines if the country is the default or not
List of supported currencies per Country of agreement. If nothing is specified, then contacts of this Country of agremeent can have accounts in any of the suported currencies of the business, having the business base currency applied on creating a default account. If at elats one i specified then a default must be set
The supported currecy code
The base currency of the Country of agreement. Having a default (one and only one) or base currecy is mandatory.
Responses
Success
Body
The organisation identifier
PUT https://sandbox.crm.com/backoffice/v1/agreement_countries HTTP/1.1
Content-Type: application/json
{
"countries": [
{
"country": "CYP",
"is_default": "true",
"currencies": [
{
"currency_code": "EUR",
"is_default": "true"
}
]
}
]
}Returns a list of the supported countries of agreement
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The country (code)
Defines whether the country is the default one or not
List of supported currencies per Country of agreement. If nothing is specified, then contacts of this Country of agremeent can have accounts in any of the suported currencies of the business, having the business base currency applied on creating a default account. If at elats one i specified then a default must be set
The supported currency code
The base currency of the Country of agreement. Having a default (one and only one) or base currecy is mandatory.
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/agreement_countries HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"country": "CYP",
"is_default": true,
"currencies": [
{
"currency_code": "EUR",
"is_default": "true"
}
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}{id}{id}/ratesAdd a new currency
Notes
Currencies can be configured per Service Owner/Business organisations
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The currency code
The conversaion rate of the currency in regards to the base currency (not required for default currency)
Responses
Successful Request
Body
The currency identifier
POST https://devapi.crm.com/backoffice/v1/organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/currencies HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"code": "EUR",
"rate": 1.234
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726W"
}{id}Update an existing currency
Path variables
The currency (identifer) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The conversaion rate of the currency in regards to the base currency
Responses
Successful Request
Body
The currency identifier
PUT https://devapi.crm.com/backoffice/v1/organisations/edf4a34c-4932-4941-9957-aeb5b55873bW/currencies/edf4a34c-4932-4941-9957-aeb5b55873b6 HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"rate": 1.2345
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726A"
}{id}Remove an existing currency from the supported ones
Path variables
The currency (identifer) that will be removed from the supported ones
Notes
Base Currency cannot be removed
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
DELETE https://devapi.crm.com/backoffice/v1/organisations/4AD9C84FA60F9FE407140E20F707726A/currencies/4AD9C84FA60F9FE407140E20F707726W HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK Search for currencies (search is applied between the supported ones per organisation and not all ISO 4217 supported currencies)
Request parameters
The currency code
If not specified, then all supported currencies are returned
Defines on which attribute the results should be sorted
The page number that should be retrieved
The size (total records) of each page
Defines how the results will be ordered
Country code. If set, then the supported currencies of that country will be returned. If the country does not have any, then the business’s currencies are returned
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The currency identifer
The currency code
The conversion rate of the currency in regards to the base currency
Marks the base currency of an organisation
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/currencies HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"code": "EUR",
"is_default": true
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}/ratesRetrieve a supported currency’s history of rates
Path variables
The currency (identifer) that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
Information about the currencty conversion rate history
The conversion rate identifier
The conversion rate with the base currency
The date from which the rate is effective
The date up to which the rate is effective
GET https://devapi.crm.com/backoffice/v1/organisations/4AD9C84FA60F9FE407140E20F707726A/currencies/4AD9C84FA60F9FE407140E20F707726W HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F70772ER",
"code": "EUR",
"rates": [
{
"id": "4AD9C84FA60F9FE407140E20F707726W",
"rate": 1.234,
"from_date": "1588171696",
"to_date": "1588171696"
}
]
}
{id}{id}{id}/Creates a new custom field
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The custom field key (for integrations and API purposes)
The custom field label (for display purposes)
The custom field description
The custom field tooltip
The custom field’s UI field type
The custom field module (applicable only if type = module)
The type of the event
Defines whether the custom field will be avaialble in the user interface or not
Applicable options for custom fields (required for selections, checkboxes and radio buttons)
The option key (for integrations and API purposes)
The option text (for display purposes)
Defines whethet the option will be the default one or not
Defines the order that will be used for displaying purposes
Defines whether check digit (based on Luhn algorithm) will be generated (applicable for numbering scheme custom fields)
Responses
The request has succeeded
Body
The custom field identifier
POST https://sandbox.crm.com/backoffice/v1/custom_fields HTTP/1.1
Content-Type: application/json
{
"key": "back_office",
"label": "Back Office",
"description": "The account's back office code",
"tooltip": "lorem ipsum",
"type": "TIMESTAMP",
"content": "USERS",
"entity": "CONTACTS",
"visible": true,
"options": [
{
"key": "option_1",
"text": "my option 1",
"default": true,
"order_number": 1
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "f68fad29-4a1b-3a1e-5cfa-6540a5b1609a"
}
{id}Updates an existing custom field
Path variables
The custom field (identifer) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Applicable options for custom fields (required for selections, checkboxes and radio buttons)
The option key (for integrations and API purposes)
The option text (for display purposes)
Defines whethet the option will be the default one or not
Defines the order that will be used for displaying purposes
Defines whether check digit (based on Luhn algorithm) will be generated (applicable for numbering scheme custom fields)
Responses
Body
The custom field identifier
PUT https://sandbox.crm.com/backoffice/v1/custom_fields/f68fad29-4a1b-3a1e-5cfa-6540a5b1609a HTTP/1.1
Content-Type: application/json
{
"label": "Back Office",
"description": "The account's back office code",
"tooltip": "Accounts Back Office Code",
"visible": true,
"options": [
{
"key": "option_1",
"text": "my option 1",
"default": true,
"order_number": 1
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "f68fad29-4a1b-3a1e-5cfa-6540a5b1609a"
}
{id}Deletes a custom field
Path variables
The custom field (identifer) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/custom_fields/f68fad29-4a1b-3a1e-5cfa-6540a5b1609a HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK Returns a list of custom fields configured in the system
Request parameters
The name of the entity whose custom fields will be retrieved. If not specified, then all custom field across all entities are returned
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The custom field (unique) key
The custom field label
The custom field description
The custom field tool-tip
The custom field’s UI field type
The custom field module (applicable only if type = module)
The type of the event
Defines whether the custom field is visible on the UI or not
Details about the custom field options
The field option key
The field option text
Defines whther the field option is the default one
The field option order number
Defines whether check digit (based on Luhn algorithm) will be generated (applicable for numbering scheme custom fields)
GET https://sandbox.crm.com/backoffice/v1/custom_fields?entity=LEADS HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "f68fad29-4a1b-3a1e-5cfa-6540a5b1609a",
"key": "back_office",
"label": "Back Office",
"description": "The account's back office code",
"tooltip": "",
"visible": true,
"field": "TIMESTAMP",
"entity": "DEVICES"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}/Returns details for a specific custom field
Path variables
The custom field (identifier) that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The custom field (unique) key
The custom field label
The custom field description
The custom field tool-tip
The custom field’s UI field type
The custom field module (applicable only if type = module)
The type of the event
Defines whether the custom field is visible on the UI or not
Details about the custom field options
The field option key
The field option text
Defines whther the field option is the default one
The field option order number
Defines whether check digit (based on Luhn algorithm) will be generated (applicable for numbering scheme custom fields)
GET https://sandbox.crm.com/backoffice/v1/custom_fields/f68fad29-4a1b-3a1e-5cfa-6540a5b1609a/ HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"key": "back_office",
"label": "Back Office",
"description": "The account's back office code",
"tooltip": "lorem ipsum",
"type": "AMOUNTS",
"content": "USERS",
"entity": "DEVICES",
"visible": true,
"options": [
{
"key": "option_1",
"text": "my option 1",
"default": true,
"order_number": 1
}
]
}
Changes the order/priority of a custom field
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The panel identifier to be ordered (can be null if default form location)
The new priority order
Responses
Body
The panel identifier
The priority
curl -X POST "https://sandbox.crm.com/backoffice/v1/custom_fields/priorities" \
-H "Content-Type: application/json" \
-H "authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV" \
-d '{
"panel_id": "57fa030e-4fd7-9829-2045-615e70905c59",
"new_priority": 1
}'
HTTP/1.1 200 OK
Content-Type: application/json
{
"panel_id": "57fa030e-4fd7-9829-2045-615e70905c59",
"priority": 1
}{id}{id}{id}Creates a new custom form
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The custom form name
The custom form description
The URL endpoint where the form is hosted
Authentication signature that will verify that the form requests are trusted
Details about the UI details that should be applied for this custom form
The icon to be used
The name to be displayed
Defines whether the custom form should be loaded as modal or embedded data page
Defines where the custom form should exist (e.g. navigation menu, within a page)
The custom form life cycle state
Responses
The request has succeeded
Body
The custom form identifier
POST https://sandbox.crm.com/backoffice/v1/custom_forms HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"name": "Register Customers",
"description": "Custom form flow",
"url_endpoint": "http://crm.com/integrations/register-contact",
"signature": "46145c04-d4a4-827f-2863-49b2823fcf64",
"component": {
"icon": "mdi mdi-plus",
"name": "Register Contact",
"type": "EMBEDED",
"location": ""
},
"life_cycle_state": "INACTIVE"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "f68fad29-4a1b-3a1e-5cfa-6540a5b1609a"
}
{id}Updates an existing custom form
Path variables
The custom form (identifier) to be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The custom form name
The custom form description
The URL endpoint where the form is hosted
Authentication signature that will verify that the form requests are trusted
Details about the UI details that should be applied for this custom form
The icon to be used
The name to be displayed
Defines whether the custom form should be loaded as modal or embedded data page
Defines where the custom form should exist (e.g. navigation menu, within a page)
The custom form life cycle state
Responses
The request has succeeded
Body
The custom form identifier
PUT https://sandbox.crm.com/backoffice/v1/custom_forms/f6913302-f341-6a8b-8b22-adc4e006e0a6 HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"name": "Register Customers",
"description": "Custom form flow",
"url_endpoint": "http://crm.com/integrations/register-contact",
"signature": "46145c04-d4a4-827f-2863-49b2823fcf64",
"component": {
"icon": "mdi mdi-plus",
"name": "Register Contact",
"type": "MODAL",
"location": ""
},
"life_cycle_state": "INACTIVE"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "f68fad29-4a1b-3a1e-5cfa-6540a5b1609a"
}
{id}Deletes an existing custom form
Path variables
The custom form (identifier) to be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/custom_forms/f6913302-f341-6a8b-8b22-adc4e006e0a6 HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK Returns a list of custom fields configured in the system
Request parameters
Filters based on custom form name
Filters based on custom form life cycle state
Filter based on custom form’s location
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The custom form identifier
The custom form name
The custom form description
The URL endpoint where such custom form is hosted
The custom form life cycle state
Details about the UI details that should be applied for this custom form
The icon to be used
The name to be displayed
Defines whether the custom form should be loaded as modal or embedded data page
Defines where the custom form should exist (e.g. navigation menu, within a page)
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/custom_forms HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "30176eac-2ce3-0ea9-9418-7bd65aff8c56",
"name": "Register",
"description": "Custom Registration Form",
"url_endpoint": "http://crm.com/integrations/register",
"life_cycle_state": "ACTIVE"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Returns details for a specific custom form
Path variables
The custom form (identifier) to be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The custom form identifier
The custom form name
The custom form description
The URL endpoint where the custom form is hosted
Authentication signature that will verify that the form requests are trusted
Details about the UI details that should be applied for this custom form
The icon to be used
The name to be displayed
Defines whether the custom form should be loaded as modal or embedded data page
Defines where the custom form should exist (e.g. navigation menu, within a page)
GET https://sandbox.crm.com/backoffice/v1/custom_forms/4af1ee3a-a0f6-8a87-3d24-08a7d56c9ab9 HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "30176eac-2ce3-0ea9-9418-7bd65aff8c56",
"name": "Register",
"description": "Custom Registration Form",
"url_endpoint": "http://crm.com/integrations/register",
"signature": "46145c04-d4a4-827f-2863-49b2823fcf64",
"component": {
"icon": "mdi mdi-plus",
"name": "Register Contact",
"type": "MODAL",
"location": ""
},
"life_cycle_state": "ACTIVE"
}
{id}{id}{id}{id}/conditions{id}/conditionsCreate a new filter for a specific module
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The filter name
The module for which the filter will be applied
Defines which organisations can be access and use it
Defines which organisations can access and use it
Available only for the user that created it
Available for all users under the same organisation
Examples
Responses
Body
The filter identifier
POST https://sandbox.crm.com/backoffice/v1/filter HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"name": "Active Discount Offers",
"module": "OFFERS",
"accessibility": {
"type": "PRIVATE"
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "ADD1E31269B76D7A65ACCE45B2E68DFD"
}{id}Update an existing filter
Path variables
The filter (identifier) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The filter name
Defines which organisations can be access and use it
Defines which organisations can access and use it
Available only for the user that created it
Available for all users under the same organisation
Responses
Body
The filter identifier
PUT https://sandbox.crm.com/backoffice/v1/filters/49bad38a-efab-86cb-e501-e2c141099e50 HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"name": "Active Discount Offers"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "ADD1E31269B76D7A65ACCE45B2E68DFD"
}{id}Delete an existing filter
Path variables
The filter (identifier) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/filters/49bad38a-efab-86cb-e501-e2c141099e50 HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK Retrieve all filters
Request parameters
Narrow down filter results based on module
Defines whether filter conditions should be returned as well
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The filter identifier
The filter name
Defines the user that “owns” such filter
The user identifier
The module for which the filter will be applied
Defines how the segment can be accessed from business network
Defines which organisations can access and use it
Available only for the user that created it
Available for all users under the same organisation
The attribute which will be considered as a filter
The comparison operator between the property and the related value
The (primary) value that will be compared to the property
The (secondary) value that will be compared to the property, applicable for range comparisons
The record (identifier) that will be compared to the propery (applicable when filtering based on specific records, such as specific contacts, offers, products)
[
"1ccf5401-e4b1-d173-2301-4c639b62c26f"
]The type of the propery attribute
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/filters HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "49bad38a-efab-86cb-e501-e2c141099e50",
"name": "Active Discount Offers",
"module": "OFFERS"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}Retrieve all attributes of a specific filter
Path variables
The filter (identifier) which attributes will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The filter identifier
The filter name
Defines how the segment can be accessed from business network
Defines which organisations can access and use it
Available only for the user that created it
Available for all users under the same organisation
GET https://sandbox.crm.com/backoffice/v1/filters/514aefa7-ec78-3229-e70e-9935c84fa0b9 HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "49bad38a-efab-86cb-e501-e2c141099e50",
"name": "Active Discount Offers",
"accessibility": {
"type": "ACROSS_NETWORK"
}
}{id}/conditionsAdd a set of conditions on a specific filter
Path variables
The filter (identifier) whose conditions will be set
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The attribute which will be considered as a filter
The comparison operator between the property and the related value
The (primary) value that will be compared to the property
The (secondary) value that will be compared to the property, applicable for range comparisons
The record (identifier) that will be compared to the propery (applicable when filtering based on specific records, such as specific contacts, offers, products)
[
"1ccf5401-e4b1-d173-2301-4c639b62c26f"
]The type of the propery attribute
Responses
POST https://sandbox.crm.com/backoffice/v1/filters/49bad38a-efab-86cb-e501-e2c141099e50/conditions HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"properties": [
{
"property": "purchase.amount",
"operator": "IS",
"min_value": "5.00",
"type": "NUMBER"
}
]
}
HTTP/1.1 200 OK {id}/conditionsReturn a filter’s set of conditions
Path variables
The filter (identifier) whose conditions will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The attribute which will be considered as a filter
The comparison operator between the property and the related value
The (primary) value that will be compared to the property
The (secondary) value that will be compared to the property, applicable for range comparisons
The record (identifier) that will be compared to the propery (applicable when filtering based on specific records, such as specific contacts, offers, products)
[
"1ccf5401-e4b1-d173-2301-4c639b62c26f"
]The type of the propery attribute
GET https://sandbox.crm.com/backoffice/v1/filters/9cf9c00a-c391-d91c-7657-f94ffe331b3d/conditions HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"property": "purchase.amount",
"operator": "IS",
"min_value": "5.00",
"type": "NUMBER"
}
]
}{id}/filters{id}/filters{id}/filtersSaves the latest filter applied on a summary page by the user for a specific module
Path variables
The user (identifier) for which the filter will be set
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The module for which the filter will be applied
The filter (identifier) that will be set as the default of the related module
Responses
Body
The filter identifier
POST https://sandbox.crm.com/backoffice/v1/users/03397197-6e67-ab75-ae69-76d3d66e06fb/filters HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"module": "AUTOMATIONS",
"filter_id": "9a3c41c6-3450-bb0a-10d2-acbfd836a385"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "a4896470-09c4-bd61-7502-4c4bc54fb6d6"
}{id}/filtersRetrieves the latest filters applied on a summary page by the user for specific modules
Path variables
The user (identifier) for which the filter will be reteived
Request parameters
Narrow down filter results based on module
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The module for which the filter will be applied
The existing filter previously applied by the user
The filter identier
The name of the filter
GET https://sandbox.crm.com/backoffice/v1/users/03397197-6e67-ab75-ae69-76d3d66e06fb/filters HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"module": "ACTIVITIES",
"filter": {
"id": "26fb9432-75ca-628e-50ef-3c7be9466bc5",
"name": "My Filter"
}
}{id}{id}{id}Create a new industry
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the industry to be created
Responses
Successful Request
Body
The industry identifier
POST https://sandbox.crm.com/backoffice/v1/industries HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"name": "TRAVEL"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "289be4e0-4d54-6bec-3517-bd27bc67c1ac"
}{id}Update a specific instustry
Path variables
The industry (identifier) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the industry to be updated
Responses
Successful Request
Body
The industry identifier
PUT https://sandbox.crm.com/backoffice/v1/industries/c18fb5e3-3ecb-c5ed-016c-16fa584a5203 HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"name": "Marketing"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}{id}Delete an industry
Path variables
The industry (identifier) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
DELETE https://sandbox.crm.com/backoffice/v1/industry/c18fb5e3-3ecb-c5ed-016c-16fa584a5203 HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK Retrieve the contact industries
Request parameters
The name of the industry
Defines on which attribute the results should be sorted
The page number that should be retrieved
The size (total records) of each page
Defines how the results will be ordered
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The industry identifier
The industry name
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/industries HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "Travel"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}Retrieve a single industry
Path variables
The industry (identifier) that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The industry identifier
The industry name
GET https://sandbox.crm.com/backoffice/v1/industries/c18fb5e3-3ecb-c5ed-016c-16fa584a5203 HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "Travel"
}{id}{id}{id}Create the industry sectors
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the industry sector to be updated
The industries that are associated with the industry sector
The industry (identifieR) related to the industry sectors
Responses
Successful Request
Body
The industry sector identifier
POST https://sandbox.crm.com/backoffice/v1/industry_sectors HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"name": "TRAVEL AGENTS",
"related_industries": [
{
"industry_id": "4AD9C84FA60F9FE407140E20F707726A"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "d6e7e8ce-5516-4153-9e94-63f5ff54511b"
}{id}Update a specific Industry Sector
Path variables
The industry sector (identifier) that will be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the industry sector to be updated
The industries that are associated with the industry sector
The industry (identifier)
Responses
Successful Request
Body
The industry sector identifier
PUT https://sandbox.crm.com/backoffice/v1/industry_sectors/d6e7e8ce-5516-4153-9e94-63f5ff54511b HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"name": "",
"related_industries": [
{
"industry_id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "d6e7e8ce-5516-4153-9e94-63f5ff54511b"
}{id}Delete an industry sector
Path variables
The industry sector (identifier) that will be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
DELETE https://sandbox.crm.com/backoffice/v1/industry_sectors/d6e7e8ce-5516-4153-9e94-63f5ff54511b HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK Retrieve the industry sectors
Request parameters
The name of the industry sector
The name of the industry that multiple sectors belong to
Defines on which attribute the results should be sorted
The page number that should be retrieved
The size (total records) of each page
Defines how the results will be ordered
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The industry sector identifier
The industry sector name
The industries that are associated with the industry sector
The industry identifier
The industry name
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/industry_sectors HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "Science",
"related_industries": [
{
"id": "d6e7e8ce-5516-4153-9e94-63f5ff54511b",
"name": "Computer"
}
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Get details for a single industry sector
Path variables
The industry sector (identifier) that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The industry sector identifier
The industry sector name
The industries that are associated with the industry sector
The industry identifier
The industry name
GET https://sandbox.crm.com/backoffice/v1/industry_sectors/f47e682a-5910-4714-9030-44469e2a6f85 HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "Science",
"related_industries": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "Computer"
}
]
}Set up of a web page which serves as the entry point for a website or a particular section of a website.
{id}{id}/{id}{id}/actions{id}/attributes{id}/attributes/{id}/attributes/{id}/fields{id}/fields{id}/fields{id}/media_groupsCreates a landing page for an organisation
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
The name of the landing page
The description of the landing page
The type of landing page
Allow provision of mobile pass after registeration.
Pass plan id - in cases where ‘type’ = PURCHASE_PASS (i.e. the landing page is used for purchasing a gift pass)
Responses
Body
The GUID of the landing page created
POST https://sandbox.crm.com/backoffice/v1/landing_pages HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"name": "Enrolment form for Mobile pass cards",
"description": "Enrolment landing page for mobile pass cards.",
"type": "PURCHASE_PASS",
"mobile_pass": true,
"pass_plan_id": "5f1316d2-dfce-42f0-b7bf-c543b8df7702"
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "HGJSDYGFUY87686GFJHFASD"
}{id}Updates a landing page for an organisation
Path variables
The GUID of the landing page to be updated.
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
The name of the landing page
The description of the landing page
The type of landing page
Allow provision of mobile pass
Pass plan id - in cases where ‘type’ = PURCHASE_PASS (i.e. the landing page is used for purchasing a gift pass)
Responses
Body
The GUID of the landing page created
PUT https://sandbox.crm.com/backoffice/v1/landing_pages/HGSFGKSFGH1323 HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"name": "Enrolment form for Mobile pass cards",
"description": "Enrolment landing page for mobile pass cards.",
"type": "PASSWORD RESET",
"mobile_pass": true
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "HGJSDYGFUY87686GFJHFASD"
}{id}/Deletes fields for a landing page form.
Path variables
The guid of the landing page.
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
Responses
Body
The GUID of the landing page that was deleted
DELETE https://sandbox.crm.com/backoffice/v1/landing_pages/HGAHJDGF765GHFAHGD6575/ HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
HTTP/1.1 201 Created
Content-Type: application/json
[
{
"id": "HGHFADGJF768HJGAFDJY6576"
}
]Returns a list of Landing Pages
Request parameters
The date from which the landing page was created
Search for landing pages based on their name or description
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
The state of the landing page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The landing pages’s unique identifier
The landing pages’s name
The landing pages’s description
The state of the landing page
the link associated to the landing page
The landing page type
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/landing_pages HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "Enrolment form for Mobile pass cards",
"description": "Enrolment landing page for mobile pass cards.",
"state": "ACTIVE",
"link": "https://abc.com"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Retrieves a landing page for an organisation.
Path variables
the GUID of the mobile pass card to be retrieved
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
Responses
Body
The name of the landing page.
The description of the landing page
The type of landing page
The link associated to the landing page
Provision mobile pass after registration
Pass plan id - in cases where ‘type’ = PURCHASE_PASS (i.e. the landing page is used for purchasing a gift pass)
The state of the landing page.
GET https://sandbox.crm.com/backoffice/v1/landing_pages/JHGFDJYGDSYHFSHGFD HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
HTTP/1.1 201 Created
Content-Type: application/json
{
"name": "My loyalty pass enrolment form",
"description": "Enrolment landing page for mobile pass cards.",
"type": "PASSWORD_RESET",
"link": "https://abc.com",
"mobile_pass": true,
"state": "ACTIVE"
}{id}/actionsChange the status of a landing page.
Path variables
The GUID of the landing page whose status is to be changed.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The new landing page status
The landing page link is live and ready for contacts to access.
The landing page link is not live and ready for contacts to access.
Examples
Responses
Body
The GUID of the mobile pass card whose status was changed
Activate mobile pass card
POST https://sandbox.crm.com/backoffice/v1/mobile_pass_cards/HPA1E31269B76D7A65ACCE45B2E68DFD/actions HTTP/1.1
Content-Type: application/json
{
"status": "ACTIVE"
}{id}/attributesCreates a form for a landing page for an organisation.
Path variables
the id of the landing page
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
The text in the header
The title to be dispayed on the landing page
The description on the landing page
The footer text
The text to be displayed on the button
The success message to be displayed on the success response page.
The failure message to be displayed on the failure response page.
Positioning of the logo image
The functionality that this page is linked to
The color
the color code
The opacity of images displayed on the landing page
The image type.
The opacity percentage
Responses
Body
The GUID of the landing page
POST https://sandbox.crm.com/backoffice/v1/landing_pages/HJAGFDUYFA6576/attributes HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"header": "This is a header",
"title": "Enrolment form",
"description": "Please enter detail to enrol for mobile pass cards.",
"footer": "Please sign up",
"button": "Submit",
"success": "Congratulations!",
"fail": "Failed.",
"logo_img_position": "CENTER",
"colors": [
{
"type": "LABEL_TEXT",
"value": "FSR4ER"
}
],
"opacity": [
{
"image": "BACKGROUND",
"value": 1
}
]
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "HGJSDYGFUY87686GFJHFASD"
}
{id}/attributes/Updates a form for a landing page for an organisation.
Path variables
the id of the landing page
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
The title to be dispayed on the landing page
The description of the landing page
The footer text
The message to be displayed upon success page.
The message to be displayed upon fail page.
The position of the logo on the landing page
The header text
The button text
The functionality that this page is linked to
The color on the landig page.
the color code
The opacitiy of the images on the landing page
The image type.
The image opacity
Responses
Body
The GUID of the landing page
PUT https://sandbox.crm.com/backoffice/v1/landing_pages/HJAGFDUYFA6576/attributes/{att_id} HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"title": "Enrolment form",
"description": "Enrolment landing page for mobile pass cards.",
"footer": "Please sign up",
"success": "Congratulations.",
"fail": "Failed",
"logo_img_position": "RIGHT",
"colors": [
{
"type": "TEXT",
"value": "FSR4ER"
}
],
"opacity": [
{
"image": "BACKGROUND",
"value": 1
}
]
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "HGJSDYGFUY87686GFJHFASD"
}
{id}/attributes/Retrieves a landing pages form attributes for an organisation.
Path variables
the GUID of the landing page to be retrieved
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
Responses
Body
The title to be dispayed on the landing page.
The description on the landing page
Footer text on form
The message to be displayed on the success page.
The message to be displayed on the fail page.
The position of the logo image
The header text
The button text
The distribution method applicable
the colour code returned
The opacity of the images on the landing pages.
The image type.
The value of the opacity
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
GET https://sandbox.crm.com/backoffice/v1/landing_pages/JHGFDJYGDSYHFSHGFD/attributes/ HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
HTTP/1.1 201 Created
Content-Type: application/json
{
"title": "Enrolment form",
"description": "Enrolment landing page for mobile pass cards.",
"footer": "Mobile Pass Card",
"success": "Congradulations",
"failed": "Failed",
"logo_img_position": "CENTER",
"header": "Welcome!",
"button": "Submit!",
"colors": [
{
"type": "FOOTER_TEXT",
"value": "FDE56F"
}
],
"opacity": [
{
"image": "BACKGROUND",
"value": 1
}
],
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"usage_type": "LANDING_PAGE_HEADER_IMAGE",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/logo.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/logo.jpg"
}
]
}
]
}
{id}/fieldsCreates a field for a form for a landing page for an organisation.
Path variables
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
Details pertaining to the enrollment form fields
The property to be added as a field
The label defined to the field
The priority in which the fields are displayed on the row or the section
Responses
Body
The GUID of the landing page
POST https://sandbox.crm.com/backoffice/v1/landing_pages/{id}/fields HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"form": [
{
"property": "contact.email",
"label": "email",
"priority": "1 , 2 , 3"
}
]
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "HGJSDYGFUY87686GFJHFASD"
}{id}/fieldsUpdates a field for a form for a landing page for an organisation.
Path variables
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
Details pertaining to the enrollment form fields
The id of the field to be updated
The property to be added as a field
The label defined to the field
The priority in which the fields are displayed on the row or the section
Responses
Body
The GUID of the landing page
PUT https://sandbox.crm.com/backoffice/v1/landing_pages/{id}/fields HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"form": [
{
"id": "JHGFSJG76576HJSFG",
"property": "contact.email",
"label": "email",
"priority": "1 , 2 , 3"
}
]
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "HGJSDYGFUY87686GFJHFASD"
}{id}/fieldsRetrieves a landing pages form fields for an organisation.
Path variables
the GUID of the mobile pass card to be retrieved
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
Responses
Body
Detials relatng to a field on the landing page form
The guid of the field
The property to be added as a field
The label defined to the field
The priority in which the fields are displayed on the row or the section
GET https://sandbox.crm.com/backoffice/v1/landing_pages/JHGFDJYGDSYHFSHGFD/fields HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
HTTP/1.1 201 Created
Content-Type: application/json
{
"form": [
{
"id": "JHAGDJGA6576HGGJ",
"property": "contact.email",
"label": "email",
"priority": 1
}
]
}{id}/media_groupsLink a landing page with one or many Media Groups
Path variables
The landing page identifier that will be updated
Notes
Uploading media for a landing page requires the execution of the following APIs
- Create new Media Group
- Create Landing Pages Media Groups
- Upload Media
- Perform Cloudinary Upload (where CRM will send all signature details)
- Cloudinary service calls back CRM media group (using an internal callback)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The media group identifier
Responses
POST https://sandbox.crm.com/backoffice/v1/products/3f1f9e63-7f40-4e5e-bc42-11a162f7f1fb/media_groups HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
[
{
"media_group_id": "3f1f9e63-7f40-4e5e-bc42-11a162f7f1fb"
}
]
HTTP/1.1 200 OKUpdate the supported languages that content can be translated to and communications can be sent to
Notes
Languages can be configured per Service Owner/Business organisations and are used for content translations (e.g. translating offer descriptions in other languages)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Information about the supported currencies
The supported glossary language code
English
Greek
Responses
Success
Body
The organisation identifier
PUT https://devapi.crm.com/backoffice/v1/organisations/7cc1b26a-459f-4b47-a09f-6b121ae947da/languages HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"languages": [
{
"language": "GRE"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "7cc1b26a-459f-4b47-a09f-6b121ae947da"
}Returns a list of the supported languages that can be used in communications and content translations
Notes
Languages can be configured per Service Owner/Business organisations and are used for content translations (e.g. translating offer descriptions in other languages)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The language identifier
The language code
GET https://sandbox.crm.com/backoffice/v1/languages HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"languages": {
"id": "41f14cfa-029c-0e91-609a-289ca788b1a8",
"language": "EN"
}
}Mobile Pass Cards are the collective term for the non payment cards, such as coupons, loyalty cards, subscription cards, rewards and anything that is not a payment card. These mobile pass cards will be set up by the CRM.com user and shall be linked to contacts that ‘enroll’ into this card scheme.
{id}{id}/actions{id}/fields{id}/fields{id}/fields{id}/attributes{id}/attributes{id}/attributes{id}/barcodes{id}/barcodes{id}/barcodes{id}/media_groupsCreates a mobile pass card for an organisation.
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
The name of the pass card
The description of the pass card
The default android wallet
The alternative wallet provider if Other is selected as default android wallet
Responses
Body
The id of the mobile pass card that was created.
POST https://sandbox.crm.com/backoffice/v1/mobile_pass_cards HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"name": "My loyalty pass",
"description": "This card is for reward purposes.",
"default_wallet": "OTHER",
"alt_wallet_provider": "WALLET_PASSES"
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "HFH6576JHVHGF8976"
}{id}Updates a mobile pass card for an organisation.
Path variables
The id of the mobile pass card
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
The name of the pass card
The name of the program that applies to this pass card
The description of the pass card
The default android wallet
The alternative wallet provider if other is selcted as default android wallet.
Responses
Body
The id of the mobile pass card
PUT https://sandbox.crm.com/backoffice/v1/mobile_pass_cards/{id} HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"name": "My loyalty pass",
"program_name": "My loyalty program",
"description": "This card is for reward purposes.",
"default_wallet": "OTHER",
"alt_wallet_provider": "WALLET_PASSES"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "KHGJ675HGFHGF"
}Retrieves a mobile pass card for an organisation.
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
Responses
Body
The external id of the mobile pass card
The name of the mobile pass card.
The descri-ption of the mobile pass card.
The default android wallet to be used.
default
If OTHER is selected this is the alternative wallet to be used to add passes to.
The state of the mobile pass card
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
GET https://sandbox.crm.com/backoffice/v1/mobile_pass_cards/ HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
HTTP/1.1 201 Created
Content-Type: application/json
{
"external_id": "KJHSJHGF76765NVSFJBF",
"name": "My loyalty pass",
"description": "This card is for reward purposes.",
"default_wallet": "OTHER",
"alt_wallet_provider": "PASSWALLET",
"status": "ACTIVE",
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"usage_type": "GOOGLE_STRIP_IMAGE",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/logo.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/logo.jpg"
}
]
}
]
}
{id}/actionsChange the status of a mobile pass card.
Path variables
The GUID of the mobile pass card whose status is to be changed.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The new mobile pass card status
The mobile pass card can be distributed to contacts
The mobile pass card can not be distributed to contacts
Examples
Responses
Body
The GUID of the mobile pass card whose status was changed
Activate mobile pass card
POST https://sandbox.crm.com/backoffice/v1/mobile_pass_cards/HPA1E31269B76D7A65ACCE45B2E68DFD/actions HTTP/1.1
Content-Type: application/json
{
"status": "ACTIVE"
}{id}/fieldsCreates fields for a mobile pass card for an organisation.
Path variables
The guid of the mobile pass card
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
Details regarding the fields added to the pass.
The wallet platform to which this field relates to.
Whether the field is at a row or a section
The row or section number
Whether the field is on the front or the back
The priority in which the fields are displayed on the row or the section
The label defined to the field
The property in that field
The value of the property. Applicable only for platform APPLE and property portal_url
The nature of the field
The placement of the text.
Responses
Body
The GUID of the field that was created
POST https://sandbox.crm.com/backoffice/v1/mobile_pass_cards/HGAHJDGF765GHFAHGD6575/fields HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"Fields": [
{
"platform": "GOOGLE",
"location": "WEB_LINK",
"location_number": "1 , 2 , 3",
"side": "BACK",
"priority": "1 , 2 , 3",
"label": "Points",
"property": "wallet.points , https://abc.com",
"type": "EMAIL",
"text_alignment": "RIGHT"
}
]
}
HTTP/1.1 201 Created
Content-Type: application/json
[
{
"id": "HGHFADGJF768HJGAFDJY6576"
}
]
{id}/fieldsUpdates fields for a mobile pass card for an organisation.
Path variables
The guid of the mobile pass card
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
The id of the field to be updated.
The platform that relates to the field.
The location where the field is located.
The number of row or section where the field is located
The side of the pass card where the field is situated
The order of the field in its section or row or side.
The label displayed on card.
The crm.com property relating to that field
The value of the property. Applicable only for platform APPLE and property portal_url
The nature of the field
The alignment position of the field.
Responses
Body
The GUID of the pass that was created
PUT https://sandbox.crm.com/backoffice/v1/mobile_pass_cards/HGAHJDGF765GHFAHGD6575/fields HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
[
{
"id": "JHGSJGDS7675HDGSJDHG",
"platform": "APPLE",
"location": "ROW",
"location_number": "1",
"side": "FRONT",
"priority": "1",
"label": "Points",
"property": "wallet.points , https://abc.com",
"type": "WEB",
"text_alignment": "LEFT"
}
]
HTTP/1.1 201 Created
Content-Type: application/json
[
{
"id": "HGHFADGJF768HJGAFDJY6576"
}
]
{id}/fieldsRetrieves details for fields for a mobile pass card for an organisation.
Path variables
The guid of the mobile pass card fields to be returned.
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
Responses
Body
The GUID of the field
The platform to which the field relates.
The location on the mobile pass card to which the field relates to. If the field is on the back of the card then this value is null. See example.
The row or section number relating to the location. If the field is on the back of the card then this value is null. See example.
The side on which the field is placed.
The order that this field is displayed as in its row, section or on the back.
The label of this field.
The property that will be related to this field
The value of the property. Applicable only for platform APPLE and property portal_url
The type relating to the nature of the field.
The alignment position on the pass.
GET https://sandbox.crm.com/backoffice/v1/mobile_pass_cards/HGAHJDGF765GHFAHGD6575/fields HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{}
HTTP/1.1 201 Created
Content-Type: application/json
fields:[
{
"id": "JHGAJHAGFJH7856JHGASDJ",
"platform": "APPLE",
"location": "SECTION",
"location_number": "1",
"side": "BACK",
"priority": "1",
"label": "Points",
"property": "wallet.points",
"type": "WEB",
"text_alignment": "RIGHT"
}
]
{id}/attributesCreates attribute values for mobile pass card for an organisation.
Path variables
The id of the mobile pass card
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
The colours relating to the pass
The type of parameter.
The type of attribute.
the background colour.
the text colour.
the label colour.
The value of the attribute
Responses
Body
The id of the new attribute value created
POST https://sandbox.crm.com/backoffice/v1/mobile_pass_cards/JHGJSHGKHADVJHASFV/attributes HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"attributes": [
{
"param_type": "COLOUR",
"attribute_type": "LABEL",
"value": "FA76VC1"
}
]
}
HTTP/1.1 201 Created
Content-Type: application/json
[
{
"id": "HJGDJHGJSYDGF786876"
}
]{id}/attributesCreates attribute values for mobile pass card for an organisation.
Path variables
The id of the mobile pass card
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
The colours relating to the pass
The id of the attribute to be updated
The type of parameter.
The type of color attribute
The value of the attribute
Responses
Body
The id of the attribute updated
PUT https://sandbox.crm.com/backoffice/v1/mobile_pass_cards/JHGJSHGKHADVJHASFV/attributes HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"attributes": [
{
"id": "KHGDSHG768687JYFGJDS",
"param_type": "COLOUR",
"attribute_type": "BACKGROUND",
"value": "FA76VC1"
}
]
}
HTTP/1.1 201 Created
Content-Type: application/json
[
{
"id": "HJGDJHGJSYDGF786876"
}
]{id}/attributesCreates fields for a mobile pass card for an organisation.
Path variables
The guid of the mobile pass card fields to be returned.
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
Responses
Body
The GUID of the attribute
The type of parameter.
The attribute type which the value relates to.
The value relating to the attribute. eg. Color code of the attributes.
GET https://sandbox.crm.com/backoffice/v1/mobile_pass_cards/HGAHJDGF765GHFAHGD6575/attributes HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{}
HTTP/1.1 201 Created
Content-Type: application/json
attributes:[
{
"id": "KJFHGJHSDG6756HGFSJHG",
"param_type": "FONT",
"attribute_type": "BACKGROUND",
"value": "FA76VC1"
}
]{id}/barcodesCreates a barcode for a mobile pass card for an organisation.
Path variables
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
The type of barcode to be displayed on the pass
The content to be stored as the barcode. Defaulted to contacts.id as lexicon.
The format of the barcode
The message encoded into the barcode.
Responses
Body
The id of the mobile pass card.
POST https://sandbox.crm.com/backoffice/v1/mobile_pass_cards/{id}/barcodes HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"type": "QR_CODE",
"content": "contacts.id",
"format": "PKBarcodeFormatPDF417",
"message_encoding": "iso-8859-1"
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "HFH6576JHVHGF8976"
}{id}/barcodesUpdates a barcode for a mobile pass card for an organisation.
Path variables
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
The type of barcode to be displayed on the pass
The content to be stored as the barcode. Defaulted to contacts.id as lexicon.
The format of the barcode
The message encoded into the barcode.
Responses
Body
The id of the mobile pass card.
PUT https://sandbox.crm.com/backoffice/v1/mobile_pass_cards/{id}/barcodes HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"type": "AZTEC",
"content": "contacts.id",
"format": "PKBarcodeFormatPDF417",
"message_encoding": "iso-8859-1"
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "HFH6576JHVHGF8976"
}{id}/barcodesRetrieves a mobile pass card barcodes for an organisation.
Path variables
the GUID of the mobile pass card to be retrieved
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
Responses
Body
The type of barcode to be added to the mobile wallet pass.
The content that will be passed in the barcode.
The format of the barcode
The message encoded into the barcode.
GET https://sandbox.crm.com/backoffice/v1/mobile_pass_cards/JHGFDJYGDSYHFSHGFD/barcodes HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
HTTP/1.1 201 Created
Content-Type: application/json
{
"type": "NONE",
"content": "contact.code",
"format": "PKBarcodeFormatPDF417",
"message_encoding": "iso-8859-1"
}{id}/media_groupsLink a mobile pass card with one or many Media Groups
Path variables
The mobile pass card identifier that will be updated
Notes
Uploading media for a mobile pass card requires the execution of the following APIs
- Create new Media Group
- Create Mobile Passes Media Groups
- Upload Media
- Perform Cloudinary Upload (where CRM will send all signature details)
- Cloudinary service calls back CRM media group (using an internal callback)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The media group identifier
Responses
POST https://sandbox.crm.com/backoffice/v1/products/3f1f9e63-7f40-4e5e-bc42-11a162f7f1fb/media_groups HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
[
{
"media_group_id": "3f1f9e63-7f40-4e5e-bc42-11a162f7f1fb"
}
]
HTTP/1.1 200 OK Service Owner partners
{id}{id}{id}{id}/media_groupsCreates a new Service Owner partner
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Partner name
Contact person information
Contact person name
Contact person email
Contact person phone number
Phone number country code
Partner life cycle state
Responses
The request has succeeded
Body
The unique partner identifier
POST https://sandbox.crm.com/backoffice/v1/partner HTTP/1.1
Content-Type: application/json
{
"name": "Yellow Umbrella Corp.",
"contact_person": {
"name": "John Smith",
"email": "john.smith@yellowumberlla.com",
"phone": "22499019",
"country_code": "CYP"
},
"life_cycle_state": "ACTIVE"
}{id}Update an existing Service Owner partner
Path variables
Unique partner id to be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Partner name
Contact person information
Contact person name
Contact person email
Contact person phone number
Phone number country code
Partner life cycle state
Responses
The request has succeeded
Body
The unique partner identifier updated
PUT https://sandbox.crm.com/backoffice/v1/partner/f6913302-f341-6a8b-8b22-adc4e006e0a6 HTTP/1.1
Content-Type: application/json
{
"name": "Yellow Umbrella Corp.",
"contact_person": {
"name": "John Smith",
"email": "john.smith@yellowumberlla.com",
"phone": "22499346",
"country_code": "CYP"
},
"life_cycle_state": "ACTIVE"
}{id}Deletes an existing partner
Path variables
The unique partner identifier to be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Returns a list of partners configured in the system
Request parameters
Filter based on partner name
Filter based on life cycle state
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
Unique partner identifier
Partner name
Contact person name
Partner life cycle state
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/partners HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "30176eac-2ce3-0ea9-9418-7bd65aff8c56",
"name": "Yellow Umbrella Corp.",
"contact_person": "John Smith",
"life_cycle_state": "ACTIVE"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}Returns details for a specific partner
Path variables
The unique partner id to be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
The request has succeeded
Body
The unique partner identifier
The partner name
Contact person details
Contact person name
Contact person email
Contact person phone
Phone country code
Partner life cycle state
GET https://sandbox.crm.com/backoffice/v1/custom_forms/4af1ee3a-a0f6-8a87-3d24-08a7d56c9ab9 HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "30176eac-2ce3-0ea9-9418-7bd65aff8c56",
"name": "Register",
"description": "Custom Registration Form",
"url_endpoint": "http://crm.com/integrations/register",
"signature": "46145c04-d4a4-827f-2863-49b2823fcf64",
"component": {
"icon": "mdi mdi-plus",
"name": "Register Contact",
"type": "MODAL",
"location": ""
},
"life_cycle_state": "ACTIVE"
}
{id}/media_groupsLink an partner with one or more media groups
Path variables
The unique identifier of the partner to be updated
Notes
Uploading media for an partner requires the execution of the following APIs
- Create new Media Group
- Create Partner Media Groups
- Upload Media
- Perform Cloudinary Upload (where CRM will send all signature details)
- Cloudinary service calls back CRM media group (using an internal callback)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The media group identifier
Responses
POST https://sandbox.crm.com/backoffice/v1/partners/sdfsfsdf-32-fwef-wef-wefwef23/media_groups HTTP/1.1
Content-Type: application/json
[
{
"media_group_id": "3f1f9e63-7f40-4e5e-bc42-11a162f7f1fb"
}
]Allows to provide details about the service owner branding for the entire back-office experience
Update the service owner details
Notes
Applicable to be configured only by “Service Owner” organisations and will be applied across their business network (e.g. Businesses, Subsidiaries, Merchants)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The terms of service URL
The privacy policy URL
The pricing policy URL
Responses
Success
Body
The organisation identifier
PUT https://devapi.crm.com/backoffice/v1/service_owner HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"terms_service": "https://www.crm.com/terms-and-conditions/",
"privacy_policy": "https://www.crm.com/privacy-policy/"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "7cc1b26a-459f-4b47-a09f-6b121ae947da"
}Returns the service owner details
Notes
Service Owner Details (configured by a “Service Owner” organisation) can be retrieved from every organisation within the business network (e.g. Businesses, Subsidiaries, Merchants)
Request parameters
The organisation (service owner) cloud name
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
The public api key required for API calls to identify the organisation
Responses
The request has succeeded
Body
The default (live) public key of the service owner
Details about the service owner organisation
The organisation identifier
The organisation name
The organisation cloud name
The terms of service URL
The privacy policy URL
The pricing policy URL
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
The default service applied to each new contact that signs up and is added as a contact to the billing business.
The billing business that will house all contacts and subscriptions that sign up via self sign up.
GET https://sandbox.crm.com/backoffice/v1/service_owner?cloud_name=crmdotcom HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"public_key": "sdf3ref32rwerf324r134rw23rfd32r23r23r32r",
"organisation": {
"id": "a47fb812-9d74-392c-ee52-443cc940e014",
"name": "CRM.COM",
"cloud_name": "crmdotcom"
},
"terms_service": "https://www.crm.com/terms-and-conditions/",
"privacy_policy": "https://www.crm.com/privacy-policy/",
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"usage_type": "PROFILEIMAGE",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/logo.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/logo.jpg"
}
]
}
]
}
Tags are unique identifiers that allow users to label records of an entity. This is to help simplify sorting and accessing records. Users can create and access tags for any of their records— Leads, Contacts, Service Requests etc.
{id}{id}{id}This operation creates tags for entities.
Request body
Name of tag
Description of tag
The colour relating to the tag
The entity.
POST https://sandbox.crm.com/backoffice/v1/tags HTTP/1.1
Content-Type: application/json
{
"name": "Maintenance",
"description": "This tag relates to maintenance issues",
"colour": "75FG77",
"entity": "CONTACTS"
}{id}The following operation updates the tags for a specififc entity.
Path variables
Id of the tag to be updated
Request body
Name of the tag
Description of the tag
Colour relating to tag
State of tag
PUT https://sandbox.crm.com/backoffice/v1/tags/{id} HTTP/1.1
Content-Type: application/json
{
"name": "Maintenance",
"description": "This tag depicts that some form of maintenance is required",
"colour": "HJGHJG86876876",
"state": "ACTIVE"
}{id}This operation tags that have been created for an entity.
Path variables
The id of the tag to be deleted.
DELETE https://sandbox.crm.com/backoffice/v1/tags/{id} HTTP/1.1 This process lists the entities with tags.
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
Defines on which attribute the results should be sorted.
Defines how the results will be ordered.
The page number that should be retrieved.
The size (total records) of each page.
The entity to filter by
The state of the tag
Responses
Body
The GUID of the tag.
The entity
The state of the entity and the tags
The name of the tag
GET https://sandbox.crm.com/backoffice/v1/tags HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"sort": "CREATED_DATE, NAME",
"order": "DESC",
"page": "1",
"size": "5"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "GHFFSGD5464SFDSD",
"entity": "SERVICE_REQUESTS",
"number_of_tags": 2,
"state": "INACTIVE"
}
]
}{id}Retrieves tag details for editing.
Path variables
The tag id for editing purposes.
Responses
Body
The enitity that the tag relates to.
The state of the tag
The name of the tag
Description of tag
The colour of the tag
GET https://sandbox.crm.com/backoffice/v1/tags/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"entity": "PRODUCTS",
"state": "INACTIVE",
"name": "Maintenance",
"description": "Maintenance issues",
"colour": "GF76HHH"
}Perform actions on the time travel utility tool
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The action to be performed
Start the time travel utility tool by goind back to the origin time
Terminate the time travel utility tool and return to the current time
Travel forward in time and simulate system’s behavior
The start time of the time travel utility tool (applicable and required when action is START_AFRESH)
The destination time to which the time travel utility tool is travelling forward. Should be between the “current” destination time and present time (applicable and required when action is TRAVEL_FORWARD)
Responses
Successful Request
Start (Restart) the time travel utility tool by goind back to the origin time
PUT https://sandbox.crm.com/backoffice/v1/time_travel/actions HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"action": "START_AFRESH",
"origin_time": 1643629992
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "42d4f83f-13ec-f4a2-ad1e-874788f4942b"
}Travel forward in time and simulate system’s behavior
PUT https://sandbox.crm.com/backoffice/v1/time_travel/actions HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"action": "TRAVEL_FORWARD",
"destination_time": 1643630252
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "42d4f83f-13ec-f4a2-ad1e-874788f4942b"
}Terminate the time machine feature and return to the current time
PUT https://sandbox.crm.com/backoffice/v1/time_travel/actions HTTP/1.1
Content-Type: application/json
api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
{
"action": "TERMINATE"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "42d4f83f-13ec-f4a2-ad1e-874788f4942b"
}Get details of a specific time travel
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The start time of the time travel utility tool
The destination time to which the time travel utility tool is travelling forward. Should be between the “current” destination time and present time
Defines whether time travel is enabled or not
The current status of time travel utility tool
Time travel is in progress
Time travel has succeeded
Time travel has failed
Details about why the time travel utility tool failed
GET https://sandbox.crm.com/backoffice/v1/time_travel HTTP/1.1
api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
HTTP/1.1 200 OK
Content-Type: application/json
{
"origin_time": 1643629992,
"destination_time": 1643630252,
"is_enabled": "true",
"status": "FAILURE",
"failure_reason": "Incorrect details"
}Update the generic reward settings for an organisation
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
Details about resolution settings (which reward offers will award customers on their purchases)
Defines which reward offers will be provided
Defines only if the best instant discount offer will be provided. Applicable only if the resolution method = ALL_MATCHED_OFFERs
Defines whether awards will be restricted (not provided) when wallet (commerce) balance is spent
Details about back-end reduction settings
The refund financial transaction type that will be used for returning the reduced amount (spend) to the customers
The refund financial transaction type identifier
The refund financial transaction type name
Defines how spend amount will be refunded to the contact
Applicable only when back end reductions will be performed by a payment gateway integration
The unique identifier of the payment gateway integration
The name of the payment gateway integration
Details about reward tiers
Defines whether reward tiers are supported or not
Defines the conversion rate between real currency and value units
Defines the unit of time that tiering will be applied
Defines the interval based on which customer will be advanced/downgraded to a tier
The date when customers will be tiered for the first time
Defines whether customers can advance to the next tier as soon as the next tier’s value units are reached
Information about the reward tiers
The tier identifier
The tier name
The tier description
The tier color (used for marketing purposes)
The tier value units (inclusive)
The creative identifier
Information about the creative type
Partner logos configurable by SO, applicable for Business, Merchant, Venue
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
Applicable only for Applications
The creative width
The creative height
The creative format
The creative content URL
The creative public identifier
Information about the creative transformations
The transformed creative width
The transformed creative height
The transformed creative URL
Details about reward offer restrictions settings
Defines whether reward offer restrictions is enabled or not
Defines the offer types that will be allowed to be created
[
"MONETARY_DISCOUNT"
]Defines which spend methods are allowed
Defines the default automatic spend preferences for the organisation’s contacts
Defines whether spend preferences will be enabled on each new contact
The default wallet balance that should be set on the contact spend preferences
The default purchase amount that should be set on the contact spend preferences
Details about purchase events matching settings
The mode that will be applied on purchase matching resolution
List of all organisations that will have different match mode
Details about the organisation from where such event was posted
The organisation identifier
The organisation name
Defines how purchased products will be matched (identified): against performed by organisation or not
Defines whether purchased product matching is enabled or not
GET https://sandbox.crm.com/backoffice/v1/rewards_generic_settings HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"resolution_settings": {
"resolution_method": "ALL_MATCHED_OFFERS",
"only_best_discount": "true",
"restrict_awards": "false"
},
"reduction_settings": {
"refund_type": {
"id": "QWERTY1234543212345678UJIKY76HMK",
"name": "Back End Refund"
},
"refund_method": "PAYMENT_GATEWAY",
"integration": {
"id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"name": "Revolut"
}
},
"tier_settings": {
"enable_tier": "true",
"conversion_rate": 1000,
"tier_evaluation": "SIGN_UP_DATE",
"tier_interval": 12,
"initial_month": "JUNE",
"auto_advance": "false",
"tiers": [
{
"id": "TIER001234543212345678UJIKY76HJR",
"name": "Gold",
"description": "Gold Customers",
"color": "#d4af37",
"value_units": 150000,
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"usage_type": "ATTACHMENT",
"width": 2159,
"height": 3075,
"format": "jpg",
"url": "https://assets.crm.com/image/logo.jpg",
"public_id": "crm-com/image",
"media": [
{
"width": 200,
"height": 300,
"url": "https://asset.crm.com/image/offer/c_scale,w_200/logo.jpg"
}
]
}
]
}
]
},
"offer_restrictions_settings": {
"enable_restrictions": "true",
"allowed_offer_types": [
""
],
"allowed_spend_methods": [
"INSTANT"
]
},
"auto_spend_settings": {
"enabled": "true",
"wallet_amount": 0.01,
"purchase_amount": 0.01
}
}
Update the generic reward settings for an organisation
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Details about resolution settings (which offers will award customers)
Defines which reward offers will be provided
Defines only if the best instant discount offer will be provided. Applicable only if the resolution method = ALL_MATCHED_OFFERs
Defines whether awards will be restricted (not provided) when wallet (commerce) balance is spent
Details about reward tiers settings
Defines whether reward tiers are supported
Defines the conversion rate between real currency and value units
Defines whether the period value units will be calculated based on customers sign up date or at a configurable interval (e.g. every 12 months)
Defines the interval based on which customer will be advanced/downgraded to a tier (Applicable only if the tier evaluation is based on time interval)
The first month when customers will be tiered for the first time (Applicable only if the tier evaluation is based on time interval)
Defines whether customers can advance to the next tier as soon as the next tier’s value units are reached
Supported reward tiers
The tier identifier
The tier name
The tier description
The tier color (used for marketing purposes)
The tier value units (inclusive)
The tier related media group (identifier)
Details about back-end reduction settings
The payout financial transaction type identifier
Defines how spend amount will be refunded to the customer
Applicable and required when back-end reduction will be performed by a payment gateway integration, e.g. Revolut
Details about reward offer restrictions settings
Defines whether reward offer restrictions is enabled or not
Defines the offer types that will be allowed to be created
[
"MONETARY_DISCOUNT"
]Defines which spend methods are allowed
[
"INSTANT"
]Defines the default automatic spend preferences for the organisation’s contacts
Defines whether spend preferences will be enabled on each new contact
The default wallet balance that should be set on the contact spend preferences
The default purchase amount that should be set on the contact spend preferences
Details about purchase events matching settings
The mode that will be applied on purchase matching resolution
List of all organisations that will have different match mode
The organisation (identifier) that will have different match mode
Defines how purchased products will be matched (identified): against performed by organisation or not
Defines whether purchased product matching is enabled or not
Responses
Successful Request
Body
The organisation identifier
PUT https://sandbox.crm.com/backoffice/v1/rewards_generic_settings HTTP/1.1
Content-Type: application/json
{
"resolution_settings": {
"resolution_method": "ALL_MATCHED_OFFERS",
"only_best_discount": "true",
"restrict_awards": "true"
},
"tier_settings": {
"enable_tier": "true",
"conversion_rate": 1000,
"tier_evaluation": "SIGN_UP_DATE",
"tier_interval": 12,
"initial_month": "JANUARY",
"auto_advance": "true",
"tiers": [
{
"id": "TIER001234543212345678UJIKY76HJR",
"name": "Gold",
"description": "Gold Customers",
"color": "#d4af37",
"value_units": 150000,
"media_group_id": "3ac1788d-cead-365b-25a5-9d0854c40c1f"
}
]
},
"reduction_settings": {
"refund_type_id": "REFUND1234543212345678UJIKY76HJR",
"refund_method": "PAYMENT_GATEWAY",
"integration_id": ""
},
"offer_restrictions_settings": {
"enable_restrictions": "false",
"allowed_offer_types": [
""
],
"allowed_spend_methods": [
"ON_REQUESST"
]
},
"auto_spend_settings": {
"enabled": "true",
"wallet_amount": 0.01,
"purchase_amount": 0.01
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "a6984610-f1da-247d-83a9-a63f1c945391"
}
Set the settings related to security (e.g. password policy)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Details about back-end users password policy
Settings about password expiration
Defines whether user passwords will be expired or not
Defines in how long password will be expired (in days)
Defines in how long users will be notified for upcoming expired passwords (in days)
Settings about strong password
Defines whether strong password will be required for contacts or not
Defines whether strong password will be enhanced for users or not
The explicit strong password policy for users
The minimum length that a password should have
Details about maximum allowed concurrent sessions for Contacts and Users
Defines whether concurrent session policy will be applied
Maximum allowed concurrent sessions for Users
Details about two factor authentication
Defines whether two factor authentication will be required for users or not
Details about OIDC settings
Defines whether OIDC is enabled or not
The OIDC settings (e.g. oAuth redirection URL, scope) that will be used as part of the OIDC flow
The application (identifier) as configured in the OIDC provider (required if OIDC is enabled)
Responses
PUT https://sandbox.crm.com/backoffice/v1/security_settings HTTP/1.1
Content-Type: application/json
{
"password_policy": {
"password_expiration": {
"is_enabled": "true",
"period": 15
}
},
"concurrent_sessions_policy": {
"is_enabled": "true",
"contact_sessions": 3,
"user_sessions": 3
}
}Retrieve the settings related to security (e.g. password policy)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Details about back-end users password policy
Settings about password expiration
Defines whether user passwords will be expired or not
Defines in how long password will be expired (in days)
Defines in how long users will be notified for upcoming expired passwords (in days)
Settings about strong password
Defines whether strong password will be required for contacts or not
Defines whether strong password will be enhanced for users or not
The explicit strong password policy for users
The minimum length that a password should have
Details about maximum allowed concurrent sessions for Contacts and Users
Defines whether concurrent session policy will be applied
Maximum allowed concurrent sessions for Users
Details about OIDC settings
Defines whether OIDC is enabled or not
The OIDC settings (e.g. oAuth redirection URL, scope) that will be used as part of the OIDC flow
The application (identifier) as configured in the OIDC provider
Details about two factor authentication settings
Defines whether two factor authentication will be required for users or not
GET https://sandbox.crm.com/backoffice/v1/security_settings HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"password_policy": {
"password_expiration": {
"is_enabled": true,
"period": 15
}
},
"concurrent_sessions_policy": {
"is_enabled": "true",
"contact_sessions": 3,
"user_sessions": 3
}
}{id}{id}{id}Create a user role
Notes
Only Service Owner users can create Owner roles or roles that can be used across child business network
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The user role name
The user role description
Defines whether the role will be used as the owner role on new sign ups
Defines whether the role can be used across all child business network
The user role permissions
Responses
OK
Body
The user role identifier
POST /userroles HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"name": "Rewards Manager",
"description": "Provide full access to rewards module",
"permissions": [
"CONTACT_WRITE"
],
"is_owner": "false",
"is_default": "false"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{id}Update an existing user role
Path variables
The user role (identifer) that will be updated
Notes
Only Service Owner users can update Owner roles or roles that can be used across child business network
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The user role name
The user role description
Defines whether the role will be used as the owner role on new sign ups
Defines whether the role can be used across all child business network
The user role permissions
Responses
OK
Body
The user role identifier
PUT /userroles/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"name": "Rewards Manager",
"description": "Provide full access to rewards module",
"permissions": [
"CONTACT_WRITE"
],
"is_owner": "false",
"is_default": "false"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}{id}Delete an existing user role
Path variables
The user role (identifer) that will be deleted
Notes
Only Service Owner users can delete Owner roles or roles that can be used across child business network
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
DELETE /userroles/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK Search for user roles
Request parameters
The user role name
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
Information related to admin user roles
The user role identifier
The user role name
The user role description
Defines whether the role will be used as the owner role on new sign ups
Defines whether the role can be used across all child business network
Defines whether the role provides full access to all product areas
The page number
The number of records per page
The overal number of records
GET /userroles HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Rewards Manager",
"description": "Provides full access on Rewards module",
"is_owner": "false",
"is_default": "true",
"is_fullaccess": "false"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Get details for a single user role
Path variables
The user role (identifer) that will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
OK
Body
The user role identifier
The user role name
The user role description
The user role permissions
[
"CONTACT_READ",
"CONTACT_WRITE"
]Defines whether the role will be used as the owner role on new sign ups
Defines whether the role can be used across all child business network
Defines whether the role has full permissions
GET https://devapi.crm.com/backoffice/v1/userroles/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Rewards Manager",
"description": "Rewards module full access",
"permissions": [
"CONTACT_WRITE"
],
"is_owner": "false",
"is_default": "true",
"is_full_access": "false"
}Get the generic settings of Service Requests
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
GET https://sandbox.crm.com/backoffice/v1/service_request_settings HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"numbering_schemes": [
{
"entity": "SERVICE_REQUESTS",
"prefix": "SR",
"starting_number": "10001",
"number_of_digits": 5,
"last_number": "SR10001"
}
]
}Update generic service request settings
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Responses
PUT https://sandbox.crm.com/backoffice/v1/service_request_settings HTTP/1.1
Content-Type: application/json
{
"numbering_schemes": [
{
"entity": "SERVICE_REQUESTS",
"prefix": "",
"starting_number": "",
"number_of_digits": 1
}
]
}
HTTP/1.1 200 OK {id}{id}{id}{id}/queue_statuses/{status_id}{id}/queue_statusesCreate a queue and it’s statuses to be used for service requests.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
A unique name for the queue
The state of the queue.
The name of the queue status
The priority of the queue status
The description nof the queue status
The unique colour code relating to the status
Examples
Responses
Body
The unique identifier of the newly created queue
POST https://sandbox.crm.com/backoffice/v1/queues HTTP/1.1
Content-Type: application/json
{
"name": "Billing Issues",
"state": "Active",
"statuses": [
{
"name": "Responded to customer",
"priority": "4",
"description": "Agent has responded to customer",
"color": "FAC8890"
}
]
}{id}Update a queue and it’s statuses to be used for service requests.
Path variables
The GUID of nthe queue to be updated
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
A unique name for the queue
The state of the queue
The queues’s statuses
The GUID of the status
Queues status name
The order of the status within the queue
The description of the status
The unique colour code for representing that status
Examples
Responses
Body
The unique identifier of the newly created queue
PUT https://sandbox.crm.com/backoffice/v1/queues/74D9C84FA60F9FE407140E20F707726A HTTP/1.1
Content-Type: application/json
{
"name": "Billing Issues",
"state": "ACTIVE",
"statuses": [
{
"id": "HJGJSHG78687HGFSHJ",
"name": "Awaiting response",
"priority": "4",
"description": "The agent has responded to the customer",
"colour": "2C8EF8"
}
]
}Retrieve all queues
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Search for a queue using its name
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The GUID of the queue
The name of the queue
The life cycle state of the queue
Number of statuses that the queue comprises of
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/queues HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "74D9C84FA60F9FE407140E20F707726A",
"name": "Billing Issues",
"state": "Active",
"number_of_statuses": 5
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}Retrieve a queue and it’s statuses
Path variables
The GUID of the queue
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The GUID of the retrieved queue
The queue’s name
The life cycle state of the queue
The queue’s statuses
Queue’s status GUID
Queue’s status name
The order of the status within the queue
The decsirption of the status
The unique colour code of the status
GET https://sandbox.crm.com/backoffice/v1/queues/74D9C84FA60F9FE407140E20F707726A HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "",
"name": "Billing Issues",
"state": "Active",
"statuses": [
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "Response submitted",
"priority": 5,
"description": "A response has been submitted to he customer - awaiting response",
"colour": "FA89CB"
}
]
}
{id}Delete a queue
Path variables
The GUID of the queue to be deleted
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/queues/74D9C84FA60F9FE407140E20F707726A HTTP/1.1 {id}/queue_statuses/{status_id}DELETES a queues status
Path variables
The GUID of the queues status to be deleted
The GUID of the queue status that all service requests should be transfered to.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The new status id to transfer to.
Responses
DELETE https://sandbox.crm.com/backoffice/v1/queues/PR90C84FA60F9FE407140E20F7077277/queue_statuses/JKHFJGFJDHG875873JHGJHG HTTP/1.1
Content-Type: application/json
{
"new_status_id": "JKGFSJHGJSHG7865JGHJFGHG"
}{id}/queue_statusesRetrieves all statuses defined for queues.
Path variables
Queue id
Request body
Defines on which attribute the results should be sorted.
How results will be sorted
Page number that should be retreieved.
The size of each page.
Responses
Body
id of the queue
name of queue status
GET https://sandbox.crm.com/backoffice/v1/queues/KJHSJKHD/queue_statuses HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "KJHSDKJHDJKHS",
"name": "Awaiting customer",
"queue": {
"id": "",
"name": ""
}
}
]
}Retrieves all statuses defined for queues.
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
id of the queue
name of queue status
GET https://sandbox.crm.com/backoffice/v1/queue_statuses HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "KJHSDKJHDJKHS",
"name": "Awaiting customer",
"queue": {
"id": "",
"name": ""
},
"description": "",
"priority": 1,
"color": ""
}
]
}Prioritisation model defines the required effort for responding and resolving a service request by the user. Set up the model to be used for assigning a priority number to an issue according to its urgency and impact.
Updates to the priorities model.
Request body
Responses
PUT https://sandbox.crm.com/backoffice/v1/priority_model HTTP/1.1
Content-Type: application/json
{
"priorities": [
{
"urgency": "LOW",
"impact": "HIGH",
"priority": "MEDIUM"
}
]
}
HTTP/1.1 200 OK Retreives the priority model configured for this organisation
Request body
Responses
Body
The colour relating to the priority.
GET https://sandbox.crm.com/backoffice/v1/priorities_model HTTP/1.1
Content-Type: application/json
{
"impact": "HIGH",
"urgency": "LOW"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"priorities": [
{
"id": "JHJDGA76767",
"urgency": "LOW",
"impact": "HIGH",
"priority": "HIGH",
"colour": "87JG9H"
}
]
}The following API’s relate to the abilioty to create categories and assign them to Service Requests.
{id}{id}This API creates a category for service requests to be assigned to.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Name of category.
Unclear whether this is required.
The description of the category.
The id of the parent category.
Responses
POST https://sandbox.crm.com/backoffice/v1/sr_categories HTTP/1.1
Content-Type: application/json
{
"name": "Maintenance",
"code": "",
"descripion": "General Maintenance issues.",
"parent_id": "HJSGJHGFJHSFu7678HSHGFD"
}{id}This API updates a category for service requests to be assigned to.
Path variables
The id of the category to be updated.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Name of category.
Unclear whether this is required.
The description of the category.
The id of the parent category.
Responses
PUT https://sandbox.crm.com/backoffice/v1/sr_categories/JGDFJHGSFi7u7tJBSFHJG HTTP/1.1
Content-Type: application/json
{
"name": "Maintenance",
"code": "",
"descripion": "General Maintenance issues.",
"parent_id": "HJSGJHGFJHSFu7678HSHGFD"
}{id}This method deletes a category.
Path variables
The id of the category to be deleted.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/sr_categories/JGSFJHGSHGuy7767JHGSHJFG HTTP/1.1 Return a list of service request categories.
Request parameters
If specified, then all categories under the parent node will be returned. If not specified, then all root nodes of the tree are returned.
Returns all categories of the tree if set to True, ignoring parent_id and include_chid_nodes parameters
Search for a category based on name and description
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The id of the category.
The name of the category
unclear whether this is required.
The decsription of the category
The number of child nodes.
Details pertaining to the parent of this category.
The id of the parent category.
The name of the parent category.
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/sr_categories HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "JGSJHGHSG7765MNSH",
"name": "Physical Maintenance",
"code": "",
"description": "General Maintenance issues.",
"child_nodes": 2,
"parent": {
"id": "JKGSDJHGSiu7u6JHSDJKGH",
"name": "Maintenance"
}
}
],
"pages": {
"page": 2,
"size": 20,
"total": 5124
}
}
The following methods will be used to set alert times for service requests.
{id}/alerts{id}/alerts/{id}/alertsThe following process updates alert times for a queue type.
Path variables
The queue id
Request body
The priority relating to this alert.
The unit of time relating to the alert time.
The unit value relating to the alert time set.
Responses
Body
The GUID of the queue type.
PUT https://sandbox.crm.com/backoffice/v1/alerts HTTP/1.1
Content-Type: application/json
{
"content": [
{
"queue_id": "KJSGFJHGHJFGSHGFS",
"priority": "LOW",
"time": 4,
"unit": "DAYS"
}
]
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "JKGFSJHGHJGHJS8789"
}{id}/alerts/Retrieves the alert times set for a queue type.
Path variables
The id of the queue type
Responses
Body
The id of the alert.
The priority of the alert.
The time relating to the alert set.
The unit of time.
GET https://sandbox.crm.com/backoffice/v1/alerts/JKHSFJHGHJFSGFJHG HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "KJSGFJHGHJFGSHGFS",
"priority": "URGENT",
"time": 4,
"unit": "MONTHS"
}
]
}These methods will allow the user to set approximate closure times for service requests.
{id}/approx_close_times{id}/approx_close_times{id}/approx_close_timesThe following process updates approximate closure times for a queue type.
Path variables
The GUID of the queue type
Request body
The priority relating to this closure time.
The unit of time relating to the closure time.
The unit value relating to the closure time set.
Responses
Body
The GUID of the queue type.
PUT https://sandbox.crm.com/backoffice/v1/queues/{id}/approx_close_times HTTP/1.1
Content-Type: application/json
{
"content": [
{
"priority": "HIGH",
"time": 4,
"unit": "MONTH"
}
]
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "JKGFSJHGHJGHJS8789"
}{id}/approx_close_timesRetrieves the approximate close times times set for a queue type.
Path variables
The id of the queue type
Responses
Body
The id of the close time.
The priority relating to the close time.
The time relating to the close time set.
The unit of time.
GET https://sandbox.crm.com/backoffice/v1/queues/JKHSFJHGHJFSGFJHG/approx_close_times HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "KJSGFJHGHJFGSHGFS",
"priority": "LOW",
"time": 4,
"unit": "WEEKS"
}
]
}The following API’s relate to the ability to configure closure reasons for Service Requests
{id}{id}Creates specific closure reasons for service requests
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
POST https://sandbox.crm.com/backoffice/v1/closure_reasons HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"closure_reason": {
"name": "",
"description": ""
}
}{id}Creates specific closure reasons for service requests
Path variables
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
name of reason
description of the reason
PUT https://sandbox.crm.com/backoffice/v1/closure_reason HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
Content-Type: application/json
{
"closure_reason": {
"id": "",
"name": "reffered",
"description": "reffered to technical consultant"
}
}Retrieves all closure reasons configured for service requests.
Responses
Body
The id of the closure reason
The name of the closure reason
The description of the closure reason
GET https://sandbox.crm.com/backoffice/v1/closure_reasons HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"name": "Reffered to installer",
"description": "This service request is handed over to installation team."
}
]
}The ability to define certain requirements for the ability to create service requests from self service platforms.
{id}/application_setting{id}/application_setting{id}/application_settingThe ability to create self service settings for service requests
Path variables
queue id
Request body
Whether self service creation of service requests is enabled or disabled for use on self service platforms.
The classification name to be displayed on the self service platform for this queue. Required if state = ENABLED.
The user that is defined as the resource/owner of all service requests created from self service for this queue. Required if ENABLED.
The id of the user or team of users.
The name of the user or team
The default priority set for all service requests created for this queue type from self service.Required if ENABLED.
List of tags that shall be added to every service request created from self service. This is optional when ENABLED. This can not be defined when DISABLED.
PUT https://sandbox.crm.com/backoffice/v1/queues/{id}/application_setting HTTP/1.1
Content-Type: application/json
{
"state": "DISABLED",
"clasification": "Billing Issues",
"owner": {
"id": "JHDKJHDKJHDA",
"name": "John Smith"
},
"default_priority": {
"urgency": "LOW",
"impact": "LOW"
},
"tags": [
{
"id": "KJHSKJHDKJSHDKJSH"
}
]
}{id}/application_settingRetrieves the self service settings configured for specific queue type.
Path variables
Responses
Body
The satate of whether this queue type is enabled for use on self service
The classification name to be displayed on the self service platform for this queue. Required if state = ENABLED.
details relating to the owner that is assigned to all service requests that are created from self service for that specified queue type.
priority relating to the priority that is assigned to all service requests that are created from self service for that specified queue type.
All tags that should be added to a service request that are created from self service platforms for a specified queue type relating to a classification selected by the contact.
GET https://sandbox.crm.com/backoffice/v1/queues/{id}/application_setting HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"state": "ENABLED",
"classification": "Billing Issues",
"owner": {
"id": "JHDKJHDKJHDA",
"name": "John Smith"
},
"default_priority": {
"impact": "MEDIUM",
"urgency": "MEDIUM",
"priority": "MEDIUM"
},
"tags": [
{
"id": "KJHSKJHDKJSHDKJSH"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"state": "ENABLED",
"classification": "Billing Issues",
"owner": {
"id": "JHDKJHDKJHDA",
"name": "John Smith"
},
"default_priority": {
"impact": "MEDIUM",
"urgency": "HIGH",
"priority": "URGENT"
},
"tags": [
{
"id": "KJHSKJHDKJSHDKJSH"
}
]
}
Retrieve Subscription Settings
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Defines the deactivation process’s behaviour
Defines when the actual deactivation of a service will be performed by also considering the day and time at which the service was activated.
Deactivation will be performed during the day, regardless of the time the service was activated
Deactivation will be performed be also considering the time at which the service was activated. Service is deactivated only afte rthis time of day
Defines the automatic cancellation process’s behaviour. Services being deactivated longer than the specified minimum period of time will be automatically cancelled.
The minimum deactivation period of time duration
The unit of time for the minimum deactivation period.
Rules that describe when a subscriber is allowed to request for a cancellation of services when these are not in contract (contract period ended or service was never in contract).
Settings on when the cancellation is allowed. Once must be specified
Requires a notice period befor cancellation
Immediate cancellation allowed
Cancellation allowed only after the next billing cycle (from the next billing cycle’s start date - inclusive - and onwards)
Applicable and required only if cancellation is allowed On notice
The notice period’s duration
The notice period unit of time
Rules that describe when a subscriber is allowed to request for a cancellation of services when these are still in contract.
Settings on when the cancellation is allowed. Once must be specified
Immediate cancellation allowed
Cancellation allowed only after the cotnract end date (from the contract end date - inclusive - and onwards)
Cancellation allowed only after the next billing cycle (from the next billing cycle’s start date - inclusive - and onwards)
Rules that describe when a subscriber is allowed to request for a regret. If specified then a service can be regretted only X period after its purchase. After this period the service cannot be regretted, but it should be cancelled.
Define whether service regret is allowed or not. If the business does not want to allow service regret, then it should be set to False. If allowed, then a period should be specified
Define when a service regret is allowed, e.g. 14 days after its activation . Mandatory if regret is allowed
The regret period’s unit of time.Mandatory if regret is allowed
The date after which the allowed regret period is calculated. MAndatory if regret is allowed.
Rules that describe how often and for long a contact can request a service pause. If no rules are specified, then no restrictions are applied when pausing a service.
How many days per year a service can be paused.
Maximum allowed number of days that a service can be paused within a year
Definition of the what is a “year” which maps to the service’s first activation date
The service’s first activation date
How many times per year a service can be paused.
How many times within a year a service can be paused (regardless of each paused period’s duration)
Definition of the what is a “year”, i.e. if it’s the calencar year or a year starting from a service’s milestone like its activation date
The service’s first activation date
Restriction on the number of days for each paused period, i.e. everytime that a service is paused, the paused period will have a minimum and a maximum allowed duration. At least one of the tw settings must be specified.
The mininum number of days per paused period
The maximuum number of days per paused period
Rules that describe when a subscriber is allowed to request for a service change. A rule per service change type is allowed.
The service change type.
Settings on when the service change is allowed. Once must be specified
Immediate serice change is allowed
Service change is allowed only after the next billing cycle (from the next billing cycle’s start date - inclusive - and onwards)
Service change is allowed only after the contract end date (from the cotnract end date - inclusive - and onwards)
Rules that define the maximum number of services that a customer can subscribe to. Multiple rules can be specified but they have to be unique i.e. refer to different classification of account.
Maximum number of services that a customer can subscribed to
The account classification of the customer. If specified, then restrictions are applied only to these customers.
The account classification’s unique identifier
The account classification’s name
Rule that determines if and when a service can remain Effective or it’s eligible to move into the Effective state
Account oustanding amount threshold. Service is eligible to go into Effective state if the oustanding amount is less than or equal to the threshold. If not specified, it defaults to 0. Always set in the business’s base currency
GET https://sandbox.crm.com/backoffice/v1/subscription_settings HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"automatic_deactivations": {
"deactivation_method": "BASED_ON_DAY"
},
"automatic_cancellations": {
"minimum_period": 3,
"uot": "MONTHS"
},
"out_of_contract_cancellation": {
"allow_cancellation": "IMMEDIATELY",
"notice_period": {
"duration": "1",
"uot": "MONTHS"
}
},
"in_contract_cancellation": {
"allow_cancellation": "IMMEDIATELY"
},
"regret": {
"allow_regret": "true",
"regret_period": 14,
"uot": "DAYS",
"starting_from": "SERVICE_FIRST_EFFECTIVE_DATE"
},
"paused_period": {
"days_per_year": {
"allowed_days": 30,
"year_starting_from": "SERVICE_FIRST_EFFECTIVE_DATE"
},
"times_per_year": {
"allowed_times": 3,
"year_starting_from": "SERVICE_FIRST_EFFECTIVE_DATE"
},
"days_per_pause": {
"minimum": 3,
"maximum": 30
}
},
"service_changes": [
{
"change_type": "UPGRADE",
"allow_change": "ON_NEXT_BILLING_CYCLE"
}
],
"service_restrictions": [
{
"maximum_services": 5,
"account_classification": {
"id": "",
"name": ""
}
}
],
"activation_rule": {
"threshold": 0.01,
"currency_code": "EUR"
}
}
Updates the settings related to subscriptions
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Defines the deactivation process’s behaviour
Defines when the actual deactivation of a service will be performed by also considering the day and time at which the service was activated.
Deactivation will be performed during the day, regardless of the time the service was activated
Deactivation will be performed be also considering the time at which the service was activated. Service is deactivated only afte rthis time of day
Defines the automatic cancellation process’s behaviour. Services being deactivated longer than the specified minimum period of time will be automatically cancelled.If not specified, the automatic cancelledaitons are disabled.
The minimum deactivation period of time duration
The unit of time for the minimum deactivation period.
Rules that describe when a subscriber is allowed to request for a cancellation of services when these are not in contract (contract period ended or service was never in contract).
Settings on when the cancellation is allowed. Once must be specified
Immediate cancellation allowed
Requires a notice period befor cancellation
Cancellation allowed only after the next billing cycle (from the next billing cycle’s start date - inclusive - and onwards)
Applicable and required only if cancellation is allowed On notice
The notice period’s duration
The notice period’s unit of time
Rules that describe when a subscriber is allowed to request for a cancellation of services when these are still in contract.
Settings on when the cancellation is allowed. Once must be specified
Immediate cancellation allowed
Cancellation allowed only after the cotnract end date (from the contract end date - inclusive - and onwards)
Cancellation allowed only after the next billing cycle (from the next billing cycle’s start date - inclusive - and onwards)
Rules that describe when a subscriber is allowed to request for a regret. If specified then a service can be regretted only X period after its purchase. After this period the service cannot be regretted, but it should be cancelled.
Define whether service regret is allowed or not. If the business does not want to allow service regret, then it should be set to False. If allowed, then a period should be specified
Define when a service regret is allowed, e.g. 14 days after its activation . Mandatory if regret is allowed
The regret period’s unit of time.Mandatory if regret is allowed
The date after which the allowed regret period is calculated. MAndatory if regret is allowed.
Rules that describe how often and for long a customer can request a service pause. If no rules are specified, then no restrictions are applied when pausing a service.
How many days per year a service can be paused.
Maximum allowed number of days that a service can be paused within a year
Definition of the what is a “year”, i.e. if it’s the calencar year or a year starting from a service’s milestone like its activation date
The service’s first activation date
How many times per year a service can be paused.
How many times within a year a service can be paused (regardless of each paused period’s duration)
Definition of the what is a “year” which maps to the service’s first activation date
The service’s first activation date
Restrction on the number of days for each paused period, i.e. everytime that a service is paused, the paused period will have a minimum and a maximum allowed duration. At least one of the two settings must be specified.
The mininum number of days per paused period
The maximum number of days per paused period
Rules that describe when a subscriber is allowed to request for a service change. A rule per service change type is allowed.
Service change type
Settings on when the service change is allowed. Once must be specified
Immediate serice change is allowed
Service change is allowed only after the next billing cycle (from the next billing cycle’s start date - inclusive - and onwards)
Service change is allowed only after the contract end date (from the cotnract end date - inclusive - and onwards)
Rules that define the maximum number of services that a customer can subscribe to. Multiple rules can be specified but they have to be unique i.e. refer to different classification of account.
Maximum number of services that a customer can subscribed to
The account classification of the customer. If specified, then restrictions are applied only to these customers.
Rule that determins if and when a service can remain Effective or it’s eligible to move into the Effective state
Account oustanding amount threshold. Service is eligible to go into Effective state if the oustanding amount is less than or equal to the threshold. If not specified, it defaults to 0. Always set in the business’s base currency
Responses
PUT https://sandbox.crm.com/backoffice/v1/subscription_settings HTTP/1.1
Content-Type: application/json
{
"automatic_deactivations": {
"deactivation_method": "BASED_ON_DAY"
},
"automatic_cancellations": {
"minimum_period": 3,
"uot": "MONTHS"
},
"out_of_contract_cancellation": {
"allow_cancellation": "IMMEDIATELLY",
"notice_period": {
"duration": "",
"uot": "DAYS"
}
},
"in_contract_cancellation": {
"allow_cancellation": "ON_NEXT_BILLING_CYCLE"
},
"regret": {
"allow_regret": true,
"regret_period": 14,
"uot": "DAYS",
"starting_from": "SERVICE_FIRST_EFFECTIVE_DATE"
},
"paused_period": {
"days_per_year": {
"allowed_days": 30,
"year_starting_from": "SERVICE_FIRST_EFFECTIVE_DATE"
},
"times_per_year": {
"allowed_times": 3,
"year_starting_from": "SERVICE_FIRST_EFFECTIVE_DATE"
},
"days_per_pause": {
"minimum": 1,
"maximum": 5
}
},
"service_changes": [
{
"change_type": "UPGRADE",
"allow_change": "IMMEDIATELLY"
}
],
"service_restrictions": [
{
"maximum_services": 5,
"account_classification_id": "4dc0809f-ed91-4b68-b912-5bd6064d901e"
}
],
"activation_rule": {
"threshold": 0.01
}
}
HTTP/1.1 200 OK
Retrieve general billing settings
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Calendar billing defines whether subscribers will be billed on their services’ Annniversary or on a specific Period. In the first case, service is billind on its urchase Anniversay day of month, in the case of PEriod billing, all services among all subscribers are billing on a defined day of month
Applies Anniversary or Period Billing
Applicable and mandatory for Period billing. this is the day of month from which all services will be billed
By default services are billed only for the Effective period. This list includes any other service states which are additinally billable
["NOT_EFFECTIVE"]List of services for which the additional billable states are applied. If not specified, then all services will be additionally billed. Only termed services can be specified
The service product’s identifier
Product SKU
Product name
A set of subscription service life cycle states that will be considered as non creditable ones during billing. By default, only the Draft and Effective life cycle states are considered as non creditable
["NOT_EFFECTIVE"]List of services for which the non-creditable states are applied. If not specified, then all services will not be credited. Only termed services can be specified
The service product’s identifier
The product’s SKU
The product’s name
Defines billing rules on when and how services will be billed
By default, services are billed on their billing day of month. If this settng is specified, then servces can be billed in advance a specific period prior the next billing cycle begins
The period’s value
The period’s unit of time
Specifies whether sevice’s billing will be prorated or not
Enable service proration
The day of month used as a threshold to deide whether the service is prorated or not. If service is purchased prior this day, then the service is not prorated. Required if proratng is enabled
Defines how invoices and/or credit notes will be generated during recurring billing. If not specified, then the default financial transaction types are used.
The Invoie financial transaction’s type
The Credit Note’s financial transaction’s type
Usage Billing Settings
Defines whether usage allowance is verified when a usage record is processed or not. If set to True, then usage record is posted only if there’s remaining allowance enough to cover the record’s usage amount, otherwise it gets Rejected. If set to False, then remaining allowance is not verified on posting the record.
The default product assigned to business when signing up. Available only for then a Billing Business used in the SaaS model
The unique identifer of the product
The name of the product
GET https://sandbox.crm.com/backoffice/v1/billing_settings HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"calendar_billing": {
"type": "ANNIVERSARY",
"billing_day": 1
},
"additional_billable_states": {
"service_states": [
"NOT_EFFECTIVE"
],
"services": [
{
"id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"sku": "TV002",
"name": "TV Service"
}
]
},
"non_creditable_states": {
"service_states": [
"NOT_EFFECTIVE"
],
"services": [
{
"id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"sku": "TV001",
"name": "TV Service"
}
]
},
"rating": {
"bill_in_advance": {
"period": 3,
"uot": "DAYS"
},
"prorate_period": {
"enabled": true,
"threshold_day": 15
}
},
"invoicing": {
"invoice_type": {
"id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"name": "Invoice"
},
"credit_note_type": {
"id": "3dc0809f-ed91-4b68-b912-5bd6064d901e",
"name": "Credit Note"
}
},
"usage_billing": {
"verify_allowance": "true"
},
"default_service": {
"id": "5cc0809f-ed91-4b68-b912-5bd6064d901e",
"name": "Try It"
}
}
Update general billing settings
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Calendar billing defines whether subscribers will be billed on their services’ Annniversary or on a specific Period. In the first case, service is billind on its urchase Anniversay day of month, in the case of PEriod billing, all services among all subscribers are billing on a defined day of month
Applies Anniversary or Period Billing
Applicable and mandatory for Period billing. this is the day of month from which all services will be billed
By default services are billed only for the Effective period. This list includes any other service states which are additinally billable
["NOT_EFFECTIVE"]List of services that will be additionally billed during the specified states. Only termed service products can be specified
A set of subscription service life cycle states that will be considered as non creditable ones during billing. By default, only the Draft and Effective life cycle states are considered as non creditable
["NOT_EFFECTIVE"]List of service products identifier that will not be credtied during the specified states. Only termed service products can be specified
Defines billing rules on when and how services will be billed
By default, services are billed on their billing day of month. If this settng is specified, then servces can be billed in advance a specific period prior the next billing cycle begins
The period’s value
The period’s unit of time
Specifies whether sevice’s billing will be prorated or not
Enable service proration
The day of month used as a threshold to deide whether the service is prorated or not. If service is purchased prior this day, then the service is not prorated. Required if proratng is enabled
Defines how invoices and/or credit notes will be generated during recurring billing. If not specified, then the default financial transaction types are used.
The invoice type’s unique identifier
The credit note type’s unique identifier
Usage Billing Settings
Defines whether usage allowance is verified when a usage record is processed or not. If set to True, then usage record is posted only if there’s remaining allowance enough to cover the record’s usage amount, otherwise it gets Rejected. If set to False, then remaining allowance is not verified on posting the record.
Responses
PUT https://sandbox.crm.com/backoffice/v1/billing_settings HTTP/1.1
Content-Type: application/json
{
"calendar_billing": {
"type": "ANNIVERSARY",
"billing_day": 1
},
"additional_billable_states": {
"service_states": [
"NOT_EFFECTIVE"
],
"services": [
"4dc0809f-ed91-4b68-b912-5bd6064d901e"
]
},
"non_creditable_states": {
"service_states": [
"CANCELLED"
],
"services": [
"4dc0809f-ed91-4b68-b912-5bd6064d901e"
]
},
"rating": {
"bill_in_advance": {
"period": 3,
"uot": "DAYS"
},
"prorate_period": {
"enabled": true,
"threshold_day": 15
}
},
"invoicing": {
"invoice_type_id": "",
"credit_note_type_id": ""
},
"usage_billing": {
"verify_allowance": "true"
}
}
HTTP/1.1 200 OK
{id}{id}{id}Returns a list of subscription action categories
Request parameters
Search for action categories using their name
The business classification code of the category
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The unique identifier of the action category
The action category name
The action category description
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/action_categories HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"name": "Cancellation due to cost",
"description": "Service cancelled due to high monthly cost"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}{id}Returns a single subscription action category
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The action category name
The action category description
List of subscription actions business classification codes
The action’s behaviour code
The action’s business classification code
Applicable when business code is set to Cancel Service
Applicable when business code is set to Change Service
Applicable when business code is set to Change Service
GET https://sandbox.crm.com/backoffice/v1/action_categories/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"name": "Cancellation due to cost",
"description": "Cancellation due to high monthly cost",
"actions": [
{
"behaviour_code": "CHANGE_SERVICE",
"business_classification_code": "DOWNGRADE_SERVICE"
}
]
}Creates a new subscription action category
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The action category’s name
The action category’s description
List of subscription actions business classification codes
The behaviour code fo the action
The business classification code of the action
Applicable when business code is set to Cancel Service
Applicable when business code is set to Change Service
Applicable when business code is set to Change Service
Responses
Body
The unique identifier of the subscription action category
POST https://sandbox.crm.com/backoffice/v1/action_categories HTTP/1.1
Content-Type: application/json
{
"name": "Cancellation due to cost",
"description": "Cancellation because of high monthly cost",
"actions": [
{
"behaviour_code": "CHANGE_SERVICE",
"business_classification_code": "DOWNGRADE_SERVICE"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}{id}Updates an existing subscription action category
Path variables
The unique identifier of the subscription action category
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The action category’s name
The action category’s description
The behaviour code of the action
The business classification code of the action
Applicable when business code is se to Cancel Service
Applicable when business code is set to Change Service
Applicable when business code is set to Change Service
Responses
Body
The unique identifier of the subscription action category
PUT https://sandbox.crm.com/backoffice/v1/action_categories/{id} HTTP/1.1
Content-Type: application/json
{
"name": "Cancellation due to cost",
"description": "Cancellation because of high monthly cost",
"actions": [
{
"behaviour_code": "CHANGE_SERVICE",
"business_classification_code": "UPGRADE_SERVICE"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}{id}Deletes a subscrpion action category
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/action_categories/{id} HTTP/1.1
HTTP/1.1 200 OK List of Web aPIs for creating and managing Event-based Charges
Returns the list of event-based charges
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The unique identifier of the event-based conditional charge
Defines when the charge will be applied if the conditions are met
The charge is immediatelly invoiced
The charge is included in the upcoming bill
The event that will trigger this rule.
The expense service that will be invoiced
The unique identifier of the expense
The expense’s SKU
The expenses name
A set of conditions that should be met in order for the expense to be applied.
Unique identifer of the condition
The service should be in contract period.
The service on which the subscription eent is performed on
Define whether the condition applies for a product, a product type or a family.
The unique identifier of the product, type or family
The name of the product, type or family
The service to which a service changes to. Applicable only for Downgrade and Switch subscription events
Define whether the condition applies for a product, a product type or a family.
The unique identifier of the product, type or family
The name of the product, type or family
The condtin is met if the subscription event occurs a period before the contract ends. Applicable only if the condition is applied while the sevice is still in contract
The period’s value
The period’s unit of time
The service’s contract period, in terms of duration
The contract period’s duration
The unit of time of the contract period
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/event_based_charges HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"apply_on": "NEXT_BILLING_CYCLE",
"event": "CANCELLATION",
"expense": {
"id": "90c0809f-ed91-4b68-b912-5bd6064d901e",
"sku": "CANCEL01",
"name": "Cancellation Fee"
},
"conditions": [
{
"id": "10c0809f-ed91-4b68-b912-5bd6064d901e",
"in_contract": true,
"existing_service": {
"item_type": "TYPE",
"item_id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"item_name": "Add-ons"
},
"change_to_service": {
"item_type": "PRODUCT",
"item_id": "3dc0809f-ed91-4b68-b912-5bd6064d901e",
"item_name": "Gold"
},
"period_before_contract_ends": {
"period": "1",
"uot": "MONTHS"
},
"contract": {
"duration": 12,
"uot": "MONTHS"
}
}
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
Updates the list of event-based charges
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Defines when the charge will be applied if the conditions are met
The event that will trigger this rule.
The expense service that will be invoiced
A set of conditions that should be met in order for the expense to be applied.
The service should be in contract period.
The service on which the subscription eent is performed on
Define whether the condition applies for a product, a product type or a family.
The unique identifie rof the product, product type or family.
The service to which a service changes to. Applicable only for Downgrade and Switch subscription events
Define whether the condition applies for a product, a product type or a family.
The unique identifie rof the product, product type or family.
The condtin is met if the subscription event occurs a period before the contract ends. Applicable only if the condition is applied while the sevice is still in contract
The period’s value
The period’s unit of time
The service’s contract period, in terms of duration.
The contract period’s duration
The contract period’s unit of time
Responses
PUT https://sandbox.crm.com/backoffice/v1/event_based_charges HTTP/1.1
Content-Type: application/json
{
"content": [
{
"apply_on": "ON_NEXT_BILLING_CYCLE",
"event": "DOWNGRADE",
"expense_id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
"conditions": [
{
"in_contract": true,
"existing_service": {
"item_type": "PRODUCT",
"item_id": "4dc0809f-ed91-4b68-b912-5bd6064d901e"
},
"change_to_service": {
"item_type": "PRODUCT",
"item_id": "2ac0809f-ed91-4b68-b912-5bd6064d901e"
},
"period_before_contract_ends": {
"period": "12",
"uot": "MONTHS"
},
"contract": {
"duration": 12,
"uot": "MONTHS"
}
}
]
}
]
}
Returns a list of event-based, recurring charges
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
GET https://sandbox.crm.com/backoffice/v1/event_based_recurring_charges HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"event_to_apply": "INITIATION",
"event_to_terminate": "DISABLE_FROM_DEVICE",
"expense": {
"id": "",
"sku": "",
"name": ""
},
"conditions": [
{
"in_contract": true,
"contract_period": {
"duration": 12,
"uot": "DAYS"
},
"service": {
"item_type": "PRODUCT",
"item_id": "",
"item_name": ""
}
}
]
}
]
}
Updates the set of event-based recurring charges
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Responses
PUT https://sandbox.crm.com/backoffice/v1/event_based_recurring_charges HTTP/1.1
Content-Type: application/json
{
"content": [
{
"id": "",
"event_to_apply": "INITIATION",
"event_to_terminate": "DISABLE_FROM_DEVICE",
"expense": {
"id": "",
"sku": "",
"name": ""
},
"conditions": [
{
"in_contract": true,
"contract_period": {
"duration": 12,
"uot": "DAYS"
},
"service": {
"item_type": "PRODUCT",
"item_id": "",
"item_name": ""
}
}
]
}
]
}
HTTP/1.1 200 OK
{id}{id}Create new rule for Usage Charge Limits
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Responses
Body
The unique identfier of the new Usage Charge Limit Rule
POST https://sandbox.crm.com/backoffice/v1/usage_charge_limits HTTP/1.1
Content-Type: application/json
{
"name": "",
"usage_amount": 999.99,
"usage_records": 10,
"products": [
{
"item_type": "PRODUCT",
"item_id": "5cc0809f-ed91-4b68-b912-5bd6064d901e"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}Returns the list of Usage Charge Limits. Rules on maximum allowed un-billed-usage. Either a usage amount or number of usage records is specified per rule.
Request parameters
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Unique identifier of the Usage Charge Limit rule
The maximum allowed un-billed usage amount. Defined in default currency
The maximum allownce number of un-billed usage records
The currency of the un-billed usage amount
List of products and/or product types on which usage charge limits will be applied, i.e. once the usage of the speified products is reached, then their usage is immediatelly billed.
Define whether usage charge limit is applied per product or product type
The unique identifier of the product or product type accordingly.
The name of the product or the product type
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/usage_charge_limits HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"name": "",
"usage_amount": 999.99,
"usage_records": 10,
"currency": "EUR",
"products": [
{
"item_type": "PRODUCT",
"item_id": "5cc0809f-ed91-4b68-b912-5bd6064d901e",
"item_name": "TV Service"
}
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Returns the list of Usage Charge Limits. Rules on maximum allowed un-billed-usage. Either a usage amount or number of usage records is specified per rule.
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Responses
Body
The unique identfier of the updated sage Charge Limit Rule
PUT https://sandbox.crm.com/backoffice/v1/usage_charge_limits/{id} HTTP/1.1
Content-Type: application/json
{
"name": "",
"usage_amount": 999.99,
"usage_records": 10,
"products": [
{
"item_type": "PRODUCT",
"item_id": "5cc0809f-ed91-4b68-b912-5bd6064d901e"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}{id}Deletes a Usage Charge Limits rule.
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/usage_charge_limits/{id} HTTP/1.1
HTTP/1.1 204 No Content {id}{id}{id}Creates a new Tax Rate. A single Tax Rate can be created per Web API call.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the tax rate
The description of the tax rate
Tax rate percentage
The country at which the tax rate is applied
The tax rate’s reated tax code
The date from which the tax rate is applied. If not specified, it defaults to the date on which the rate % is set.
The type of the event
Delivered to the customer’s address
Picked up by the customer from a venue
Online sales of services
Defines whether tax rate is the default one. Default tax raes are applied when invoicing process cannot identify a tax to be applied because of missing country of agreement of contact’s billing address. Defaults to False. Only one tax rate per tax code and per country can be specified.
Responses
Body
The unique identifier of the new Tax Rate
POST https://sandbox.crm.com/backoffice/v1/tax_rates/ HTTP/1.1
Content-Type: application/json
{
"name": "Standard VAT",
"description": "Standard VAT of 20%",
"rate_percentage": 19.00,
"country_code": "GR",
"tax_code": "VAT",
"as_of_date": 1623225742,
"supply_method": "PICK_UP",
"is_default": "true"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}{id}Updates an existing Tax Rate. A single Tax Rate can be updated per Web API call.
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The name of the tax rate
The description of the tax rate
Tax rate percentage
The date from which the tax rate is applied. If not specified, it defaults to the date on which the rate % is set.
The country at which the tax rate is applied
The tax rate’s related tax code
The supply method of the order through which the product will be purchased and provided to the customer
Defines whether tax rate is the default one. Default tax raes are applied when invoicing process cannot identify a tax to be applied because of missing country of agreement of contact’s billing address. Defaults to False. Only one tax rate per tax code and per country can be specified.
A set of products on which the tax rate will be applied
The product family’s unique identifier
The unique identifier of either a product pr product family depending on the id_type selection
Define additional location conditions in free text
Town/City
State/Province/County
Responses
Body
The unique identifier of the updated Tax Rate
PUT https://sandbox.crm.com/backoffice/v1/tax_rates/{id} HTTP/1.1
Content-Type: application/json
{
"name": "Standard VAT",
"description": "Stadard VAT for 24%",
"rate_percentage": 19,
"as_of_date": 1623226230,
"country_code": "GR",
"tax_code": "VAT",
"supply_method": "DELIVERY",
"is_default": "true",
"product_conditions": [
{
"id_type": "PRODUCT",
"id": "3dc0809f-ed91-4b68-b912-5bd6064d901e"
}
],
"location_conditions": [
{
"town_city": "",
"state_province_county": ""
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}Deletes an existing Tax Rate. A single Tax Rate can be deleted per Web API call. A tax rate can be deleted only if it was never applied in an Invoice or Credit Note
Path variables
The Tax rate identifier
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
DELETE https://sandbox.crm.com/backoffice/v1/tax_rates/{id} HTTP/1.1
HTTP/1.1 200 OK Returns a list of all configured Tax Rates
Request parameters
Filters Tax Rates per country
Defines on which attribute the results should be sorted
Defines how the results will be ordered
The page number that should be retrieved
The size (total records) of each page
Search for Tax rates based on their Name or Description
The idnetifier of the product on which the tax rate is applied
The idnetifier of the product family on which the tax rate is applied
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The unique identifer of the tax rate
Tax rate name
Tax rate description
Tax rate percentage
The country of agreement at which the Tax rate is applied
The tax code
Defines whethe rthe Tax rate is the defualt one for the specified country
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/tax_rates/ HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "3FD9C84FA60F9FE407140E20F707726A",
"name": "Standard VAT",
"description": "Cyprus Standard VAT",
"rate_percentage": 1,
"country_code": "CYP",
"tax_code": "VAT",
"is_default": "true"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}Returns detailed information of a Tax Rate. A single Tax Rate is returned in each Web API call.
Path variables
The Tax rate’s identifier
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Tax Rate unique identifier
Tax Rate name
Tax Rate description
Tax Rate percentage
The date from which the tax rate is applied.
The country of agreement at which the Tax Rate will be applied
The tax code
The supply method of the order thrugh which the product will be provided to the cusotmer.
Defines whether tax rate is the default one. Default tax raes are applied when invoicing process cannot identify a tax to be applied because of missing country of agreement of contact’s billing address. Defaults to False. Only one tax rate per tax code and per country can be specified.
List of products or product families at which the tax rate will be applied
Define either a product or a product family
The identfier of the product or the product family
List of location conitions at which the tax rate will be applied. this lis tof conditions are appleid additionally compared to the rate’s Country condition. Conditions are specified in free text
Town.City
State/Privince/County
GET https://sandbox.crm.com/backoffice/v1/tax_rates/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "3FD9C84FA60F9FE407140E20F707726A",
"name": "Standard VAT",
"description": "Standard VAt for Cyprus",
"rate_percentage": 19.00,
"as_of_date": 1623227590,
"country_code": "CYP",
"tax_code": "SALES_TAX",
"supply_method": "DELIVERY",
"is_default": "true",
"product_conditions": [
{
"id_type": "PRODUCT",
"id": ""
}
],
"location_conditions": [
{
"town_city": "",
"state_province_county": ""
}
]
}
Retrieves the configured Wallet Settings that include Limits and Fees applied on performing various walet-related transactions such as Top-ups and Transfers.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
Determines whether the CRM Wallet will be automatically topped-up when used as a pament method. If enabled, the wallet is topped up using the contact’s primary account, if any
Defines the limit rules applied on specific wallet.
The name of the rule
The maximum allowed amount among all wallet-related transactions. The amount is always set to the business’s base currency
The maximum number of wallet-related transactions allowed
Limits are applied on transactions performed within the specified period of time. In all cases, the period is defined based on calendar. e.g. Montlhy refers to a calendar month
The wallet transaction type for which the limit is applied
The conditions that should be met to apply the limit
The entity’s unique identifier
The name of the entity
Defines the global fees to be applied over a period or on transactions executed against wallets
The name of the rule
The value type of the fee
The value of the fee
The event to apply the fee
The period when the fees will be applied
The UOT of the period
The transactions that the fee will be applied on
The unique identifier of the entity
The name of the entity
GET https://sandbox.crm.com/backoffice/v1/wallet_settings HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"enable_auto_topup": "true",
"limit_rules": [
{
"name": "Monthly Limits for VIP",
"maximum_amount": 9.99,
"maximum_number": 10,
"period": "DAILY",
"transaction_type": [
"TOPUP"
],
"conditions": [
{
"entity": "ACCOUNT_CLASSIFICATION",
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "VIP"
}
]
}
],
"fees_rules": [
{
"name": "VIP",
"value_type": "PERCENTGE",
"value": 0.01,
"applied_on": "TRANSACTION",
"period": 1,
"period_uot": "YEAR",
"applied_transaction": [
"TOPUP"
],
"conditions": [
{
"entity": "ACCOUNT_CLASSIFICATION",
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "Enhanced"
}
]
}
]
}
Update the wallet settings
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Determines whether the CRM Wallet will be automatically topped-up when used as a pament method. If enabled, the wallet is topped up using the contact’s primary account, if any
Defines the limit rules applied on specific wallet. Applied on all wallets unless overriden
The name of the rule
The maximum amount allowed
The maximum number of transactions allowed
The period for which the limit is applied
The wallet transaction type for which the limit is applied
The unique identifier of the entity
The name of the entity
Defines the global fees to be applied over a period or on transactions executed against wallets
The name of the rule
The value of the fee
The value type of the fee
The event to apply the fee
The period when the fees will be applied
The UOT of the period
The transactions that the fee will be applied on
The unique identifier of the entity
The name of the entity
Responses
Successful Request
PUT https://sandbox.crm.com/backoffice/v1/wallet_settings HTTP/1.1
Content-Type: application/json
{
"enable_auto_topup": "true",
"limit_rules": [
{
"name": "VIP",
"maximum_amount": 100,
"maximum_number": 1,
"period": "MONTHLY",
"transaction_type": [
"TOPUP"
],
"conditions": [
{
"entity": "ACCOUNT_CLASSIFICATION",
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "Enhanced"
}
]
}
],
"fees_rules": [
{
"name": "VIP",
"value": 0.1,
"value_type": "PERCENTAGE",
"applied_on": "PERIOD",
"period": 1,
"period_uot": "MONTH",
"applied_transaction": [
"TOPUP"
],
"conditions": [
{
"entity": "ACCOUNT_CLASSIFICATION",
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "Enhanced"
}
]
}
]
}