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 BackOffice API uses either API keys to authenticate requests or an authentication JWT token obtained from a user successful logging in
API keys can be accessed and managed in the CRM.COM Dashboard. Such 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, client-side code and so forth
All API requests must be made over HTTPS. API requests made over plain HTTP or without authentication will fail. API keys authentication is made using -H “api_key : crm_test_;dwfwgiuhjr412edws”, while User Bearer Auth is achieved using -H “Authorization: Bearer JWT_TOKEN”
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. Updating such resource can be achieved either using PUT /contact/GUID or PUT /contact/CODE.
CRM.COM uses conventional HTTP response codes and human-readable messages in JSON format to indicate the success or failure of an API request
- 2xx success status codes confirm that your request worked as expected
- 4xx error status codes indicate an error because of the information provided (e.g., a required parameter was omitted)
- 5xx error status codes are rare and indicate an error with Stripe’s servers
Please note that some 4xx errors that could be handled programmatically (e.g. a contact already exists) contain the following informaiion
- HTTP Code (programmatic consumption)
- Message (human-readable)
- Attribute (attribute that caused the error)
Below is a list of our common error codes that can be returned, along with additional information about how to resolve them
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
{id}
/accounts{id}
/accounts{id}
{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 exists) will be provided
Responses
OK
Body
The account identifier
POST https://stagingapi.crm.com/backoffice/v1/contacts/CAD1E31269B76D7A65ACCE45B2E68DFD/accounts HTTP/1.1
Content-Type: application/json
{
"classification_id": "4AD9C84FA60F9FE407140E20F707726A",
"currency_code": "USD",
"is_primary": true,
"billing_address_id": "4AD9C84FA60F9FE407140E20F707726A"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{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
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 the primary account of the contact
The account name
The Account number
The account’s life cycle state
The account’s currency
The account’s 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 billing address of the account which is the same as one of the contact’s addresses
The account’s wallet information (if available)
The wallet identifier
The wallet’s life cycle state
GET https://stagingapi.crm.com/backoffice/v1/contacts/CAD1E31269B76D7A65ACCE45B2E68DFD/accounts HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"accounts": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"is_primary": true,
"name": "Default",
"number": "AC123456",
"life_cycle _state": "ACTIVE",
"currency_code": "",
"classification": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "VIP"
},
"balance": 200,
"credit_limit": 100,
"overdue_amount": 50,
"billing_address_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"wallet": {
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"code": "1234567898767543",
"balance": 200.2,
"currency_code": "EUR",
"life_cycle_state": "CANCELLED"
}
}
]
}
{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, within the allowed range based on settings
Responses
OK
Body
The account identifier
PUT https://devapi.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
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{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/wallet balance will get transfered, in case of Termination
Responses
Successful Request
Body
The unique identifier of the account
POST /accounts/CAD1E31269B76D7A65ACCE45B2E68DFD/life_cycle_state HTTP/1.1
Content-Type: application/json
{
"life_cycle_state": "TERMINATED",
"transfer_to_account_id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{id}
/financials{id}
/members{id}
/members/{member_id}
{id}
/members/{member_id}
{id}
/members{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 ID of the latest closed accounting period
The name of the account’s latest accounting period
The opening balance brought forwards after the latest closed accounting period
The unique identifier of the Account classification
The name of the Account classification
The account’s wallet information (if available)
The wallet’s unique identifier
A unique 16-digit code that if not provided, it is auto-generated
The total balance of the wallet
The commerce balance of the wallet
The open balance of the wallet
The wallet’s life cycle state
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 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, PayPal and Account). Defaults to the primary payment method, if any.
The id of the billing address
GET https://stagingapi.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": "SUSPENDED",
"currency_code": "EUR",
"balance": 200,
"overdue_amount": 100.5,
"credit_limit": 98,
"accounting_period_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"accounting_period_name": "OCTOBER2018",
"opening_balance": 100.5,
"classification": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "VIP"
},
"wallet": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"code": "W00123456",
"balance": 150.5,
"commerce_balance": 98,
"open_balance": 1,
"life_cycle_state": "EFFECTIVE",
"minimum_balance": 9,
"limit_rules": [
{
"minimum_amount": 100.5,
"maximum_amount": 200,
"period": "ANNUAL",
"transaction_type": "TRANSFER"
}
],
"auto_topup": {
"threshold": 10.5,
"amount": 10.5,
"payment_method": "PAYPAL",
"payment_method_id": ""
}
}
],
"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"
}
}
{id}
/membersAdd new member on an account group.
Path variables
The account identifier that will add a member in its group
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The account to join
The funding scope that the account joins the group
The funded products of the member account
Responses
Successful Request
Body
The unique identifier of the account
POST https://devapi.crm.com/backoffice/v1/accounts/CAD1E31269B76D7A65ACCE45B2E68DFD/members HTTP/1.1
Content-Type: application/json
{
"member_account_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"funding_scope": "PARTIALLY",
"products": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"product_types": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"product_families": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}
/members/{member_id}
Update a member of this account group
Path variables
The account identifier that the member belongs to
The member account 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 funding scope that the account joins the group
The funded products of the member account
Responses
Successful Request
Body
The unique identifier of the account
PUT https://devapi.crm.com/backoffice/v1/accounts/CAD1E31269B76D7A65ACCE45B2E68DFD/members/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
Content-Type: application/json
{
"funding_scope": "FULLY",
"products": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"product_types": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"product_families": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}
/members/{member_id}
Remove a member account from an account group
Path variables
The account identifier that the member belongs to
The member account identifier to be removed
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 account
DELETE https://devapi.crm.com/backoffice/v1/accounts/CAD1E31269B76D7A65ACCE45B2E68DFD/members/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{id}
/membersLists the members of an account
Path variables
The account identifier for which the members 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 member account’s unique identifier
The member account’s number
The funding scope that the account joins the group
The unique identifier of the funded product
The SKU of the funded product
The unique identifier of the funded product type
The name of the funded product type
The unique identifier of the funded product family
The name of the funded product family
Responses
Successful Request
Body
The unique identifier of the account
GET https://devapi.crm.com/backoffice/v1/accounts/CAD1E31269B76D7A65ACCE45B2E68DFD/members HTTP/1.1
Content-Type: application/json
{
"members": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "AC123456",
"funding_scope": "PARTIALLY",
"products": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"sku": "ABC123"
}
],
"product_types": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "FOOD"
}
],
"product_families": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "COFFEE"
}
]
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}
/wallets{id}
{id}
/actions{id}
/balances{id}
/walletsAdd a new wallet for an existing 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 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
OK
Body
The wallet identifier
POST https://devapi.crm.com/backoffice/v1/accounts/CAD1E31269B76D7A65ACCE45B2E68DFD/wallets HTTP/1.1
Content-Type: application/json
{
"minimum_balance": 10,
"limit_rules": [
{
"limit_amount": 100,
"transaction_type": "DEBIT",
"period": "DAILY"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{id}
Update the wallet of an account
Path variables
The wallet 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 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 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, PayPal and Account). Defaults to the primary payment method, if any.
Responses
OK
Body
The wallet identifier
PUT https://stagingapi.crm.com/backoffice/v1/wallets/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
Content-Type: application/json
{
"minimum_balance": 10,
"limit_rules": [
{
"minimum_amount": 100,
"maximum_amount": 200,
"period": "DAILY",
"transaction_type": "TRANSFER"
}
],
"auto_topup": {
"threshold": 10.5,
"amount": 10.5,
"payment_method": "ACCOUNT",
"payment_method_id": ""
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{id}
/actionsChange the life cycle state of the Wallet
Path variables
The wallet 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 the life cycle state of the wallet. If selected, then all of the above will not be taken into consideration
Responses
Successful Request
Body
The unique identifier of the wallet
POST https://stagingapi.crm.com/backoffice/v1/wallets/CAD1E31269B76D7A65ACCE45B2E68DFD/actions HTTP/1.1
Content-Type: application/json
{
"action": "EFFECTIVE"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{id}
/balancesGet the wallet’s balances split per spend condition
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 se to true, then the expiration information 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
OK
Body
The amount that is allocated to the specified spend condition
The unique ID of the spend condition group
The name of the spend condition group
The organisations where the amount can be spent at
The ID of the organisation
The name of the organisation
The location of the organisation
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://stagingapi.crm.com/backoffice/v1/wallets/4AD9C84FA60F9FE407140E20F707726A/balances HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"amount": 100.5,
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "Happy Hour",
"organisations": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"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",
"googleplaceid": "ChIJrTLr-GyuEmsRBfy61i59si0"
}
]
}
],
"products": [
{
"id_type": "FAMILY",
"id": "4AD9C84FA60F9FE407140E20F707726A",
"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
}
}
]
Create a wallet debit or credit journal entry
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
The type of the journal
The description of the journal
The unique identifier of the related spend condition
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}
/rewards{id}
/rewards{id}
/merchants{id}
/merchants/{merchant_id}
{id}
/reward_schemes{id}
/reward_schemes/{reward_scheme_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
The customer’s preferred payment method identifier that will be used for spending purposes for back-end reduction rewards (applicable payment methods are direct debit and credit cards related)
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}
/rewardsRetrieve the Rewards details if a single account
Path variables
The unique identification of the Account to 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
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
The progression percentage until the next reward tier is reached
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
The customer’s preferred payment method identifier that will be used for spending purposes for back-end reduction rewards (applicable payment methods are direct debit and credit cards related)
The preferred payment method identifier
The customer’s preferred payment method identifier that will be used for spending purposes
The first six digits of the card (applicable only if the payment method type is card based)
The last four digits of the card (applicable only if the payment method type is card based)
The bank’s iban (applicable only if the payment method type is direct debit based)
GET https://devapi.crm.com/backoffice/v1/accounts/4AD9C84FA60F9FE407140E20F707726A/rewards HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"name": "John Smith AC00123456",
"number": "AC00123456",
"currency_code": "EUR",
"signed_up_on": 1583846865,
"sign_up_organisation": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "CRMdotCOM"
},
"spending_blocked_status": "false",
"spending_blocked_date": 1583846865,
"spending_blocked_user": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"email_address": "johndoe@crm.com",
"first_name": "John",
"last_name": "Doe"
},
"automatic_spend_settings": {
"automatic_spend_preference": "NEXT_MERCHANT_PURCHASE",
"minimum_wallet_balance": 0.52,
"from_purchase_amount": 1.78,
"allowed_merchants": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "CRMdotCOM"
}
]
},
"reward_tier": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Gold",
"color": "#d4af37",
"period_value_units": 222,
"lifetime_value_units": 333,
"next_tier_progression": 45.98
},
"joined_reward_schemes": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "CRMdotCOM Scheme"
"signed_up_on": 1583846865,
"email_address": "johndoe@crm.com",
"sign_up_option": "CLOSE_LOOP_SIGN_UP"
}
]
}
{id}
/merchantsAdd a set of new merchants for automatic spends for that account
Path variables
The account identifier whose reward attributes 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}
/reward_schemesSign up the account to a specific reward scheme
Path variables
The account 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 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}
{id}
{id}
/life_cycle_state{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 subject
The activity description
The organisation identifier from which a user wil be responsible to complete this activity (organisation or user should be specified)
The user identifier that is responsible to complete this activity (user should belong to the specified organisation)
Related entity details
The type of the related entity
The related entity identifier
Responses
Successful Request
Body
The activity identifier that was created
POST https://devapi.crm.com/backoffice/v1/activities HTTP/1.1
Content-Type: application/json
{
"subject": "Call customer",
"description": "We need to call the customer (after 4pm) in order to schedule a demo",
"organisation_id": "CEEE83D6E0804A30966F684B0269ROLE"
"entity": {
"type": "LEAD",
"id": "CEEE83D6E0804A30966F684B0269AD91"
}
}
{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 subject
The activity description
The organisation identifier from which a user wil be responsible to complete this activity (organisation or user should be specified)
The user identifier that is responsible to complete this activity (user should belong to the specified organisation)
Responses
Successful Request
Body
The activity identifier that was updated
PUT https://devapi.crm.com/backoffice/v1/activities/QWERTY1234543212345678UJIKY76HJR HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"subject": "Approve Offers",
"description": "Require 4 approvals for an offer",
"organisation_id": "CEEE83D6E0804A30966F684B0269ROLE"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "QWERTY1234543212345678UJIKY76HJR"
}
{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}
/life_cycle_stateUpdate an existing activity’s life cycle state
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
Responses
Successful Request
Body
The activity identifier that was updated
PUT https://devapi.crm.com/backoffice/v1/activities/QWERTY1234543212345678UJIKY76HJR/life_cycle_state HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"life_cycle_state": "COMPLETED"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "QWERTY1234543212345678UJIKY76HJR"
}
Search for activities
Request parameters
Filter based on activity state
Filter based on the related Order
Filter based on the related Lead
Filter based on the related Service Request
Filter based on the ORganisation of which users are responsible to complete it
Filter based on the User who is responsible to complete it
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 activity identifier
The activity subject
The activity description
The activity life cycle state
The organisation from which users are responsible to complete the activity
The organisation identifier
The organisation name
The user that is responsible to complete the activity
The user identifier
The user name
The page number
The number of records per page
The overal number of records
GET https://devapi.crm.com/backoffice/v1/activities HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CEEE83D6E0804A30966F684B0269AD91",
"subject": "Call customer",
"description": "We need to call the customer to arrange a demo",
"life_cycle_state": "COMPLETED",
"organisation": {
"id": "CEEE83D6ER804A30966F684B0269AD91",
"name": "MArketing"
}
"user": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "John Doe"
}
}
],
"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 subject
The activity description
The activity state
The organisation from which users are responsible to complete the activity
The organisation identifier
The organisation name
The user that is responsible to complete the activity
The user identifier
The user name
GET https://devapi.crm.com/backoffice/v1/activities/CEEE83D6E0804A30966F684B0269AD91 HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CEEE83D6E0804A30966F684B0269AD91",
"subject": "Call customer",
"description": "Arrange a call with the customer after 4pm to schedule a demo for next week",
"life_cycle_state": "PENDING",
"organisation": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"name": "Marketing"
}
}
{id}
{id}
/preview{id}
/analytics{id}
/analytics{id}
Runs a report and sends its results via email to the user who runs it
Path variables
The unique name of the report
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, Name
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
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
Responses
POST https://devapi.crm.com/backoffice/v1/reports/{id} HTTP/1.1
Content-Type: application/json
{
"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": "TEXT"
}
],
"group_by_set": [
{
"order": 1,
"label": "Type",
"key": "product_type",
"type": "NUMBER"
}
]
}
Contacts Summary Report example
POST https://devapi.crm.com/backoffice/v1/reports/contacts_summary HTTP/1.1
Content-Type: application/json
{
"format": "PDF",
"filters_set": [
{
"label": "Registered From",
"key": "registered_from",
"value": "1577879016",
"type" : "date"
},
{
"label": "Registered To",
"key": "registered_to",
"value": "1589370216",
"type" : "date"
}
],
"columns_set": [
{
"key": "code",
"type" : "text",
"label": "Code",
"order": 1
},
{
"key": "contact_name",
"type" : "text",
"label": "Name",
"order": 2
},
{
"key": "registered_on",
"type" : "date",
"label": "Registered On",
"order": 3
},
{
"key": "owned_by.name",
"type" : "text",
"label": "Owned By",
"order": 5
},
{
"key": "financials.primary_account.number",
"type" : "text",
"label": "Primary Account",
"order": 6
},
{
"key": "financials.primary_account.currency_code,financials.primary_account.balance",
"type" : "text,amount",
"label": "Account Balance",
"order": 7
},
{
"key": "financials.primary_account.currency_code,financials.primary_account.overdue_amount",
"type" : "text,amount",
"label": "Overdue Amount",
"order": 8
},
{
"key": "financials.wallet.code",
"type" : "text",
"label": "Wallet",
"order": 9
},
{
"key": "financials.wallet.wallet_currency_code,financials.wallet.balance",
"label": "Wallet Balance",
"type" : "text,amount",
"order": 10
}
],
"group_by_set": [
{
"key": "category.name",
"type" : "text",
"label": "Category",
"order": 1
}
]
}
{id}
/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 unique name of the report
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, Name
The field’s name
Responses
Body
List of columns to be displayed in the report’s preview. Maximum 10 records are included in the preview
GET https://devapi.crm.com/backoffice/v1/reports/{id}/preview HTTP/1.1
Content-Type: application/json
{
"filters_set": [
{
"key": "period_from",
"value": "This month"
}
],
"columns_set": [
{
"order": 1,
"key": "product_code",
"value": "Code"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"order": 1,
"key": "Name",
"value": "Jane Smith"
}
]
}
Preview Contacts Summary example
GET https://devapi.crm.com/backoffice/v1/reports/contacts_summary/preview HTTP/1.1
Content-Type: application/json
{
"filters_set": [
{
"key": "registered_from",
"value": "1577877342"
},
{
"key": "registered_to",
"value": "1589282142"
}
],
"columns_set": [
{
"key": "contact_name"
},
{
"key": "registered_on"
},
{
"key": "category.name"
},
{
"key": "owned_by.name"
},
{
"key": "financials.primary_account.number"
},
{
"key": "financials.primary_account.currency_symbol,financials.primary_account.balance"
},
{
"key": "financials.primary_account.currency_code,financials.primary_account.overdue_amount"
},
{
"key": "financials.wallet.number"
},
{
"key": "financials.wallet.wallet_currency_code,financials.wallet.balance"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"fields": [
{
"key": "contact_name",
"value": "Marios Ioannou11"
},
{
"key": "registered_on",
"value": "1590493499"
},
{
"key": "category.name",
"value": ""
},
{
"key": "owned_by.name",
"value": ""
},
{
"key": "financials.primary_account.number",
"value": "A10009"
},
{
"key": "financials.primary_account.currency_symbol,financials.primary_account.balance",
"value": "38.0"
},
{
"key": "financials.primary_account.currency_code,financials.primary_account.overdue_amount",
"value": "TWD 0"
},
{
"key": "financials.wallet.number",
"value": ""
},
{
"key": "financials.wallet.wallet_currency_code,financials.wallet.balance",
"value": "TWD 0.0"
}
]
},
{
"fields": [
{
"key": "contact_name",
"value": "Marios Ioannou10"
},
{
"key": "registered_on",
"value": "1590492704"
},
{
"key": "category.name",
"value": ""
},
{
"key": "owned_by.name",
"value": ""
},
{
"key": "financials.primary_account.number",
"value": "A10008"
},
{
"key": "financials.primary_account.currency_symbol,financials.primary_account.balance",
"value": "0.0"
},
{
"key": "financials.primary_account.currency_code,financials.primary_account.overdue_amount",
"value": "USD 0"
},
{
"key": "financials.wallet.number",
"value": ""
},
{
"key": "financials.wallet.wallet_currency_code,financials.wallet.balance",
"value": "USD 0.0"
}
]
},
{
"fields": [
{
"key": "contact_name",
"value": "Marios Ioannou9"
},
{
"key": "registered_on",
"value": "1590475066"
},
{
"key": "category.name",
"value": ""
},
{
"key": "owned_by.name",
"value": ""
},
{
"key": "financials.primary_account.number",
"value": "A10007"
},
{
"key": "financials.primary_account.currency_symbol,financials.primary_account.balance",
"value": "3.4"
},
{
"key": "financials.primary_account.currency_code,financials.primary_account.overdue_amount",
"value": "EUR 0"
},
{
"key": "financials.wallet.number",
"value": ""
},
{
"key": "financials.wallet.wallet_currency_code,financials.wallet.balance",
"value": "EUR 0.0"
}
]
},
{
"fields": [
{
"key": "contact_name",
"value": "George Rewards"
},
{
"key": "registered_on",
"value": "1590468310"
},
{
"key": "category.name",
"value": ""
},
{
"key": "owned_by.name",
"value": ""
},
{
"key": "financials.primary_account.number",
"value": "A10006"
},
{
"key": "financials.primary_account.currency_symbol,financials.primary_account.balance",
"value": "15.0"
},
{
"key": "financials.primary_account.currency_code,financials.primary_account.overdue_amount",
"value": "USD 0"
},
{
"key": "financials.wallet.number",
"value": ""
},
{
"key": "financials.wallet.wallet_currency_code,financials.wallet.balance",
"value": "USD 0.0"
}
]
},
{
"fields": [
{
"key": "contact_name",
"value": "Mikaela Schiza"
},
{
"key": "registered_on",
"value": "1589794026"
},
{
"key": "category.name",
"value": ""
},
{
"key": "owned_by.name",
"value": ""
},
{
"key": "financials.primary_account.number",
"value": "A10003"
},
{
"key": "financials.primary_account.currency_symbol,financials.primary_account.balance",
"value": "-10.0"
},
{
"key": "financials.primary_account.currency_code,financials.primary_account.overdue_amount",
"value": "EUR 0"
},
{
"key": "financials.wallet.number",
"value": ""
},
{
"key": "financials.wallet.wallet_currency_code,financials.wallet.balance",
"value": "EUR 0.0"
}
]
},
{
"fields": [
{
"key": "contact_name",
"value": "Marios Ioannou8"
},
{
"key": "registered_on",
"value": "1589446686"
},
{
"key": "category.name",
"value": ""
},
{
"key": "owned_by.name",
"value": ""
},
{
"key": "financials.primary_account.number",
"value": "A10001"
},
{
"key": "financials.primary_account.currency_symbol,financials.primary_account.balance",
"value": "22.0"
},
{
"key": "financials.primary_account.currency_code,financials.primary_account.overdue_amount",
"value": "CAD 0"
},
{
"key": "financials.wallet.number",
"value": ""
},
{
"key": "financials.wallet.wallet_currency_code,financials.wallet.balance",
"value": "CAD 0.0"
}
]
},
{
"fields": [
{
"key": "contact_name",
"value": "Marios Ioannou7"
},
{
"key": "registered_on",
"value": "1589396523"
},
{
"key": "category.name",
"value": ""
},
{
"key": "owned_by.name",
"value": ""
},
{
"key": "financials.primary_account.number",
"value": "A10001"
},
{
"key": "financials.primary_account.currency_symbol,financials.primary_account.balance",
"value": "0.0"
},
{
"key": "financials.primary_account.currency_code,financials.primary_account.overdue_amount",
"value": "USD 0"
},
{
"key": "financials.wallet.number",
"value": ""
},
{
"key": "financials.wallet.wallet_currency_code,financials.wallet.balance",
"value": "USD 0.0"
}
]
},
{
"fields": [
{
"key": "contact_name",
"value": "Marios Ioannou5"
},
{
"key": "registered_on",
"value": "1589374073"
},
{
"key": "category.name",
"value": ""
},
{
"key": "owned_by.name",
"value": ""
},
{
"key": "financials.primary_account.number",
"value": ""
},
{
"key": "financials.primary_account.currency_symbol,financials.primary_account.balance",
"value": ""
},
{
"key": "financials.primary_account.currency_code,financials.primary_account.overdue_amount",
"value": ""
},
{
"key": "financials.wallet.number",
"value": ""
},
{
"key": "financials.wallet.wallet_currency_code,financials.wallet.balance",
"value": ""
}
]
},
{
"fields": [
{
"key": "contact_name",
"value": "Giorgos Georgiou"
},
{
"key": "registered_on",
"value": "1589370096"
},
{
"key": "category.name",
"value": ""
},
{
"key": "owned_by.name",
"value": ""
},
{
"key": "financials.primary_account.number",
"value": ""
},
{
"key": "financials.primary_account.currency_symbol,financials.primary_account.balance",
"value": ""
},
{
"key": "financials.primary_account.currency_code,financials.primary_account.overdue_amount",
"value": ""
},
{
"key": "financials.wallet.number",
"value": ""
},
{
"key": "financials.wallet.wallet_currency_code,financials.wallet.balance",
"value": ""
}
]
},
{
"fields": [
{
"key": "contact_name",
"value": "Marios Ioannou4"
},
{
"key": "registered_on",
"value": "1589368957"
},
{
"key": "category.name",
"value": ""
},
{
"key": "owned_by.name",
"value": ""
},
{
"key": "financials.primary_account.number",
"value": ""
},
{
"key": "financials.primary_account.currency_symbol,financials.primary_account.balance",
"value": ""
},
{
"key": "financials.primary_account.currency_code,financials.primary_account.overdue_amount",
"value": ""
},
{
"key": "financials.wallet.number",
"value": ""
},
{
"key": "financials.wallet.wallet_currency_code,financials.wallet.balance",
"value": ""
}
]
}
]
}
{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
[
"visits","offers","transactions","products","awards","wallets"
]
Start of Sequence - used for sliding window
End of Sequuence used for sliding window
Children inclusion from the network
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Metric Type Requested
Timestamp base on the requested unit, in EPOCH format with YEAR-MONTH-DAY-HOUR, or YEAR-MONTH-DAY, YEAR-MONTH inteded for granularity.
The total for the given timestamp
GET https://devapi.crm.com/backoffice/v1/organisations/babc8d45-50be-4259-b1bf-c85dee46642f/analytics HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{"content" : [
{
"organisationId": "bf07da38-0d34-11ea-9518-42010a9a0003",
"organisationName": "Banana Wharf Hamble",
"purchases": [
{
"timestamp": 1588600800,
"number": 321.00
},
{
"timestamp": 1588604400,
"number": 64.00
},
{
"timestamp": 1588665600,
"number": 150.00
},
{
"timestamp": 1588672800,
"number": 36.00
},
{
"timestamp": 1588744800,
"number": 198.00
},
{
"timestamp": 1588748400,
"number": 256.00
},
{
"timestamp": 1588752000,
"number": 134.52
},
{
"timestamp": 1588755600,
"number": 165.78
},
{
"timestamp": 1588827600,
"number": 98.21
}
]
},
{
"organisationId": "cc44858b-0d34-11ea-9518-42010a9a0003",
"organisationName": "Banana Wharf Poole",
"purchases": [
{"timestamp": 1588600800,
"number": 321.00
},
{
"timestamp": 1588604400,
"number": 64.00
},
{
"timestamp": 1588665600,
"number": 150.00
},
{
"timestamp": 1588672800,
"number": 36.00
}
]
}
]}
{id}
/analyticsGet analytics for a customer
Path variables
The uique identifier of the contact
Request parameters
Which metrics are required
[
"visits","awards","transactions"
]
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The metric’s name
GET https://devapi.crm.com/backoffice/v1/contacts/babc8d45-50be-4259-b1bf-c85dee46642f/analytics HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"name": "visits",
"values": {
"hour": 1,
"today": 2,
"this_week": 2,
"this_month": 10,
"last_month": 15,
"this_quarter": 15,
"this_semester": 30,
"this_year": 45
}
}
]
Returns a list of Events logged in Mongo DW
Request parameters
Responses
Body
POST https://stagingapi.crm.com/backoffice/v1/events HTTP/1.1
HTTP/1.1 201 Created
Content-Type: application/json
{
"type": "PURCHASE",
"business": {
"id": "",
"name": ""
},
"submitted_on": 4343432132,
"submitted_day": "MONDAY",
"contact": {
"id": "fffe6dc7-dd1a-441a-a747-60f5d0c6a844"
},
"financials": {
"account": {
"id": "",
"number": "",
"name": ""
},
"wallet": {
"id": "",
"code": ""
}
},
"merchant": {
"id": "",
"name": ""
},
"venue": {
"id": "",
"name": ""
},
"subsidiary": {
"id": "",
"name": ""
},
"location": {
"city": "",
"province": "",
"country": "",
"postal_code": "",
"address_line_1":"",
"address_line_2":""
},
"transaction": {
"id": "",
"number": "",
"reference_number": "",
"notes": "",
"classification": "PURCHASE",
"life_cycle_state": "POSTED",
"total_amount": 1,
"net_amount": 1,
"tax_amount": 1,
"discount_amount": 1,
"quantity": 10,
"currency": "EUR",
"due_date": 1221213243,
"expiration_date": 1312312312,
"issue_date": 12345,
"posted_date": 2313344,
"type": {
"id": "",
"name": ""
}
},
"initiating_transaction": {
"id": "",
"number": "",
"classification": "REFERRAL",
"type": {
"id": "",
"name": ""
}
},
"award": {
"amount": 0.5,
"currency": "EUR",
"awarded_on": 1234556,
"expires_on": 123123123,
"reward_offer": {
"id": "",
"name": ""
},
"reward_scheme": {
"id": "",
"name": ""
}
},
"spend": {
"amount": 1,
"currency": "EUR",
"spend_method": "",
"instant_spend": 1,
"auto_spend": 0.5,
"on_request": 0.5
},
"rewards_sign_up": {
"sign_up_on": 1234566,
"sign_out_on": 123456,
"reward_scheme": {
"id": "",
"name": ""
}
},
"payment_information": {
"payment_method_type": "CARD",
"brand": "MASTERCARD",
"funding_type": "DEBIT"
},
"communication": {
"id": "",
"life_cycle_state": "",
"channel": ""
},
"order": {
"id":"",
"number":"",
"life_cycle_state":"NEW",
"supply_method":"DELIVERY",
"is_favorite":true,
"notes":"",
"submitted_date":12345678,
"estimated_fulfillment_date":12345678,
"completed_date":12345678,
"cancelled_date":12345678,
"expiration_date":12345678,
"requested_date":12345678,
"total_cost":2.40,
"currency":"EUR",
"cancellation_reason":{
"id":"",
"name":""
},
"category":{
"id":"",
"name":""
}
},
"products": [
{
"id": "99c90eb3-64e6-4048-b3a3-d433611cfa93",
"sku": "ABC9678",
"name": "Regular Latte",
"type": {
"id": "",
"name": ""
},
"family": {
"id": "",
"name": ""
},
"brand": {
"id": "",
"name": ""
},
"category": {
"id": "",
"name": ""
},
"quantity": 1,
"total_amount": 1,
"net_amount": 1,
"tax_amount": 1,
"discount_amount": 1,
"currrency": "GBP",
"notes":"",
"bundle_product": {
"id": "",
"sku": "",
"name": ""
}
}
]
}
Responses
Body
POST https://devapi.crm.com/backoffice/v1/contact_profiles HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"contacts": [
{
"id": "",
"code": "4234392059483233",
"type": "PERSON",
"name": "",
"surname": "",
"gender": "FEMALE",
"preferred_language": "GR",
"email": "jmith@testing.com",
"phone": "0035799435233",
"category": {
"id": "",
"name": ""
},
"industry": {
"id": "",
"name": ""
},
"industry_sectors": [
{
"id": "",
"name": ""
}
],
"birthday": {
"day": 28,
"month": 3,
"year": 1981
},
"nameday": {
"day": 23,
"month": 4
},
"location": {
"city": "Hamble",
"province": "Hampshire",
"country": "United Kingdom",
"postal_code": "PO345HD"
},
"payment_method": {
"type": "",
"funding_type": "",
"brand": ""
},
"financials": [
{
"account": {
"id": "",
"number": "",
"name": "",
"balance": 1.99,
"overdue_amount": 0.99,
"credit_limit": 100,
"currency": "EUR",
"classification": {
"id": "",
"name": ""
},
"billing_location": {
"city": "Hamble",
"province": "Hampshire",
"country": "United Kingdom",
"postal_code": "PO345HD"
},
"life_cycle_state": "",
"rewards_tier": {
"id": "",
"name": ""
},
"preferred_spending_method": ""
},
"wallet": {
"id": "",
"code": "",
"balance": "",
"life_cycle_state": ""
}
}
],
"reward_schemes":[
{
"id":"",
"name":"",
"signed_up_date":123456788
}
]
}
]
}
List of Web APIs used to retrieve informaiton displayed in Reports
Retrieves details information for a contact that perticipates in a Reward Scheme in terms of purchases, awards and spends
Request parameters
The contact’s reward tier
The contact’s category
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 full name or company name
The page number
The number of records per page
The overal number of records
GET https://stagingapi.crm.com/backoffice/v1/contact_rewards_analysis HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"name": "John Smith",
"code": "",
"loyalty_code": "123344555",
"sign_up_date": 123456789,
"tier": {
"id": "",
"name": ""
},
"category": {
"id": "",
"name": ""
},
"wallet": {
"id": "",
"code": "",
"balance": 9.99,
"currency": "EUR"
},
"purchases": {
"number": 10,
"amount": 99.99,
"days_since_last_purchase": 35,
"currency": ""
},
"awards": {
"number": 10,
"amount": 99.99,
"days_since_last_award": 35,
"currency": ""
},
"spends": {
"number": 10,
"amount": 99.99,
"days_since_last_spend": 35,
"currency": ""
}
}
],
"pages": {
"page": 2,
"size": 20,
"total": 5124
}
}
Retrieves details information for a contact and the items purchased through an Order
Request parameters
The creation date of the order
The contact’s category
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/contact_order_analysis HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"name": "John Smith",
"code": "",
"category": {
"id": "",
"name": ""
},
"number_of_orders": 4,
"total_order_amount": 10,
"average_order_value": 2.5,
"curency": "EUR",
"days_since_last_order": 3,
"preferred_supply_method": "DELIVERY",
"preferred_payment_method": "CARD"
}
],
"pages": {
"page": 2,
"size": 20,
"total": 5124
}
}
{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
Defines whether the automation is active or not
Defines the entity that its events will trigger this automation
Defines the event that will trigger this automation (filtered based on the selected entity)
Responses
Successful Request
Body
The automation identifier that was created
POST https://stagingapi.crm.com/backoffice/v1/automations HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"name": "Approve Offers",
"description": "Require 4 approvals for an offer",
"life_cycle_state": "INACTIVE",
"entity": "CONTACTS",
"event": "REGISTER_CONTACT"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "QWERTY1234543212345678UJIKY76HJR"
}
{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://devapi.crm.com/backoffice/v1/automations/QWERTY1234543212345678UJIKY76HJR HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"name": "Approve Offers",
"description": "Require 4 approvals for an offer",
"state": "INACTIVE"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "QWERTY1234543212345678UJIKY76HJR"
}
{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 life cycle state
The entity that its events triggered the automation
The event that triggered the automation
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
The entity that its events trigger the automation
The event that will trigger the automation
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
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 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 Department (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 Department (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)
Defines the sequence’s action
Defines the sequence path
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)
The action filter identifier
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)
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 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 Department (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 Department (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)
The action filter identifier
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)
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}
{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)
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)
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
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 url will be protected
The number of pending requests
The number of successful requests
The number of failed requests
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 url 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
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 url 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
}
}
{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
The actual subject of the communication sent (applicable for EMAIL and INAPP 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
Responses
The request has succeeded
Body
The communication identifier
POST https://stagingapi.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",
"subject": "New Rewards Offer",
"content": "",
"ignore_preferences": "true"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{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
The actual subject of the communication sent (if applicable)
The actual content of the communication sent
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
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 GUID of the Contact
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
The page number
The number of records per page
The overal number of records
GET https://devapi.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",
"contact_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"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..."
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{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
The language that the content is provided in (3-digits)
The subject of the communication of the rich content
The content in rich format
The content in plain format
Responses
The request has succeeded
Body
The communication template identifier
POST https://devapi.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",
"contents": [
{
"language": "ENG",
"subject": "",
"rich_content": "",
"plain_content": ""
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
Retrieves all available communication templates
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
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
The name of the communication template
The language that the content is provided in (3-digits)
The subject of the communication of the rich content
The content in rich format
The content in plain format
The page number
The number of records per page
The overal number of records
GET https://devapi.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": [
{
"name": "New Rewards Offer Template",
"contents": [
{
"language": "ENG",
"subject": "",
"rich_content": "",
"plain_content": ""
}
]
}
],
"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
The name of the communication template
The language that the content is provided in (3-digits)
The subject of the communication of the rich content
The content in rich format
The content in plain format
GET https://devapi.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
{
"name": "New Rewards Offer Template",
"contents": [
{
"language": "ENG",
"subject": "",
"rich_content": "",
"plain_content": ""
}
]
}
{id}
{id}
{id}
Creates a single communication plan
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
The communication plan’s name
The datetime that the communication plan ends running
The datetime that the communication plan will start running
The channel to send the communication in case the user has enabled more than one channels to receive communications
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)
The subject of the communication of the rich content
The content in rich format
The content in plain format
A list of integrations that will send the emails. One integration/connector per channel should be provided
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://stagingapi.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": "EMAIL",
"segments": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"contents": [
{
"language": "ENG",
"subject": "",
"rich_content": "",
"plain_content": ""
}
],
"integrations": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"frequency": "0 0 12 * * ?",
"life_cycle_state": "DRAFT"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{id}
Updates an existing communication plan
Path variables
The ID of the communication plan to be updated
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
Request body
The communication plan’s name
The datetime that the communication plan ends running
The datetime that the communication plan will start running
The channel to send the communication in case the user has enabled more than one channels to receive communications
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)
The subject of the communication of the rich content
The content in rich format
The content in plain format
A list of integrations that will send the emails. One integration/connector per channel should be provided
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://stagingapi.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": "EMAIL",
"segments": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"contents": [
{
"language": "ENG",
"subject": "",
"rich_content": "",
"plain_content": ""
}
],
"integrations": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"frequency": "0 0 12 * * ?",
"life_cycle_state": "DRAFT"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{id}
Deletes a single communication plan
Path variables
The ID of the communication plan to be deleted
Request headers
Authorization Token
The public api key required for API calls to identify the organisation
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 public api key required for API calls to identify the organisation
Responses
The request has succeeded
Body
The communication plan ID
The communication plan name
The datetime that the communication plan ends running
The datetime that the communication plan will start running
The life cycle state of the communication plan
The unique ID
The name of the integration
The Channel
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
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
The channel to send the communication in case the user has enabled more than one channels to receive communications
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)
The subject of the communication of the rich content
The content in rich format
The content in plain format
A list of integrations that will send the communications. One integration/connector per channel should be provided
The unique ID
The name of the integration
The channel
The repeat frequency provided as a cron expression pattern
The life cycle state of the communication plan
GET https://stagingapi.crm.com/backoffice/v1/communication_plans/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"name": "New Rewards Offer",
"end_date": 12345678,
"start_date": 12345678,
"preferred_channel": "SMS",
"segments": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "VIP Contacts"
}
],
"contents": [
{
"language": "ENG",
"subject": "",
"rich_content": "",
"plain_content": ""
}
],
"integrations": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Connection for Emails",
"channel": "SMS"
}
],
"frequency": "0 0 12 * * ?",
"life_cycle_state": "POSTED"
}
{id}
{id}
{id}
/activity_feed{id}
/payment_methodsCreate a new contact, either a new Person or a 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 unique ID of the contact’s category
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 birtdate year
The borthdate month
The borthdate day
Information about the company’s profile. Applicable only if contact_type is COMPANY
The company’s industry unique ID
The company’s industry sectors IDs
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
Information about the contact’s addresses
The address type
Primary address for Billing or Communication
The contact’s email address
Optional basic account settings for a financial contact
The account name
Indicates the primary account of the contact
The account classification’s GUID
The custom field’s unique key
The custom field’s value
The contact’s referral code
Responses
The request has succeeded
Body
The contact identifier
Create a contact for a person
POST https://stagingapi.crm.com/backoffice/v1/contacts HTTP/1.1
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"code": "0010202311",
"contact_type": "PERSON",
"is_tax_exempt": "false",
"company_name": "Good Burger",
"title": "Mr",
"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": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"demographics": {
"gender": "FEMALE",
"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
}
}
"addresses": [
{
"address_type": "HOME",
"is_primary": "true",
"address_line_1": "",
"address_line_2": "Thomas V",
"state_province_county": "Active",
"town_city": "",
"postal_code": "",
"country_code": "CYP"
}
],
"phones": [
{
"is_primary": true,
"country_code": "CYP",
"number": "238065437"
}
],
"email_address": "bill@gmail.com",
"accounts": [
{
"name": "",
"is_primary": true,
"credit_limit": 250,
"currency_code": "GBP",
"classification_id": ""
}
],
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
],
"referral_code": "REF123",
"loyalty_identifier": "1234567897415"
}
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 contact’s category ID
A company’s profile. Applicable only if contact_type is COMPANY
The company’s Industry ID
The company’s Industry Sectors.
The custom field’s unique key
The custom field’s value
The contact setting for receiving sms.
The contact setting for receiving emails.
Defines whether the contact is tax exempt or not
Responses
OK
Body
The updated contact’s GUID
PUT https://stagingapi.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": "4AD9C84FA60F9FE407140E20F707726A",
"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",
"industry_sectors": [
"4AD9C84FA60F9FE407140E20F707726A"
],
"profle_year": 1,
"annual_turnover": 1,
"established_on": 1,
"number_of_employees": 1,
"registration_number": "",
"registration_country": "",
"tax_reference_number": "",
"vat_registration_number": ""
},
"addresses": [
{
"id": "",
"address_type": "HOME",
"is_primary": "true",
"address_line_1": "",
"address_line_2": "Thomas V",
"state_province_county": "California",
"town_city": "",
"postal_code": "",
"country_code": "CYP"
}
],
"phones": [
{
"id": "",
"is_primary": true,
"country_code": "44",
"number": "238065437",
"phone_type": "LANDLINE"
}
],
"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"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "GUID"
}
Search For Contacts
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
The value of the search across Full Name, Company Name, Contact Code, Phone Number and Loyalty Identifier (case insensitive)
Unique Code of Contact
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
The first name of contact. Applicable only when searching for physical persons
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
The date from which the contact was registered
The date unitl which the contact was registered
The unique identifier of the organisation that owns the contact
Defines the additional metrics to be retrieved in the response (comma separated)
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
The contact type
The contact full name
The contact statutory number
The date on which the contact was registered in CRM.COM
Information about the contact’s category
The category identifier
The category name
Details about contact addresses
The address id
The address type
Defines whether the address is the primary one
Details about contact’s phone
The phone identifier
Defines whether the phone is the primary one
The contact’s email
The primary account and primary wallet (if available) of the contact. Available only if “financials” parameter is set to True
The interaction status of the contact, retrieved by REDIS
Retrieves the metrics requested
Defaults to current timestamp
Total number of Subscriptions
Defaults to current timestamp
Total number of Schemes
The Contact’s assigned KYC profile
The ID of the KYC profile
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 page number
The number of records per page
The overal number of records
GET https://stagingapi.crm.com/backoffice/v1/contacts HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"contacts": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"code": "ABC-123",
"contact_type": "PERSON",
"contact_name": "John CRM Doe",
"statutory_number": "EF00001231",
"registered_on": 1,
"category": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "VIP"
},
"addresses": [
{
"id": "60bcca96-4965-4d56-8341-cb6f5ae61803",
"address_type": "BUSINESS",
"is_primary": "true",
"address_line_1": "Elia Papakyriakou",
"address_line_2": "7 Stars Tower",
"state_province_county": "Egkomi",
"town_city": "Nicosia",
"postal_code": "2000",
"country": "CYP"
}
],
"phones": [
{
"id": "60bcca96-4965-4d56-8341-cb6f5ae61803",
"phone_type": "FAX",
"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
},
"wallet": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"code": "W132",
"life_cycle_state": "ACTIVE",
"balance": 200,
"alternative_balance": 12,
"wallet_currency_code": "EUR",
"alternative_currency_code": "PTS"
}
},
"interaction_status": "RESTING",
"metrics": {
"subscriptions": {
"timestamp": 1589791784,
"total": 2
},
"schemes": {
"timestamp": 1589791784,
"total": 2
}
},
"kyc_profile": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Standard"
},
"kyc_status": "PENDING"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}
Get Contact information for a given Contact
Path variables
The contact identifier (GUID) or code 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’s GUID
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
The category’s GUID
The contact’s dmographic information. Applicable only if the contact type is PERSON
A company’s profile. Applicable only if contact_type is COMPANY
The company’s Industry details
The company’s Industry Sectors
The address’s id
The latitude of the address
The longitude of the address
The Google textual identifier that uniquely identifies an address
The phone’s GUID
The custom field’s unique key
The custom field’s value
The contact’s email
The contact’s consent state
Defines whether the contact is anonymized
The contact’s interaction status, retrieved from REDIS
The contact’s total spend amount in the last 12 months, retrieved from REDIS
The Contact’s assigned KYC profile
The ID of the KYC profile
The name of the KYC profile
The status of the KYC profile assigned to Contact
The contact referral code
GET https://stagingapi.crm.com/backoffice/v1/contacts/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"code": "ABC-123",
"contact_type": "PERSON",
"company_name": "Louis Kozior",
"title": "Sir",
"first_name": "Louis",
"middle_name": "Aloz",
"last_name": "Kozior",
"contact_name": "Mark Johnson",
"preferred_language_code": "ENG",
"notes": "Notes",
"statutory_number": "EF-12345",
"is_tax_exempt": "true",
"category": {
"id": "GUID",
"name": "Category A"
},
"demographics": {
"gender": "FEMALE",
"country_of_residence": "",
"passport": {
"passport_number": "",
"issue_country_code": "GRC",
"expiration_date": 129876567
},
"id_details": {
"id_number": "",
"issue_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": "",
"name": ""
},
"industry_sectors": [
{
"id": "342343234234",
"name": ""
}
],
"profile_year": 1,
"annual_turnover": 1,
"established_on": 1,
"number_of_employees": 1,
"registration_number": "",
"registration_country": "",
"tax_reference_number": "",
"vat_registration_number": ""
},
"addresses": [
{
"id": "",
"address_type": "HOME",
"is_primary": "true",
"care_of": "",
"address_line_1": "",
"address_line_2": "Thomas V",
"state_province_county": "Active",
"town_city": "",
"postal_code": "",
"country": "CYP",
"lat": 35.157115,
"lon": 33.313719,
"googlePlaceId": "ChIJrTLr-GyuEmsRBfy61i59si0"
}
],
"phones": [
{
"id": "",
"phone_type": "LANDLINE",
"is_primary": true,
"country_code": "44",
"number": "238065437"
}
],
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
],
"email_address": "bill@gmail.com",
"consent_state": "ACCEPTED",
"is_anonymized": true,
"interaction_status": "DORMANT",
"total_spend": "250",
"sms_opt_out": true,
"email_opt_out": true,
"kyc_profile": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Standard"
},
"kyc_status": "VERIFIED",
"referral_code": "REF123",
"loyalty_identifier": "1234567891234"
}
{id}
/activity_feedRetrieves Contact’s activity feed
Path variables
The contact identifier that the activity will be retrieved for
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
The activity type
The created date of the activity (no time)
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 entity’s due date in case of Invoices
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
The referred by account details
The referred by account identifer
The referred by account name
The referred by account number
The page number
The number of records per page
The overal number of records
GET https://devapi.crm.com/backoffice/v1/contacts/CAD1E31269B76D7A65ACCE45B2E68DFD/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": "TRANSFER",
"direction": "INCOMING",
"notes": "This Invoice is created for November 2019",
"type": "INVOICE",
"total_amount": 200,
"currency": "EUR",
"due_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": "WALLET"
},
"transfer_dest_entity": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "W00123 John Johnson",
"type": "ACCOUNT"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{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
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 that is related with the account
Indicates which payment mehod is the contact’s primary one
Indicates which payment mehod is the contact’s backup one
Notes related to the payment method
The card’s main information. Required and applicable if the payment method type is CARD
The card name
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 of the card. Either the card number or the first 6 and last 4 digits must be specified
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 address
The state related to the card address
The country related to the card address
If set to True, then the card holder’a address is automatically set using the account’s billing address
Information regarding the card tokenization via a payment gateway
Unique Identifier such as PayPal Username
The payment gateway that tokenized the card
The card token
The page number
The number of records per page
The overal number of records
GET https://stagingapi.crm.com/backoffice/v1/contacts/CAD1E31269B76D7A65ACCE45B2E68DFD/payment_methods HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"payment_method_type": "CARD",
"is_primary": true,
"is_backup": true,
"notes": "Lorem Ipsum",
"card": {
"name": "Default Card",
"first6": "42424242",
"last4": "4242",
"card_holder_details": {
"card_holder_name": "John Alias Doe",
"address_line_1": "Elia Papakyriakou",
"address_line_2": "Tower Stars",
"address_city": "Nicosia",
"address_zip": "2000",
"address_state": "Egkomi",
"address_country": "CY",
"use_billing_address": true
},
"gateway_token": [
{
"gateway_identifier": "",
"gateway": "STRIPE",
"token": "123654789654"
}
]
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
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
{id}
/addresses{id}
/addresses/{address_id}
{id}
/addresses/{address_id}
{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
The latitude of the address
The longitude of the address
The Google textual identifier that uniquely identifies an address
Responses
Successful Request
Body
The unique identifier of the address
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
The latitude of the address
The longitude of the address
The Google textual identifier that uniquely identifies an address
Responses
Successful Request
Body
The unique identifier of the address
{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}
/kyc{id}
/kyc/verify{id}
/kycUpdate 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/verifySet 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 unique identifier of the contact
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}
/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
697665675
Responses
Successful Request
Body
The unique identifier of the phone
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
The contact’s phone number
Responses
Successful Request
Body
The unique identifier of the phone
{id}
/phones/{phone_id}
Removes a contact phone. A single phone can be removed at a time
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}
/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 identifier
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 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 that 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 of the customer
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
[
{
"id": "d8f5ee58-6949-0bd6-6218-d10d9426a04c",
"identifier": "1234567892345"
},
{
"id": "d8f5ee58-6949-0bd6-6218-d10d9426a04Q",
"identifier": "1234567892343"
}
]
{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 date on which the first uage was recorded
The platform on which the application was downloaded
The payment method that is related with the account
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 applications usage will be retrieved
The application 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}
/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 consent state to be updated
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}
/anonymizeAnonymizes a 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
Responses
Successful Request
Body
The unique identifier of the contact
POST /contacts/CAD1E31269B76D7A65ACCE45B2E68DFD/anonymize HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}
/cancel{id}
{id}
/rewardsCreate a new purchase customer event in posted life cycle state
Notes
Product SKUs and Product Families will be created automatically if they are submitted in a purchase and do not exist in CRM.COM
The supported reduction method should be provided, by specyfing such value on the API’s “reduction_method” attribute
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 contact identifier that the purchase is created for (customer identification can be made either using contact_ud or cim)
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_ud or cim)
The token that will identify the contact
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
Defines the reduction method that will be applied on spend
The purchased products. Applicable when net/tax/total amounts are not provided
The purchased product sku (semi-optional with product family)
The purchased product name
The purchase product family (semi-optional with product sku)
The purchased product net amount
The purchased product vat amount
The purchased product total amount (net and vat amount)
The purchased product 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
The merchant transactio acquiring point that the purchase was submitted from (id or code must be specified)
The transaction acquiring point identifier
The transaction acquiring point code
The venue transactio acquiring point that the purchase was submitted from (id or code must be specified)
The transaction acquiring point identifier
The transaction acquiring point code
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
The pass code
The pass one time password (if applicable)
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 spend related to requested spend requests. Applicable only for Front End Reduction
POST /purchases HTTP/1.1
Content-Type: application/json
{
"id": "CEEE83D6E0804A30966F684B0269AD91",
"cim": "4A30966F684B0269AD91",
"reference_number": "RF000001",
"payment_medium_identifier": "42424242",
"performed_on": 1572423477,
"discount_amount": 1.56,
"reduction_method": "BACK_END",
"products": [
{
"product_sku": "FREDESPR001",
"net_amount": 14.15,
"tax_amount": 1.04,
"total_amount": 15.19,
"quantity": 2
}
],
"spend_request": {
"amount": 2.12
},
"merchant_tap": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"code": "EK123456"
},
"outlet_tap": {
"id": "CEEE83D6E0804A30966F684B0269AD91",
"code": "CD123456"
}
}
{
"contact_id": "79adca27-e50d-40d2-b025-e7d4710a1053",
"reference_number": "1234567890",
"payment_medium_identifier": "42424242",
"reduction_method": "FRONT_END",
"products": [
{
"product_sku": "FREDESPR001",
"product_name": "Freddo Espresso",
"product_family": "Chocolates",
"net_amount": 1200,
"tax_amount": 0.00,
"total_amount": 1200,
"quantity": 2
}
],
"merchant_tap": {
"code": "TAP001"
},
"outlet_tap": {
"code": "TAP002"
}
}
{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 customer event identifier
POST /purchases/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 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 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
The life cycle state of the 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 customer events that have less or equal total amount as specified
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
Contact details
The contact identifier
The contact full name
The contact code
Account details
The account identifier
The account name
The account number
The purchase’s life cycle state
The reduction method that was applied on the related spend
The purchase event’s classification details
The classification identifier
The classification name
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 after discount
The organisation details at which the purchase was performed
The organisation identifier at which the purchase was performed
The organisation name at which the purchase was performed
The date on which the purchase was performed
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 customer 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 purchase identifier
The purchase reference number
The purchase’s life cycle state
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 after discount
The amount in real currency that was requested to be spend via the customer event
Contact details
The contact identifier
The contact full name
The contact code
Account details
The account identifier
The account name
The account number
The organisation from which the purchase was posted
The organisation identifier at which the purchase was performed
The organisation name at which the purchase was performed
The transaction acquiring point that captured the purchase
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
The currency that the ad hoc return was made
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 classification
The customer event classification identifier
The customer event classification name
Details about the customer event pass
The pass identifier
The pass 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 purchase customer event
Path variables
The purchase identifier whose 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
Details about the reward offer that triggered the award/spend (spend is related to an offer when is instantly spend)
The reward offer identifier
The reward offer name
The reward spend method
The award/spend amount
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
}
]
}
{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 customer 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
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 referral’s life cycle state
The referral event’s classification details
The classification identifier
The classification name
The organisation details at which the referral was performed
The organisation identifier at which the referral was performed
The organisation name at which the referral was performed
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 customer 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 referral’s life cycle state
The date on which the referral was made
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 organisation from which the purchase was posted
The organisation identifier at which the purchase was performed
The organisation name at which the purchase was performed
Information (dynamic) about the award/spend amounts
The amount in real currency that was spent via the customer event
Details about the customer event classification
The customer event classification identifier
The customer event classification name
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
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"
}
}
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 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
Responses
The request has succeeded
Body
POST https://stagingapi.crm.com/backoffice/v1/estimates/invoicing HTTP/1.1
Content-Type: application/json
{
"contact_id": "",
"account_id": "",
"supply_method": "DELIVERY",
"fulfilled_by": "",
"line_items": [
{
"product_id": "",
"bundle_product_id": "",
"quantity": 1,
"price": 9.99,
"discount_value": 1,
"discount_option": "AMOUNT",
"tax_model": "TAX_EXCLUSIVE"
}
]
}
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
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
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
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
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
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"supply_method": "DELIVERY",
"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
}
}
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",
"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"
}
]
}
],
"parent_organisation": {
"id": "b1607c37-e750-2324-ac49-6591a86f54b8",
"name": "Best Burger",
"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"
}
]
}
]
}
}
}
]
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 supply method for the order
Required for Delivery orders
Responses
The request has succeeded
Body
The uniue identifier of the order’s estimation. To be used to make a new order
POST https://sandbox.crm.com/backoffice/v1/estimates/orders HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"account_id": "1bd3e4d3-5981-209b-787d-352dcd5389a3",
"supply_method": "DELIVERY",
"fulfilled_by": "",
"requested_delivery_at": {
"time": 30,
"time_unit": "MINUTES",
"date": 12312323123
},
"address_id": "84bfd840-b520-5bde-8f0a-b36937a2fce7",
"notes": "",
"line_items": [
{
"id": "7f45ad8a-b164-2a67-eb93-8651c0f1b101",
"quantity": 1,
"price": 2.99,
"tax_model": "TAX_INCLUSIVE",
"notes": "",
"components": [
{
"id": "6e111025-002b-48d7-a675-6d9e48070b8f",
"quantity": 1,
"price": 0.5,
"tax_model": "TAX_INCLUSIVE"
}
]
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "",
"order_estimate": {
"fulfilled_by": {
"id": "3FD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Bro Burgers"
},
"estimated_delivery": {
"time_to_deliver": 1,
"uot": "minutes",
"delivered_at": 12345565
}
},
"invoice_estimate": {
"issued_date": 123456789,
"due_date": 123456789,
"currency": "EUR",
"total_net_amount": 9,
"total_discount_amount": 1,
"total_tax_amount": 0.99,
"total_amount": 9.99,
"taxes_breakdown": [
{
"tax_amount": 0.99,
"tax_rate": {
"id": "",
"name": "",
"tax_code": "VAT",
"percentage": 19
}
}
],
"line_items": [
{
"id": "7CD9C84FA60F9FE407140E20F707726A",
"sku": "",
"name": "",
"tax_model": "TAX_INCLUSIVE",
"rate_model": "TIERED",
"quantity": 1,
"unit_price": 9.99,
"net_amount": 9.99,
"discount_amount": 0.1,
"tax_amount": 0.99,
"sub_total": 9.99,
"applied_promotions": [
{
"discount_value": 0.1,
"discount_type": "AMOUNT",
"discount_amount": 0.1,
"promotion": {
"id": "0b551184-aa37-43af-646f-a40d9da017a8",
"name": ""
}
}
],
"applied_taxes": [
{
"tax_amount": 0.99,
"tax_exempt_reason": "CONTACT",
"tax_rate": {
"id": "0b551184-aa37-43af-646f-a40d9da017a8",
"name": "",
"tax_code": "VAT",
"percentage": 19
}
}
]
}
]
}
}
Returns the applicable routing rule that matches the parameters provided
Request parameters
The currency related to routing rule
The country related to the routing rule
Responses
Body
The GUID of the routing rule
The routing rule’s payment gateway
The currency code applicable for this rule
The country code applicable for this rule
GET https://stagingapi.crm.com/backoffice/v1/estimates/routing_rules HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "F8F8E9DA009A4B70BCEEB113B183456D",
"connector": "STRIPE",
"payment_method_type": "PAYPAL",
"currencies": "",
"countries": [
"GR"
]
}
Returns an estimation of a change perofrmed on a subscription service, without making the change. The estimation is based on existing services owned by thwe 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
Required when purchasing new services through an Order
Required when changing the service(s) of a subscription
If specified, then the estimation assumes the action will be performed on the specified date. If not specified, then the currnct date is used by default
Applicable and mandatory only when pausing a service
If specifed, then the estimation returns invoicing information for the next X billing cycles, otherwise the upcoming billing ccle’s information is returned only.
Applicable and mandatory only when purchasing new services through an Order
The unique identifier of the purchased service product (termed or one-time)
Applicabe only when purchasig flexible bundle termed services from the product catalogue
Applicable and mandatory when Cancelling or Regretting a service
Appicable and mandatory when Upgrading, DOwngrading or Switching an existing termed subscription service
The unique identifier of the existing subscription service
The unique dentifier of the service product to which the service is changed with
Applicable and mandatory only when Chanign the term of an existing service.
The unique identifier of the existing subscription service
Responses
Body
Defines whether the requested change is allowed or not
Returns the date on which the change can be performed. Applicable only if business rules restrict the immediate execution of an change
The subscription related to the service
Informs the start and end date of the paused period. Applicable only when pausing services
A ilst of services affected by the change. It includes the services for which the chane was requested plus any other services which might be affected (e.g. cancelling a service migth cause the automatic cancellation of dependent services)
The unique identifer of the subscription service
The state of the service prior the change
The state of the service after the change
The date until which the service will be rated
Teh service’s product
Billing estimation for the requested change
The period’s duration included in billing preview/etiamtion
The total estimated amounts for the specified period
Invoice estimation for the affected services (i.e.how the affected services will be debited during the period)
Credit estimation for the affected services (i.e.how the affected services will be credited during the period)
{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
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
A financial transcation can be created either as DRAFT or POSTED.
Responses
Successful Request
Body
The unique identifier of the financial transaction
POST https://stagingapi.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": "",
"financial_transaction_lines": [
{
"product_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"quantity": 2,
"unit_price": 10,
"discount": {
"discount_amount": 20,
"discount_percentage": 20
},
"sub_total": 200,
"devices": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]
}
],
"life_cycle_state": "POSTED"
}
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
A financial transcation can be created either as DRAFT or POSTED.
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
The invoice notes available to provide any information on the performed action
Responses
Successful Request
Body
The unique identifier of the invoice
POST https://devapi.crm.com/backoffice/v1/invoices/CAD1E31269B76D7A65ACCE45B2E68DFD/actions HTTP/1.1
Content-Type: application/json
{
"action": "REJECT",
"notes": ""
}
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
The life cycle state of the Invoices 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
The financial transaction type unique identifier
The financial transaction type name
The unique identifier of the contact that owns the Financial transaction
The full name of the contact that owns the Financial Transaction
The unique code of the contact that owns the Financial Transaction
The unique identifier of the account that owns the Financial transaction
The unique number of the account that owns the Financial Transaction
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 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
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
The page number
The number of records per page
The total number of records overall
GET https://stagingapi.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": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Invoice"
},
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"account": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "AC123456"
},
"life_cycle_state": "DRAFT",
"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": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"sku": "abc-12345",
"name": "Decoder"
},
"quantity": 2,
"unit_price": 10,
"net_amount": 10,
"discount": {
"discount_amount": 20,
"discount_percentage": 10
},
"tax_amount": 5,
"sub_total": 200,
"applied_taxes": [
{
"tax_rate": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Standard VAT",
"tax_code": "OTHER",
"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"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 100
}
}
{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
The financial transaction type unique identifier
The financial transaction type name
The unique identifier of the contact that owns the Financial transaction
The full name of the contact that owns the Financial Transaction
The unique code of the contact that owns the Financial Transaction
The unique identifier of the account that owns the Financial transaction
The unique number of the account that owns the Financial Transaction
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 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
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 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
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
Any notes of the financial transaction
GET https://stagingapi.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": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Invoice"
},
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"account": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "AC123456"
},
"life_cycle_state": "POSTED",
"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",
"financial_transaction_lines": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"product": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"sku": "abc-12345",
"name": "Decoder"
},
"quantity": 2,
"unit_price": 10,
"net_amount": 1,
"discount": {
"discount_amount": 20,
"discount_percentage": 20
},
"tax_amount": 1,
"sub_total": 200,
"applied_taxes": [
{
"tax_rate": {
"id": "",
"name": "Standard VAT",
"tax_code": "OTHER",
"percentage": 20
},
"tax_amount": 0.2,
"tax_exempt_reason": "CONTACT"
}
],
"devices": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"serial_number": "STB123456"
}
]
}
],
"taxes_breakdown": [
{
"tax_rate": {
"id": "",
"name": "",
"tax_code": "VAT",
"percentage": 1
},
"tax_amount": 7.29
}
],
"notes": ""
}
{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
The contact on which the financial transaction will be posted against to
The unique identifier of the financial transaction type 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
The amount of the payment
Any notes related to the financial transaction
A financial transcation can be created either as DRAFT or POSTED.
Indicates the method of collecting money
The contact’s actual preferred payment method. Required and mandatory only for online payments (Card, Wallet, PayPal and Account). Defaults to the primary payment method, if any.
An array of unique IDs of Invoices to be paid. Invoices or External transactions are mandatory
An array of reference numbers of external debits to be paid. Invoices or External transactions are mandatory
Responses
Successful Request
Body
The unique identifier of the financial transaction
POST https://devapi.crm.com/backoffice/v1/payments HTTP/1.1
Content-Type: application/json
{
"contact_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"type_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"reference_number": "123456",
"issued_date": 1583846865,
"posted_date": 1583846865,
"amount": 200,
"notes": "",
"life_cycle_state": "POSTED",
"payment_method": "ACCOUNT",
"payment_method_id": "",
"financial_transactions_payable": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"external_transactions_payable": [
"INV0123456"
]
}
{id}
Update a 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
A financial transcation can be created either as DRAFT or POSTED.
The method through which money will be collected
The contact’s actual preferred payment method. Applicable only for online payments (Card, Wallet, PayPal, Account).
An array of unique IDs of Invoices to be paid. Invoices or External transactions are mandatory
An array of reference numbers of external debits to be paid. Invoices or External transactions are mandatory
Responses
Successful Request
Body
The unique identifier of the financial transaction
PUT https://devapi.crm.com/backoffice/v1/payments/{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": "ACCOUNT",
"payment_method_details_id": "",
"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 Invoice
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
Responses
Successful Request
Body
The unique identifier of the payment
POST https://devapi.crm.com/backoffice/v1/payments/CAD1E31269B76D7A65ACCE45B2E68DFD/actions HTTP/1.1
Content-Type: application/json
{
"action": "CANCEL",
"payment_cancellation_type_id": "4AD9C84FA60F9FE407140E20F707726A",
"notes": ""
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
List all available Payments
Request parameters
The unique ID of the contact whose Payments belong to
The unique ID of the account 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
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’s reference number
The financial transaction type unique identifier
The financial transaction type name
The unique identifier of the contact that owns the Financial transaction
The full name of the contact that owns the Financial Transaction
The unique code of the contact that owns the Financial Transaction
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 payment’s currency
The amount of the financial transaction
The method used for collecting the money
The contact’s actual preferred payment method. Applicable only for online payments (Card, Wallet, PayPal, Account).
The contact’s payment method identifier
The payment method’s name
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 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.
Any notes of the financial transaction
The unique ID of the Payment Cancellation Financial Transaction
The financial transaction’s reference number
The page number
The number of records per page
The total number of records overall
GET https://devapi.crm.com/backoffice/v1/payments HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"reference_number": "123456",
"type": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Payment"
},
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"life_cycle_state": "REJECTED",
"issued_date": 1583846865,
"posted_date": 1583846865,
"currency_code": "EUR",
"amount": 150.5,
"payment_method": "DIRECT_DEBIT",
"payment_method_details": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "VISA",
"identifier": "******* 1212"
},
"financial_transactions_payable": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "INV123456",
"reference_number": "123456",
"posted_date": 1583846865,
"due_date": 1583846865,
"total_amount": 100.5
}
],
"external_transactions_payable": [
"INV0123456"
],
"notes": "",
"cancelled_by": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"reference_number": "123456"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 100
}
}
{id}
Get a Payment
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’s reference number
The financial transaction type unique identifier
The financial transaction type name
The unique identifier of the contact that owns the Financial transaction
The full name of the contact that owns the Financial Transaction
The unique code of the contact that owns the Financial Transaction
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 payment’s currency
The amount of the financial transaction
The method used for collecting the money
The contact’s actual preferred payment method. Applicable only for online payments (Card, Wallet, PayPal, Account).
The contact’s payment method identifier
The payment method’s name
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 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.
Any notes of the financial transaction
The unique ID of the Payment Cancellation Financial Transaction
The financial transaction’s reference number
GET https://devapi.crm.com/backoffice/v1/payments/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"reference_number": "123456",
"type": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Payment"
},
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"life_cycle_state": "PENDING_VERIFICATION",
"issued_date": 1583846865,
"posted_date": 1583846865,
"currency_code": "",
"amount": 150,
"payment_method": "CARD",
"payment_method_details": {
"id": "",
"name": "",
"identifier": "******* 1212"
},
"financial_transactions_payable": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "INV123456",
"reference_number": "123456",
"posted_date": 1583846865,
"due_date": 1583846865,
"total_amount": 100.5
}
],
"external_transactions_payable": [
"INV0123456"
],
"notes": "",
"cancelled_by": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"reference_number": "123456"
}
}
{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
A financial transcation can be created either as DRAFT or POSTED.
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
A financial transcation can be created either as DRAFT or POSTED.
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
The financial transaction type unique identifier
The financial transaction type unique identifier
The financial transaction type name
The unique identifier of the contact that owns the Financial transaction
The full name of the contact that owns the Financial Transaction
The unique code of the contact that owns the Financial Transaction
The unique identifier of the account that owns the Financial transaction
The unique number of the account that owns the Financial Transaction
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
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
The financial transaction type unique identifier
The financial transaction type unique identifier
The financial transaction type name
The unique identifier of the contact that owns the Financial transaction
The full name of the contact that owns the Financial Transaction
The unique code of the contact that owns the Financial Transaction
The unique identifier of the account that owns the Financial transaction
The unique number of the account that owns the Financial Transaction
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
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
GET https://stagingapi.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": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Credit Note"
},
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"account": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "AC123456"
},
"life_cycle_state": "POSTED",
"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": "",
"sku": "",
"name": ""
},
"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": "VAT",
"percentage": 1
},
"tax_amount": 1.5,
"tax_exempt_reason": "PRODUCT"
}
],
"devices": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"serial_number": "STB123456"
}
]
}
],
"taxes_breakdown": [
{
"tax_rate": {
"id": "",
"name": "",
"tax_code": "TAX_EXEMPT",
"percentage": 20
},
"tax_amount": 1.5
}
],
"financial_transactions_credited": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
],
"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 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
The amount of the payment
Any notes related to the financial transaction
A financial transaction can be created either as DRAFT or POSTED.
Indicates the method of refunding the account
The contact’s actual preferred payment method. Required and mandatory only for online payments (Card, Wallet, PayPal). Defaults to the primary payment method, if any.
The reason why the refunds was created
Responses
Successful Request
Body
The unique identifier of the financial transaction
POST https://devapi.crm.com/backoffice/v1/refunds HTTP/1.1
Content-Type: application/json
{
"account_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"type_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"reference_number": "123456",
"issued_date": 1583846865,
"posted_date": 1583846865,
"amount": 200,
"notes": "",
"life_cycle_state": "DRAFT",
"refund_method": "CARD",
"refund_method_id": "",
"issue_reason": "Refund money"
}
{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 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
A financial transcation can be created either as DRAFT or POSTED.
Indicates the method of refunding the account
The contact’s actual preferred payment method. Required and mandatory only for online payments (Card, Wallet, PayPal). Defaults to the primary payment method, if any.
The reason why the refund was created
Responses
Successful Request
Body
The unique identifier of the financial transaction
PUT https://devapi.crm.com/backoffice/v1/refunds/{id} HTTP/1.1
Content-Type: application/json
{
"type_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"issued_date": 1583846865,
"posted_date": 1583846865,
"amount": 200,
"notes": "",
"life_cycle_state": "DRAFT",
"refund_method": "CARD",
"refund_method_id": "",
"issue_reason": "Refund Money"
}
{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 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
The financial transaction type unique identifier
The financial transaction type name
The unique identifier of the contact that owns the Financial transaction
The full name of the contact that owns the Financial Transaction
The unique code of the contact that owns the Financial Transaction
The unique identifier of the account that owns the Financial transaction
The unique number of the account that owns the Financial Transaction
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
The contact’s payment method name
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 page number
The number of records per page
The total number of records overall
GET https://devapi.crm.com/backoffice/v1/refunds HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"number": "INV0001",
"reference_number": "123456",
"type": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Refund"
},
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"account": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "AC123456"
},
"life_cycle_state": "POSTED",
"issued_date": 1583846865,
"posted_date": 1583846865,
"amount": 150.5,
"currency": "EUR",
"refund_method": "DIRECT_DEBIT",
"refund_method_details": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "",
"identifier": "****** 1212"
},
"issue_reason": "Refund Money",
"notes": ""
}
],
"paging": {
"page": 2,
"size": 20,
"total": 100
}
}
{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 number
The financial transaction’s reference number
The financial transaction type unique identifier
The financial transaction type name
The unique identifier of the contact that owns the Financial transaction
The full name of the contact that owns the Financial Transaction
The unique code of the contact that owns the Financial Transaction
The unique identifier of the account that owns the Financial transaction
The unique number of the account that owns the Financial Transaction
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
The contact’s payment method name
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://devapi.crm.com/backoffice/v1/refunds/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"number": "INV0001",
"reference_number": "123456",
"type": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Refund"
},
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
},
"account": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "AC123456"
},
"life_cycle_state": "DRAFT",
"issued_date": 1583846865,
"posted_date": 1583846865,
"amount": 150.5,
"currency": "EUR",
"refund_method": "CARD",
"refund_method_details": {
"id": "",
"name": "",
"identifier": "****** 1212"
},
"issue_reason": "Refund Money",
"notes": ""
}
{id}
{id}
/{id}
{id}
/events{id}
/filters{id}
/breakdowns{id}
/results{id}
/resultsReturns a list of Segments
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://devapi.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": 4
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}
Get all data for a single insight
Path variables
Responses
Body
["Costa Coffee Nicosia"]
simple naming A, B, C used for ordering
Create a new segment either based on a set of criteria or by adding contacts individually
Request body
Responses
Body
The newlly created segment’s unique identifier
Group A and Group B
POST https://devapi.crm.com/backoffice/v1/segments HTTP/1.1
Content-Type: application/json
{
"name": "Marketing customers",
"description": "A list of customers that own an accoun"
}
{id}
Updates the basic information of a segment
Path variables
The segment’s unique identifier
Request body
The insight’s description
Responses
Body
The unique identifer of the updated segment
PUT https://devapi.crm.com/backoffice/v1/segments/{id} HTTP/1.1
Content-Type: application/json
{
"name": "",
"description": "List of contacts owning a non-terminated account",
"refresh_frequency": 1
}
{id}
/eventsAdds a set of conditions in a segment
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
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}
/filtersPath variables
Request body
Use Operator
Venue1,Venue2
Responses
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}
/breakdownsPath variables
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}
/resultsPath variables
Responses
Body
Temporary GUID to link child levels
ID of previous level
Level of breakdown level 0 = EVENTS
name of the property withing the group
Number of points can be used for Frequency
decimal amounts for the level
GET https://stagingapi.crm.com/backoffice/v1/insights/{id}/results HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"breakdown": {
"id": "guid123",
"parent_id": "",
"level": 1,
"property_name": "venue.name",
"property_value": "Costa Coffee Larnaca",
"count": 1,
"amount": 12.8
}
}
]
}
GET https://stagingapi.crm.com/backoffice/v1/insights/{id}/results HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"breakdown": {
"id": "guid122",
"parent_id": null,
"level": 0,
"property_name": "event",
"property_value": "purchase",
"count": 15,
"amount": 36.8
}
},
{
"breakdown": {
"id": "guid123",
"parent_id": "guid122",
"level": 1,
"property_name": "venue.name",
"property_value": "Costa Coffee Larnaca",
"count": 1,
"amount": 24.00
}
},
{
"breakdown": {
"id": "guid124",
"parent_id": "guid122",
"level": 1,
"property_name": "venue.name",
"property_value": "Costa Coffee Nicosia",
"count": 1,
"amount": 12.80
}
} ,
{
"breakdown": {
"id": "guid125",
"parent_id": "guid123",
"level": 2,
"property_name": "product.family",
"property_value": "COFFEE",
"count": 3,
"amount": 12.80
}
},
{
"breakdown": {
"id": "guid126",
"parent_id": "guid123",
"level": 2,
"property_name": "product.family",
"property_value": "SANDWICH",
"count": 2,
"amount": 11.30
}
},
{
"breakdown": {
"id": "guid127",
"parent_id": "guid124",
"level": 2,
"property_name": "product.family",
"property_value": "COFFEE",
"count": 3,
"amount": 12.80
}
},
{
"breakdown": {
"id": "guid128",
"parent_id": "guid125",
"level": 3,
"property_name": "product.sku",
"property_value": "ABC1299",
"count": 4,
"amount": 12.80
}
},
{
"breakdown": {
"id": "guid129",
"parent_id": "guid126",
"level": 3,
"property_name": "product.sku",
"property_value": "ABC1499",
"count": 4,
"amount": 11.30
}
},
{
"breakdown": {
"id": "guid129",
"parent_id": "guid127",
"level": 3,
"property_name": "product.sku",
"property_value": "ABC1299",
"count": 4,
"amount": 12.80
}
}
]
}
{id}
/resultsPath variables
Request parameters
Enum for thhe period
Responses
Body
Temporary GUID to link child levels
ID of previous level
Level of breakdown level 0 = EVENTS
name of the property withing the group
Data points for a given break-down
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}
{id}
{id}
Creates 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
The implementation’s endpoint
A description for the integration point
Defines if integration is enabled or not. Defaults to True
A set of parameters requird 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
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": "",
"description": "Utilise marketing tool",
"enabled": "true",
"parameters": [
{
"key": "API_key",
"value": "abc-123-dfe-22111",
"label": "API Key",
"type": "STRING"
}
]
}
{id}
Creates a new Integration point between CRM.COM and a 3rd party tool
Path variables
The integration identifier
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 implementation’s endpoint
A description for the integration point
Defines if integration is enabled or not.
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 point between CRM.COM and a 3rd party tool
Path variables
The integration’s GUID
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Responses
Body
The GUID of the updated integration
DELETE /integrations/87A08449A8784063814398C104452B27 HTTP/1.1
Content-Type: application/json
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "87A08449A8784063814398C104452B27"
}
Retireves a list of configured integration points between CRM.COM and 3rd party tools (enabled or not)
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The integration’s uniqe identifier
The integration’s name
The integration’s description
The 3rd party tool
Indicates if integration is enabled or not
GET /integrations/ 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": "MAILCHIMP",
"enabled": "true"
}
{id}
Retrieves a list of configured integration points between CRM.COM and 3rd party tools (enabled or not)
Path variables
The integration’s GUID
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The integration’s uniqe identifier
The integration’s name
The integration’s description
The 3rd party tool
Idnicates if 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
GET /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": "MAILCHIMP",
"enabled": "true",
"parameters": [
{
"key": "API_Key",
"value": "123458449A8784063814398C104452B27",
"label": "API key"
}
]
}
{id}
/user_profilesReturns a list of Cohorts configured in Mixpanel. Any Cohort will then be avialable 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
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 unique identifier of the Mixpanel Cohort 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 unique identifier of the newlly created segment
POST https://stagingapi.crm.com/backoffice/v1/cohorts/{id}/user_profiles HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "87A08449A8784063814398C104452B27"
}
Create a new segment in Mailchimp based on a CRM.COM segment
Request body
The segment’s identifier
Responses
Created
POST /lists HTTP/1.1
Content-Type: application/json
{
"id": "87A08449A8784063814398C104452B27"
}
HTTP/1.1 201 Created
Returns a list of the configured routing rules
Request parameters
The currency related to routing rule
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
Responses
Body
The routing rule identifier
The routing rule’s payment gateway
The currency code applicable for this rule
The country code applicable for this rule
The page number
The number of records per page
The overal number of records
GET https://stagingapi.crm.com/backoffice/v1/routing_rules HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "F8F8E9DA009A4B70BCEEB113B183456D",
"connector": "JCC",
"payment_method_type": "PAYPAL",
"currency": "",
"countries": [
"GR"
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
Updates the existing routing rules
Request body
["GR"]
Responses
PUT https://stagingapi.crm.com/backoffice/v1/routing_rules HTTP/1.1
Content-Type: application/json
{
"content": [
{
"id": "F8F8E9DA009A4B70BCEEB113B183456D",
"connector": "JCC",
"payment_method_type": "PAYPAL",
"currency": "",
"countries": [
"GR"
]
}
]
}
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
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"
]
}
]
}
Storing and managing of multiple creative assets for many entities
Responses
Create an Uploiad Signature
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Media Group to associate the Media Item with once uploaded
The media usage type
The related Cloudinary folder
Key to track Upload
Responses
POST https://devapi.crm.com/backoffice/v1/media/upload/signature HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"media_group_id": "e66896ba-db0a-41e2-8093-9aca2ae02f29",
"usage_type": "THUMBNAIL",
"folder": "offers/hero",
"tracking_key": "e668"
}
{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
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
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"estimation_id": "37b56acf-665c-1112-93fc-163b3639bcbe",
"payments": [
{
"payment_method_type": "CASH",
"paid_on": "ON_ORDER",
"payment_method_id": "5d6c838c-ef87-703c-a587-844c94b61f71",
"amount": 1,
"payment_token": ""
}
]
}
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": "",
"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 custom field’s unique key
The custom field’s value
Examples
Responses
Body
The order identifier
PUT https://sandbox.crm.com/backoffice/v1/orders/f3076649-5350-4215-9278-ba95452a72f7 HTTP/1.1
Content-Type: application/json
{
"contact_id": "f3076649-5350-4215-9278-ba95452a72f7",
"account_id": "f3076649-5350-4215-9278-ba95452a7211",
"supply_method": "DELIVERY",
"address": {
"use_primary": true,
"address_id": ""
},
"notes": "",
"fulfilled_by": "",
"category_id": "f3076649-5350-4215-9278-ba95452a72f7",
"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"
}
]
}
],
"milestones": [
{
"payment_method_type": "CASH",
"paid_on": "ON_COMPLETE",
"payment_method_id": "f3076649-5350-4215-9278-ba95452a72f7"
}
],
"requested_delivery": {
"time": 1,
"time_unit": "HOURS",
"date": 1
},
"custom_fields": [
{
"key": "back_office",
"value": "0001-12345"
}
]
}
{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
Returns a list of Orders
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
NEW
PENDING
IN_PROGRESS
COMPLETED
CANCELLED
ON_HOLD
The organisation that will fulfill the Order
The organisation assignee of an Order
The user assignee of an Order
Search for orders based on their number and contact name
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The number of items incldued in the Order
The page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/orders/ HTTP/1.1
{id}
Retrieves detailed information of an Order. A single Order is 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
The latitide of the address
The longtitude of the address
The Google textual identifier that uniquely identifies a location
The custom field’s unique key
The custom field’s value
GET https://sandbox.crm.com/backoffice/v1/orders/{id} HTTP/1.1
{id}
/actionsCreate a new Order for an existing customer. A sginel order is created 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
Same order, for the same customer, same supply method, delivery address
Print an order for preparation of order at a venue.
Applicable only on cancelling the order
Examples
Responses
PUT https://devapi.crm.com/backoffice/v1/orders/{id}/actions HTTP/1.1
Content-Type: application/json
{
"action": "START_PROGRESS",
"cancellation_reason_id": "",
"is_favorite": true
}
{id}
/network{id}
{id}
{id}
/network{id}
{id}
/switch{id}
/activity_feedCreates 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 VAT number 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/subsidiary)
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 business and merchant
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 organisation
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
Determines whether the sandbox mode is enabled or not
The organisation’s currency code (applicable for service owner/business/subsidiary)
The organisation industry identifier
The organisation industry sectors
The groups of the organisation (only Venues 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 contact information type
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
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 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
Responses
OK
Body
The organisation identifier
POST /organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/network HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"org_type": "BUSINESS",
"name": "Delicious Food Group",
"description": "Lorem Ipsum",
"vat_number": "VAT123456789",
"is_account": "true",
"is_sandbox_on": "true",
"owner": {
"first_name": "John",
"last_name": "Doe",
"identity": {
"type": "EMAIL",
"identity_challenge": "jd@crm.com",
"identity_value": "12345"
},
"contact_info": [
{
"name": "",
"type": "EMAIL",
"value": "jd@crm.com"
}
]
},
"contact_infos": [
{
"name": "Main Office",
"type": "EMAIL",
"value": "johndoe@deliciousfood.com"
}
],
"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"
}
],
"taps": [
{
"name": "POS",
"code": "02451",
"is_active": "true",
"is_default": "true"
}
]
}
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
Notes
It is possible to supply a partial body so that only supplied items 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
The VAT number of the organisation
Determines whether the sandbox mode is enabled or not
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 Venues 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
Responses
OK
Body
The organisation identifier
PUT https://devapi.crm.com/backoffice/v1/organisations/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
Content-Type: application/json
{
"name": "Delicious Food Group",
"description": "Lorem Ipsum",
"vat_number": "VAT123456789",
"is_sandbox_on": "true",
"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"
}
{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
Successful Request
DELETE /organisations/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
HTTP/1.1 200 OK
{id}
/networkRetrieve all organisations
Path variables
Parent organisation whose child organisations will be retrieved
Request parameters
Filter based on the organisation’s name
Filter based on the organisation’s relationship
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
Filter based on the organisation’s business activity
Filter based on the organisation’s area
Filter based on the organisation’s country
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)
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
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 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
}
}
{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
A unique identifier that identifies the primary business of the network. All child organisations of the primary business will have the same account_id as specified on their parent
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 contact detail name
The contact detail type
The contact detail value
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
Information about the organisation’s
The industry identifier
The industry name
Information about the organisation’s industry sectors
The industry sector identifier
The industry sector name
Information about the organisation’s business activities
The bussiness 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
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
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
GET /organisations/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Delicious Bite",
"description": "Lorem Ipsum",
"org_type": "OPERATOR",
"test_mode": "false",
"is_sandbox_on": "false",
"account_id": "11",
"is_account": "false",
"org_group": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Dining"
},
"contact_info": {
"contact_info": [
{
"name": "Main Office",
"type": "EMAIL",
"value": "johndoe@deliciousfood.com"
}
]
},
"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"
},
"taps": [
{
"name": "POS Egkomis",
"code": "P123",
"is_active": "true"
}
],
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"type": "ATTACHMENT",
"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}
/switchSwitch the user to another organisation
Path variables
The organisation identifier that will be switched to
Notes
As part of “masquerade” flow, the user will have the same role as the one from the initial organisation that such user signed in
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}
/activity_feedGet the activity feed of a single organisation
Path variables
The organisation identifier that the activity will be retrieved for
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}
/apikeys{id}
/apikeys/{apikey_id}
{id}
/apikeys/{apikey_id}
{id}
/apikeys{id}
/apikeys/{apikey_id}
{id}
/apikeys/{apikey_id}
{id}
/apikeysCreate an API Key for a specific organisation
Path variables
The organisation identifier where an API Key will be created
Notes
New API Keys are created as Active
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 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 whose api key will be deleted
The api key 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 /organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/apikeys/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
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 environment
Filter based on the api key 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
Filters the default API Key
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
The api key type
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 /organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/apikeys HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "API1E31269B76D7A65ACCE45B2E68DFD",
"name": "Registration Name",
"type": "PUBLIC",
"is_active": "true",
"public_key": "API1E31269B76D"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}
/apikeys/{apikey_id}
Get details of a single API Key
Path variables
The organisation 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
The api key type
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 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 the 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
Information about the business activities
The business activity identifier
The business activity name
GET /organisations/businessactivities HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": ""
}
]
}
{id}
/operation_details{id}
/operation_details{id}
/operation_detailsUpdate an organisation’s opening hours
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
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_detailsUpdate an organisation’s opening hours
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
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}
{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
OK
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
GET /organisationgroups/ HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "API1E31269B76D7A65ACCE45B2E68DFD",
"name": "Nicosia Dinners",
"description": "Lorem Ipsum"
}
]
}
{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}
/locations{id}
/locations/{location_id}
{id}
/locations/{location_id}
{id}
/locationsAdd a new location for an existing 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 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 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 that will be updated
The organisation’s location 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 /organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/locationsCAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
{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
Only users of Cloud Operator/Service Owner/Business/Subsidiary organisations can set a Reward Commercial Terms for a Merchant organisation Only Merchant Organisation can have a Reward Commercial Terms
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 management fee that the organisation contributes to the business on each award
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
Defines whether expired (non spend) awards will be credited back
Defines whether customer self-service purchases will be supported
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 management fee that the organisation contributes to the business on each award
Defines the contribution fee that the organisation will cover on each award
Explicit contribution that will overwrite the default one
On which entity 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
Defines whether expired (non spend) awards will be credited back
Defines whether customer self-service purchases will be supported
GET https://stagingapi.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_AWARD",
"management_fee": 99.99,
"default_contribution": 99.99,
"credit_expired_awards": "true",
"explicit_contributions": [
{
"type": "REWARD_OFFER",
"id": "39081643-21b5-4782-a149-69a8bbc744be",
"name": "1% cashback on all products",
"contribution": 49.99
}
],
"customer_selfservice_purchases": "true"
}
{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 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 name
The transaction acquiring point code
Determines whether the transaction acquiring point is active or not
The transaction acquiring point description
External IP address of Device
Port of the External IP
Type of TAP
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 that will be updated
The transaction acquiring point 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
Type of TAP
Responses
OK
Body
The organisation’s 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’s transaction acquiring point that will be deleted
The transaction acquiring point 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
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 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 transaction acquiring points of an organisation
The transaction acquiring point identifier
The transaction acquiring point name
The transaction acquiring point code
Defines whether the the transaction acquiring point is active or not
The transaction acquiring point description
IP address of External Device
Port of the External IP
Type of TAP
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
}
}
{id}
/taps{tap_id}
Get details for a transaction acquiring point
Path variables
The organisation whose transaction acquiring point will be retrieved
The transaction acquiring point 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 transaction acquiring points of an organisation
The transaction acquiring point identifier
The transaction acquiring point name
The transaction acquiring point code
Defines whether the the transaction acquiring point is active or not
The transaction acquiring point description
IP address of External Device
Port of the External IP
Type of TAP
GET https://devapi.crm.com/backoffice/v1/organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/tapsTAP1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": {
"id": "TAP1E31269B76D7A65ACCE45B2E68DFD",
"name": "POS",
"code": "0012465",
"is_active": "true",
"description": "pos system"
}
}
{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 supports BANK, CREDIT / DEBIT cards, or Payment Gateways such as Paypal.
Path variables
The organisation identifier or code 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
Unique identifier for the payment method, if not specified it will be auto generated
The payment method’s type
Notes related to te payment method
Marks the payment method as the organisation’s primary one
Marks the payment method as the backup
The bank details.Required and applicable if the payment method is set to BANK
The bank account number. Either the bank account number or IBAN must be specified
The IBAN code. Either the bank account number or IBAN must be specified
The card’s main information. Required and applicable if the payment method type is CARD
The card’s name
The card’s brand
Card number with obfsucated numbers.
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
Encrypted hashed version of the card for comparison only as a CIM
If set to True, then the card holder’a address is automatically set using the account’s billing address
The payment gateway that tokenized the card
If using the Generic Gateway specify the implementation code given to you by CRM.COM
The card token
Use a payment gateway with an account such as PAYPAL. Required and applicable if payment method is set to PAYPAL
Responses
OK
Body
The payment method identifier
Add a Card payment method
POST https://stagingapi.crm.com/backoffice/v1/organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/payment_methods HTTP/1.1
Content-Type: application/json
{
"id": "34234234-34343",
"payment_method_type": "CARD",
"notes": "some notes",
"is_primary": "true",
"is_backup": "false",
"bank_details": {
"account_holder_name": "John Doe",
"account_number": "001002001",
"iban": "0143240434320434",
"sort_code": "20-02-53",
"bank": "Barclays",
"branch": "Ascot",
"swift": "12345678"
},
"card": {
"name": "default card",
"brand": "UNIONPAY",
"card_number": "492942******7004",
"first6": "",
"last4": "",
"fingerprint": "Xt5EWLLDS7FJjR1c",
"expiration_month": 1,
"expiration_year": 2020,
"card_holder_details": {
"card_holder_name": "Mrs M Smith",
"address_line_1": "address_line_1",
"address_line_2": "address_line_2",
"address_city": "address_city",
"address_zip": "address_zip",
"address_state": "address_state",
"address_country": "address_country",
"use_billing_address": "false"
},
"card_gateway_token": [
{
"gateway": "STRIPE,BRAINTREE,PAYEEZY,GENERIC",
"gateway_code": "",
"token": "123434556232134324"
}
]
},
"payment_gateway": {
"gateway": "PAYPAL",
"username": "bill@gmail.com"
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{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 bank details.Required and applicable if the payment method is set to BANK
The bank account number. Either the bank account number or IBAN must be specified
The IBAN code. Either the bank account number or IBAN must be specified
The card’s main information. Required and applicable if the payment method type is CARD
The card’s name
The card’s brand
Card number with obfsucated numbers.
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
Encrypted hashed version of the card for comparison only as a CIM
If set to True, then the card holder’a address is automatically set using the account’s billing address
The payment gateway that tokenized the card
If using the Generic Gateway specify the implementation code given to you by CRM.COM
The card token
Use a payment gateway with an account such as PAYPAL. Required and applicable if payment method is set to PAYPAL
Responses
OK
Body
The payment method identifier
PUT https://stagingapi.crm.com/backoffice/v1/organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/payment_methods/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
Content-Type: application/json
{
"is_primary": "true",
"is_backup": "false",
"notes": "some notes",
"bank_details": {
"account_holder_name": "John Doe",
"account_number": "001002001",
"iban": "0143240434320434",
"sort_code": "20-02-53",
"bank": "Barclays",
"branch": "Ascot",
"swift": "12345678"
},
"card": {
"name": "default card",
"brand": "JCB",
"card_number": "492942******7004",
"first6": "",
"last4": "",
"fingerprint": "Xt5EWLLDS7FJjR1c",
"expiration_month": 1,
"expiration_year": 2020,
"card_holder_details": {
"card_holder_name": "Mrs M Smith",
"address_line_1": "address_line_1",
"address_line_2": "address_line_2",
"address_city": "address_city",
"address_zip": "address_zip",
"address_state": "address_state",
"address_country": "address_country",
"use_billing_address": "false"
},
"card_gateway_token": [
{
"gateway": "STRIPE,BRAINTREE,PAYEEZY,GENERIC",
"gateway_code": "",
"token": "123434556232134324"
}
]
},
"payment_gateway": {
"gateway": "PAYPAL",
"username": "bill@gmail.com"
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{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
OK
DELETE https://stagingapi.crm.com/backoffice/v1/organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/payment_methods/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
HTTP/1.1 200 OK
{id}
/payment_methodsList of Payment methods allocated to an organisation.
Path variables
The organisation identifier whose payment methods will be retrieved
Request parameters
Defines on which attribute the results should be sorted
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 organisation’s primary one
Indicates which payment mehod is the organistaion’s backup one
Notes related to the payment method
The basic card information for Card payment methods
GET https://stagingapi.crm.com/backoffice/v1/organisations/CAD1E31269B76D7A65ACCE45B2E68DFD/payment_methods HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "f21abc565467897543bcdefa12",
"payment_method_type": "ACCOUNT",
"is_primary": "true",
"is_backup": "false",
"payment_gateway_token": "anemail@email.com",
"notes": "",
"card": {
"brand": "UNKNOWN",
"last4": "",
"funding_type": "CREDIT",
"classification": {
"id": "",
"name": "Gold, Platinum, Student"
}
},
"accounts": [
{
"id": "",
"number": "",
"name": ""
}
],
"classification": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "God card"
}
}
{id}
{id}
{id}
Create a new organisation tag
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 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 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://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 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}
/accounts{id}
/accounts{id}
/payment_methods{id}
/accountsPath variables
Request body
Name of Account
Responses
Body
Guid of New Account
{id}
/accountsPath variables
Responses
Body
{id}
/payment_methodsPath variables
Request body
Responses
{id}
Create a pass lot for a single pass type
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 type for which the LOT is created
Defines whether the passes to be created as Printed
The number of passes to be created
The pass’s value. Applicable and mandatory if the value type of the pass type is set to VARIABLE and pass recipients will also be defined
Defines the recipient information for each pass. Either recipients or segments can be provided
The name of the recipient
The medium by which the pass will be delivered
The value of the address to be delivered to (email, phone or physical address)
The country code of the phone (reqiured if the medium type is SMS)
Defines the segments of contacts to receive the pass. Either recipients or segments can be provided
Defines the channel by which the pass will be sent to the segments
Responses
Successful Request
Body
The unique identifier of the pass lot
POST https://stagingapi.crm.com/backoffice/v1/pass_lots HTTP/1.1
Content-Type: application/json
{
"pass_type_id": "4AD9C84FA60F9FE407140E20F707726A",
"printed": "true",
"passes_number": 3,
"value": 1,
"recipient_information": [
{
"name": "John Johnson",
"medium_type": "SMS",
"medium_value": "test@crm.com",
"country_code": "CYP"
}
],
"segment_id": "4AD9C84FA60F9FE407140E20F707726A",
"segment_channel": "EMAIL"
}
List all pass lots of a single pass type
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 from date, to search for pass lots
The to date, to search for pass lots
The ID of the pass type that the LOTS belong to
The ID of the pass LOT 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 ID of the pass lot
The ID of the pass type
Defines whether the passes of this LOT are to be printed
Defines the number of passes that were created by this LOT
The code of the pass lot
The date and time that the pass lot was created
The username of the user that created the lot
The page number
The number of records per page
The overal number of records
GET https://stagingapi.crm.com/backoffice/v1/pass_lots HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"pass_lot_id": "4AD9C84FA60F9FE407140E20F707726A",
"pass_type_id": "4AD9C84FA60F9FE407140E20F707726A",
"printed": true,
"passes_number": 3,
"code": "1234569874563214",
"created_on": 1595253575,
"created_by": "johnjohnson"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}
Export the generated passes of a LOT into a .csv file and send it to the logged in user.
Path variables
The ID of the Pass Lot 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://stagingapi.crm.com/backoffice/v1/pass_lots/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1
HTTP/1.1 200 OK
Update the Life Cycle State and/or the expiration date of specific passes based on parameters
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 LOT whose passes will be updated. Either pass ID or LOT ID will be provided
The ID of the pass to be updated. Either pass ID or LOT ID will be provided
The life cycle state
The new expiration date to be provided
Responses
Successful Request
Body
The IDs of the passes that were updated
PUT https://stagingapi.crm.com/backoffice/v1/passes HTTP/1.1
Content-Type: application/json
{
"pass_lot_id": "4AD9C84FA60F9FE407140E20F707726A",
"pass_id": "4AD9C84FA60F9FE407140E20F707726A",
"life_cycle_state": "ACTIVATED",
"expiration_date": 1592919625
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"pass": [
"4AD9C84FA60F9FE407140E20F707726A"
]
}
List a collection of passes based on 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
The expiration date of the passes
The ID of the pass type
The ID of the pass LOT
The life cycle state of the passes
Whether the pass is printed or not
The ID of a single pass to get 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 type ID
The pass type name
The ID of the pass LOT that generated the pass
The pass’ recipient (if applicable)
The recipient’s name
The medium that will deliver the voucher
The address of the medium for delivering the pass (can be email, phone number or physical address)
The pass value (if applicable)
The currency of the pass
The ID of the promotion that the pass will consume
The ID of the reward offer that the pass will consume
The expiration date of the passes
Defines whether the pass will be printed
The pass’ life cycle state
The validity of the pass
The validity period
The UOT of the period
The “valid until” date in case of DATE type
The allowed times for the promotion pass to be used
The actual times that the pass has been used
The type of entity that the pass was redeemed against to
The ID of the entity that the pass was redeemed against to
The pass pin
The page number
The number of records per page
The overal number of records
GET https://stagingapi.crm.com/backoffice/v1/passes HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"pass_id": "4AD9C84FA60F9FE407140E20F707726A",
"code": "1231231231231231",
"pass_type": {
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "Xmas Gift Card"
},
"pass_lot_id": "4AD9C84FA60F9FE407140E20F707726A",
"recipient": {
"name": "John Jonhson",
"medium_type": "POST",
"medium_value": "test@crm.com"
},
"value": 100,
"currency": "EUR",
"promotion_id": "4AD9C84FA60F9FE407140E20F707726A",
"reward_offer_id": "4AD9C84FA60F9FE407140E20F707726A",
"expiration_date": 1591796310,
"printed": "true",
"life_cycle_state": "REDEEMED",
"created_on": 1591796310,
"created_by": "4AD9C84FA60F9FE407140E20F707726A",
"updated_on": "1591796310",
"updated_by": "4AD9C84FA60F9FE407140E20F707726A",
"validity": {
"type": "PERIOD",
"period": 1,
"uot": "MONTH",
"to_date": 1591703675
},
"usage": {
"allowed_usage": 2,
"used_times": 1
},
"redemption_entity": {
"entity_type": "SUBSCRIPTION",
"entity_id": "4AD9C84FA60F9FE407140E20F707726A"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
Redeem a single pass against an entity
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The pass code
The OTP (if applicable)
The type of entity that the pass was redeemed against to
The ID of the entity that the pass was redeemed against to
The value of the pass in case of VARIABLE value through the pass’ type
The pass pin
Responses
Successful Request
Body
The ID of the pass that got redeemed
POST https://stagingapi.crm.com/backoffice/v1/passes HTTP/1.1
Content-Type: application/json
{
"code": "1231231231231231",
"otp": "2345",
"redemption_entity": {
"entity_type": "WALLET",
"entity_id": "4AD9C84FA60F9FE407140E20F707726A"
},
"value": 100
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726A"
}
{id}
/media_groups{id}
{id}
{id}
{id}
/actionsCreate a new product
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
to be deprecated and replaced with categories
The supported categories for the product
Defines whether the product is a stockable product
Defines whether the product is a traceable product (applicable only in stockable products)
The product’s usage (applicable only if product is stockable and traceable)
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": "",
"description": "",
"type_id": "",
"family_id": "",
"brand_id": "",
"category_id": "",
"is_stockable": "true",
"is_traceable": "true",
"usage": "BILLABLE",
"validity_setting": "ALWAYS_VALID",
"validity_period": {
"from_date": 1,
"to_date": 1
},
"upsells": [
""
],
"crosssells": [
""
],
"variant_attributes": [
{
"key": "size",
"value": "Small"
}
],
"composition": [
{
"classification": "MODIFIER",
"item_type": "PRODUCT",
"item_id": "",
"mandatory": true,
"minimum_quantity": 1,
"maximum_quantity": 3,
"price_inclusive": true
}
],
"pricing": {
"rate_model": "TIERED",
"price": 9.99,
"currency": "EUR",
"tax_model": "TAX_INCLUSIVE",
"tiers": [
{
"lower_tier": 1,
"upper_tier": 5,
"price": 8.99
}
]
}
}
{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
to be replaced with categories
The supported categories for the product
Defines whether the product is a stockable product
Defines whether the product is a traceable product (applicable only in stockable products)
The product’s usage (applicable only if product is stockable and traceable).Avaialble from V5.3
Responses
Body
PUT https://sandbox.crm.com/backoffice/v1/products/{id} HTTP/1.1
Content-Type: application/json
{
"name": "",
"description": "",
"family_id": "",
"brand_id": "",
"category_id": "",
"is_stockable": "true",
"is_traceable": "true",
"validity_setting": "ALWAYS_VALID",
"validity_period": {
"from_date": 1,
"to_date": 1
},
"upsells": [
""
],
"crosssells": [
""
],
"variant_attributes": [
{
"key": "sze",
"value": ""
}
],
"composition": [
{
"classfication": "MODIFIER",
"item_type": "PRODUCT",
"item_id": "",
"mandatory": true,
"minimum_quantity": 1,
"maximum_quantity": 3,
"price_inclusive": true
}
],
"usage": "PROVISIONABLE"
}
{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 identifer of the organisation that owns the product
The unique dentifier of the organisation that will sell the product
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
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
to be replaced with categories
The product categories
The category identifier
The category name
Available from V5.3
The product’s usage (applicable only if product is stockable and traceable). Available from V5.3
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 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",
"type": {
"id": "",
"name": ""
},
"brand": {
"id": "",
"name": ""
},
"family": {
"id": "",
"name": ""
},
"category": {
"id": "",
"name": ""
},
"pricing": {
"price": 9.99,
"currency": "EUR",
"tax_model": "TAX_EXCLUSIVE",
"rate_model": "TIERED",
"price_terms": {
"termed_period": 1,
"termed_period_uot": "MONTHS",
"billing_period": 12,
"billing_period_uot": "MONTHS",
"trial_period": 7,
"trial_period_uot": "DAYS",
"auto_renewed": true,
"price_model": "FIXED",
"billing_model": "PRE_BILL"
},
"tiers": {
"price": 1,
"lower_tier": 1,
"upper_tier": 1
}
},
"usage": "BILLABLE",
"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"
}
]
}
]
}
],
"pages": {
"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
to be replaced with categories
The product categories
The category identifier
The category name
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 product’s usage (applicable only if product is stockable and traceable). Available from V5.3
Applicable only for variant products
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,
"type": {
"id": "",
"name": ""
},
"family": {
"id": "",
"name": ""
},
"brand": {
"id": "",
"name": ""
},
"category": {
"id": "",
"name": ""
},
"validity_periods": [
{
"from_date": 1234234234,
"to_date": 23423423424
}
],
"variant_attributes": [
{
"id": "",
"key": "SIZE",
"value": "",
"mandatory": true,
"label": ""
}
],
"composition": [
{
"id": "",
"classification": "ADDON",
"item_type": "TYPE",
"item_id": "",
"name": "",
"sku": "",
"mandatory": true,
"minimum_quantity": 1,
"maximum_quantity": 5,
"price_inclusive": true
}
],
"upsells": [
{
"id": "",
"sku": "",
"name": ""
}
],
"crosssells": [
{
"id": "",
"sku": "",
"name": ""
}
],
"variants": [
{
"id": "",
"sku": "",
"name": "",
"description": "",
"type": {
"id": "",
"name": ""
},
"variant_attributes": [
{
"key": "size",
"value": "red"
}
]
}
],
"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"
}
]
}
],
"usage": "PROVISIONABLE",
"composite_product": {
"id": "",
"sku": "",
"name": ""
}
}
Synchronise products information in CRM.COM with products information that exists in a 3rd party system, within a single Web API method call.
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The product sku
The product name
The product description
The product type
The product type identifier (id or name should be specified)
The product type name (id or name should be specified)
Details about the product brand
The product brand identifier (id or name should be specified)
The product brand name (id or name should be specified)
Details about the product family
The product family identifier (id or name should be specified)
The product family name (id or name should be specified)
Details about the product categories
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 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
The tax rate identifier (id or name should be specified)
The tax rate name (id or name should be specified)
Details about the product pricing
The pricing rate model
The pricing tax model
The price (amount)
The price currency (3 code)
Details about the pricing tiering (required for Tiered and Volume based rate models)
The lowest tier
The top tier
The tier price (amount)
The unique product sku of variant_attribute (required if the synced product is a variant attribute of another product)
Details about the product variant attributess
The vairant 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 or 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 name (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)
Pricing is Inclusive
The minimum 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 is mandatory or not
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 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
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).
POST https://sandbox.crm.com/backoffice/v1/synchronise_products HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"products": [
{
"sku": "SUGAR001",
"name": "Brown Sugar",
"description": "Brown Sugar",
"type": {
"name": "Condiments"
},
"brand": {
"name": "Fresh Sug"
},
"pricing": {
"rate_model": "FLAT",
"tax_model": "TAX_INCLUSIVE",
"price": 1.99,
"currency": "EUR"
}
},
{
"sku": "FREESP01",
"name": "Freddo Espress0",
"description": "Freddo Espresso",
"type": {
"name": "Wet"
},
"brand": {
"name": "Fresh Brew Inc"
},
"family": {
"name": "Homebrew"
},
"category": {
"name": "Drinks"
},
"pricing": {
"rate_model": "FLAT",
"tax_model": "TAX_INCLUSIVE",
"price": 4.99,
"currency": "EUR"
}
},
{
"sku": "MFREESP01",
"name": "Freddo Espresso Medio",
"description": "Freddo Espresso Medio",
"type": {
"name": "Wet"
},
"brand": {
"name": "Fresh Brew Inc"
},
"family": {
"name": "Homebrew"
},
"category": {
"name": "Drinks"
},
"pricing": {
"rate_model": "FLAT",
"tax_model": "TAX_INCLUSIVE",
"price": 5.99,
"currency": "EUR"
},
"main_product_sku": "FREESP01",
"variant_attributes": [
{
"key": "size",
"value": "Primo"
},
{
"key": "size",
"value": "Maximo"
}
],
"components": [
{
"sku": "SUGAR001",
"inclusive": true,
"mandatory": true,
"classification": "MODIFIER"
}
]
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "a781bbc1-9067-c384-52fe-43586f89110a"
}
{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
A list of unique organisation identifiers for which the product action is applied. Applicable only on Enabling/Disabling a product
Applicable only on Enabling/Disabling a product.
Responses
PUT https://devapi.crm.com/backoffice/v1/products/{id}/actions HTTP/1.1
Content-Type: application/json
{
"action": "ENABLE",
"organisations": [
""
],
"supply_method": "PICK_UP"
}
{id}
/variants{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
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}
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
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/{copmonent_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
Responses
POST https://stagingapi.crm.com/backoffice/v1/products/{id}/components HTTP/1.1
Content-Type: application/json
{
"item_type": "FAMILY",
"item_id": "",
"classification": "ADDON",
"mandatory": true,
"minimum_quantity": 1,
"maximum_quantity": 5,
"price_inclusive": true
}
{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
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}
/components/{copmonent_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 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
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://stagingapi.crm.com/backoffice/v1/products/{id}/components HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"item_type": "PRODUCT",
"item_id": "",
"mandatory": true,
"name": "",
"classification": "MODIFIER",
"price_inclusive": true,
"minimum_quantity": 1,
"maximum_quantity": 3,
"products": [
{
"id": "",
"sku": "",
"name": "",
"description": "",
"pricing": [
{
"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",
"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"
}
]
}
]
}
]
}
]
}
{id}
/prices{id}
/prices{id}
/prices/{price_id}
{id}
/prices{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
Available from V53
Responses
Body
The identifier of the new product price
POST https://stagingapi.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": "TIERED",
"supply_method": "DELIVERY",
"country": "GRC",
"bundle_product_id": "",
"tiers": [
{
"lower_tier": 1,
"upper_tier": 5,
"price": 8.99
}
],
"price_terms": {
"termed_period": 12,
"termed_period_uot": "MONTHS",
"billing_period": 1,
"billing_period_uot": "MONTHS",
"trial_period": 7,
"trial_period_uot": "DAYS",
"auto_renewed": true,
"price_model": "FIXED",
"billing_model": "POST_BILL"
}
}
]
{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 unique identifier of the product price
Available from V5.3
Responses
Body
The identifier of the updated product price
PUT https://stagingapi.crm.com/backoffice/v1/products/{id}/prices HTTP/1.1
Content-Type: application/json
[
{
"id": "",
"price": 9.99,
"currency": "EUR",
"tax_model": "TAX_INCLUSIVE",
"rate_model": "TIERED",
"supply_method": "DELIVERY",
"country": "GRC",
"bundle_product_id": "",
"tiers": [
{
"lower_tier": 1,
"upper_tier": 5,
"price": 8.99
}
],
"price_terms": {
"termed_period": 12,
"termed_period_uot": "MONTHS",
"billing_period": 1,
"billing_period_uot": "MONTHS",
"trial_period": 7,
"trial_period_uot": "DAYS",
"auto_renewed": true,
"price_model": "VARIABLE",
"billing_model": "POST_BILL"
}
}
]
HTTP/1.1 201 Created
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://devapi.crm.com/backoffice/v1/products/{id}/prices/{price_id} HTTP/1.1
HTTP/1.1 200 OK
{id}
/pricesGet a list of all prices of a specific product
Path variables
The product’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
Applicable only for temed service products
GET https://stagingapi.crm.com/backoffice/v1/products/{id}/prices HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "",
"group_id": "",
"rate_model": "TIERED",
"price": 9.99,
"currency": "EUR",
"country": "GRC",
"tax_model": "TAX_INCLUSIVE",
"valid_since": 12345678,
"supply_method": "DELIVERY",
"bundle_product": {
"id": "",
"sku": "",
"name": ""
},
"price_terms": {
"termed_period": 12,
"termed_period_uot": "MONTHS",
"billing_period": 1,
"billing_period_uot": "MONTHS",
"trial_period": 7,
"trial_period_uot": "DAYS",
"auto_renewed": true,
"price_model": "FIXED",
"billing_model": "PRE_BILL"
},
"tiers": [
{
"price": 9.99,
"lower_tier": 1,
"upper_tier": 5
}
]
}
]
{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
Available from V5.3
Responses
Body
The identifier of the new product price
POST https://stagingapi.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": "TIERED",
"supply_method": "DELIVERY",
"country": "GRC",
"tiers": [
{
"lower_tier": 1,
"upper_tier": 5,
"price": 8.99
}
],
"price_terms": {
"termed_period": 12,
"termed_period_uot": "MONTHS",
"billing_period": 1,
"billing_period_uot": "MONTHS",
"trial_period": 7,
"trial_period_uot": "DAYS",
"auto_renewed": true,
"price_model": "FIXED",
"billing_model": "PRE_BILL"
}
}
]
{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
Available from V5.3
Responses
Body
The identifier of the updated product price
PUT https://stagingapi.crm.com/backoffice/v1/product_families/{id}/prices HTTP/1.1
Content-Type: application/json
[
{
"id": "",
"price": 9.99,
"currency": "EUR",
"tax_model": "TAX_INCLUSIVE",
"rate_model": "TIERED",
"supply_method": "DELIVERY",
"country": "GRC",
"tiers": [
{
"lower_tier": 1,
"upper_tier": 5,
"price": 8.99
}
],
"price_terms": {
"termed_period": 12,
"termed_period_uot": "MONTHS",
"billing_period": 1,
"billing_period_uot": "MONTHS",
"trial_period": 7,
"trial_period_uot": "DAYS",
"auto_renewed": true,
"price_model": "FIXED",
"billing_model": "PRE_BILL"
}
}
]
{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 from V5.3
GET https://stagingapi.crm.com/backoffice/v1/product_families/{id}/prices HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "",
"group_id": "",
"rate_model": "TIERED",
"price": 9.99,
"currency": "EUR",
"country": "GRC",
"tax_model": "TAX_INCLUSIVE",
"valid_since": 12345678,
"supply_method": "DELIVERY",
"price_terms": {
"termed_period": 12,
"termed_period_uot": "MONTHS",
"billing_period": 1,
"billing_period_uot": "MONTHS",
"trial_period": 7,
"trial_period_uot": "DAYS",
"auto_renewed": true,
"pricing_method": "FIXED"
},
"tiers": [
{
"price": 9.99,
"lower_tier": 1,
"upper_tier": 5
}
]
}
]
{id}
{id}
{id}
{id}
{id}
/actions{id}
/offerings{id}
/offerings{id}
/conditions{id}
/conditionsCreates a new Promotion.
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 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 offers to be retrieved
Required if a list of discounted items is specified. Indicates if the item is a product or a product type, brand, family or category.
Search for an Offer using its name, type 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 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 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
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://devapi.crm.com/backoffice/v1/promotions/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "7CD9C84FA60F9FE407140E20F707726A",
"name": "Sales season",
"type": "AD_HOC",
"life_cycle_state": "",
"short_description": "£10 off",
"long_description": "",
"discount_option": "AMOUNT",
"discount_value": 5,
"availability": {
"from_date": 1234566,
"to_date": 1234566
},
"offerings": [
{
"order": 1,
"as_of": "SUBSCRIPTION_EFFECTIVE_DATE",
"from_unit": 1,
"to_unit": 3,
"from_unit_type": "MONTH",
"to_unit_type": "MONTH",
"applied": {
"id": "",
"id_type": "SKU"
}
}
],
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"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"
}
]
}
]
}
{id}
Creates a new, copied version of a Promotion. A single promotion can be copied per Web API call.
Path variables
The unique identifier of the promotion to be copied
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 new promotion
POST 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}
/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}
/offeringsPath variables
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/promotions/{id}/offerings HTTP/1.1
Content-Type: application/json
{
"id": "",
"id_type": "BRAND",
"from_unit": 1,
"to_unit": 3,
"from_unit_type": "MONTH",
"to_unit_type": "MONTH",
"period_starts_from": "BINDING_START"
}
{id}
/offeringsPath variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Responses
Body
GET https://devapi.crm.com/backoffice/v1/promotions/{id}/offerings HTTP/1.1
Content-Type: application/json
{
"id": "",
"id_type": "BRAND",
"from_unit": 1,
"to_unit": 3,
"from_unit_type": "MONTH",
"to_unit_type": "MONTH",
"period_starts_from": "BINDING_START"
}
{id}
/conditionsPath variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
How many purchases and how long ago
When the purchase was perfomed
Which products were purchased or being purchased now
Responses
POST https://devapi.crm.com/backoffice/v1/promotions/{id}/conditions HTTP/1.1
Content-Type: application/json
{
"segments": [
""
],
"payment_methods": [
""
],
"purchases": {
"totals": {
"min_number": 1,
"max_number": 5,
"period_duration": 90,
"period": "DAYS",
"operator": "AND"
},
"timings":[
{
"day":"MONDAY",
"month":"",
"start_time":"09:00",
"end_time":"11:00"
}
],
"products": [
{
"groups": [
{
"group": "G1",
"operator": "AND",
"conditions": [
{
"condition": "C1",
"id": "guid",
"id_type": "FAMILY",
"min_qty": 1,
"max_qty": 5,
"period_duration": 90,
"period_unit": "DAYS",
"ownership": "AT_HAND",
"operator": "AND"
}
]
}
]
}
]
}
}
{id}
/conditionsRetrieves detailed information for an Offer
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://devapi.crm.com/backoffice/v1/promotions/{id}/conditions HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"segments": [
""
],
"payment_methods": [
""
],
"purchases": {
"totals": {
"min_number": 1,
"max_number": 5,
"period_duration": 90,
"period": "DAYS",
"operator": "AND"
},
"timings":[
{
"day":"MONDAY",
"month":"",
"start_time":"09:00",
"end_time":"11:00"
}
],
"products": [
{
"groups": [
{
"group": "G1",
"operator": "AND",
"conditions": [
{
"condition": "C1",
"id": "guid",
"id_type": "FAMILY",
"min_qty": 1,
"max_qty": 5,
"period_duration": 90,
"period_unit": "DAYS",
"ownership": "AT_HAND",
"operator": "AND"
}
]
}
]
}
]
}
}
{id}
/media_groupsLink a product with one or many Media Groups
Path variables
Request body
Id of Media Group
Responses
Body
ID of product media_group.
POST https://stagingapi.crm.com/backoffice/v1/products/{id}/media_groups HTTP/1.1
Content-Type: application/json
[
{
"media_group_id": "ABC123"
}
]
HTTP/1.1 201 Created
{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 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 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
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
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
Defines whether close loop (controlled) sign ups will be validated based on a third-party identification (external system) or domain specific emails
Defines the supported email domains for close loop (controlled) sign ups based on domain. Required when the sign up token = email domain
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 life cycle state that the reward scheme will changed into
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_stateRequest headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Terms and Conditions
Array of Media Groups to Create for grouping of Creatives. These media Groups will later be used to group images together a single Deafult Group can be created, and later added to.
Name Of Media Group
Description of Media Group
Defines whether the reward offer will be featured (ordered higher) in customer facing clients
Responses
OK
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
Terms and Conditions
Defines whether the reward offer will be featured (ordered higher) in customer facing clients
Responses
OK
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 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
List of Schemes default 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.
Filter based on whether the reward offers will be featured (ordered higher) in customer facing clients
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
Media Usage 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
Body
The reward offer identifier
The reward offer name
Short description used in Mobile or other APP experiences
The reward offer description
Scheme Offer belongs to
The reward offer goal
Increase Achievement
Increase Spend
Increase Visits
Increase membership
The reward Type
Offer Availability
The date of start period for offer
The date of end period for offer
List of Tags
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
Defines whether the reward offer will be featured (ordered higher) in customer facing clients
Defines the organisation that owns the reward offer
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/reward_offers HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "10% off any purchase",
"short_description": "",
"long_description": "",
"scheme": {
"id": "622175bf-03b0-4e9e-9df9-adf85080a889",
"name": "Coffee Scheme"
},
"goal": "MEMBERSHIP",
"reward_type": "TIER",
"availability": {
"available_from": 1,
"available_to": 1
},
"tags": [
{
"id": "",
"name": ""
}
],
"life_cycle_state": "INACTIVE",
"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"
}
]
}
],
"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
OK
Body
The reward offer identifier
Name of Offer Used internally
Scheme offer Belongs To
Goal of Offer
Type of Offer
Short Description used in presentation
Long Description
Terms and Conditions Text
When is Offer available
List of Tags
The reward tag identifier
The reward 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
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
Defines the organisation that owns the reward offer
The organisation identifier
The organisation name
GET https://stagingapi.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": "ACHIEVEMENT",
"reward_type": "HAPPYHOUR",
"short_description": "",
"long_description": "",
"terms_and_conditions": "",
"availability": {
"available_from": 1,
"available_to": 1
},
"tags": [
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": ""
}
],
"life_cycle_state": "INACTIVE",
"media_groups": [
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "Marketing Media",
"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": "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
Successful Request
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}
/targets{id}
/targets/contacts{id}
/targets/organisations{id}
/targets/transactions{id}
/targets/evaluations{id}
/targets/referrals{id}
/targetsRetrieves the Reward Offer target conditions for, customer_segments, venues, products
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
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 soclal action conditions
The social platform that the action is performed
The action that the customer performed
Details about profile completeness conditions
The profile information that is provided
Details about location conditions
The organisation identifier
The organisation type
The organisation name
The organisation locations
The name of the location
Details about transaction conditions
Numbers of days for cummulative check
The day of the week as condition (1-7), 1 is Sunday
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 conditions
The pass type identifier
The pass 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
GET https://devapi.crm.com/backoffice/v1/reward_offers/6A24D2B5E44F44B28451FE021FCAD51E/targets HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"contact_segments": [
{
"id": "guid",
"name": "",
"description": "",
"size": ""
}
],
"organisations": [
{
"id": "guid",
"type": "VENUE",
"name": "",
"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"
}
]
}
],
"transactions": {
"transaction_total": {
"currency": "EUR",
"transaction_value": 50,
"period": 1,
"operator": "AND"
},
"products": [
{
"groups": [
{
"group": "G1",
"operator": "AND",
"conditions": [
{
"condition": "C1",
"id": "guid",
"id_type": "BRAND",
"name": "",
"description": "",
"qty": 1,
"value": 2.5,
"currency": "EUR",
"period": 1,
"operator": "AND"
}
]
}
]
}
],
"timings": {
"is_birthday": true,
"is_nameday": true,
"availability": [
{
"month": 1,
"day": 1,
"start_time": "19:00",
"end_time": "21:00"
}
]
}
}
}
{id}
/targets/contactsPath variables
The reward offer identifier whose contact target 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
Customers that perform Social Actions
The social platform that the action is performed
The action that the customer performed
Customers that complete their profile
The profile information that is provided
Responses
OK
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
{id}
/targets/organisationsPath variables
The reward offer identifier whose organisation target 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
Responses
OK
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
{id}
/targets/transactionsPath variables
Request body
Specify the period for cumulative check in days. If not specified only valid on single transaction
Name of condition
Days before special day
Days after special day
The day of the week as condition (1-7), 1 is Sunday
Responses
OK
Purchase 9 Coffees in 90 Days
POST https://devapi.crm.com/backoffice/v1/reward_offers/{id}/transaction_conditions HTTP/1.1
Content-Type: application/json
{
"transactions": {
"products": [
{
"groups": [
{
"group": "G1",
"conditions": [
{
"condition": "C1",
"id": "guid",
"id_type": "FAMILY",
"name": "Coffee",
"description": "Coffee Products",
"qty": 9,
"period": 90
}
]
}
]
}
]
}
}
Spend more than 10 Euro In June, Friday 19:00 - 21:00
POST https://devapi.crm.com/backoffice/v1/reward_offers/{id}/targets/transactions HTTP/1.1
Content-Type: application/json
{
"transactions": {
"transaction_total": {
"currency": "EUR",
"transaction_value": 10.99,
"period": 90,
"operator": "AND"
},
"products": [
{
"groups": [
{
"group": "G1",
"operator": "AND",
"conditions": [
{
"condition": "C1",
"id": "guid",
"id_type": "SKU",
"name": "",
"qty": 1,
"value": 2.5,
"currency": "EUR",
"period": 1,
"operator": "AND"
}
]
}
]
}
],
"timings": {
"is_birthday": true,
"is_nameday": true,
"days_before": "",
"days_after": "",
"availability": [
{
"month": 1,
"day": 1,
"start_time": "19:00",
"end_time": "21:00"
}
]
}
}
}
POST https://devapi.crm.com/backoffice/v1/reward_offers/{id}/targets/transactions HTTP/1.1
Content-Type: application/json
{
"transactions": {
"transaction_total": {
"currency": "EUR",
"transaction_value": 1000,
"period": 90,
"operator": "AND"
},
"products": [
{
"groups": [
{
"group": "G1",
"operator": "AND",
"conditions": [
{
"condition": "C1",
"id": "guid",
"id_type": "SKU",
"qty": 5,
},
{
"condition": "C2",
"id": "guid",
"id_type": "SKU",
"value": 2.5,
"isoCurrencyCode": "EUR",
}
]
}
]
}
],
}
}
{id}
/targets/evaluationsPath variables
The reward offer identifier
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
OK
POST https://stagingapi.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"
}
}
HTTP/1.1 200 OK
{id}
/targets/referralsPath variables
The reward offer identifier
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
OK
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
{id}
/awards{id}
/awards{id}
/awardsAdd settings to define the amount of the reward and the restrictions / expiration
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
Is the award based on a Unit of Measure I.e Litres.
The product condition identifier (can be the identifier of a product, brand or family)
The product condition type
Award will be available to be spend from a specific date
Award will be available to be spend from a specific period
Award will be available to be spend from the next purchase
Award will be available to be spend from the purchase that provided the award
Cap Total Award Amount
Restrict Awards to a maximum such as 1 per day
How many Times an Award can be given
During the Time Period
Unit of Time of Period
Spend Condition ID
Responses
1.5% on Coffee and 2.0% on Smoothies expires after 90 Days.
POST 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"
},
{
"amount": 2.0,
"currency": "DEFAULT",
"amount_type": "PERCENTAGE",
"products": {
"id": "guid_smoothie_family",
"id_type": "FAMILY"
}
}
],
"expiration": {
"expiration_type": "PERIOD",
"period": 90,
"period_unit": "DAYS"
}
}
Lottery Award can be spent 1 Month after Win and expires after 2 months 1 winner / week
POST https://devapi.crm.com/backoffice/v1/reward_offers/{id}/awards HTTP/1.1
Content-Type: application/json
{
"awards": [
{
"amount": 50.00,
"currency": "DEFAULT",
"amount_type": "FIXED"
}
],
"validity": {
"validity_type": "PERIOD",
"period": 1,
"period_unit": "MONTH"
},
"expiration": {
"expiration_type": "PERIOD",
"period": 2,
"period_unit": "MONTH"
},
"restrictions": {
"total_customers": 1,
"amount_cap": 50.00,
"frequency_cap": {
"frequency": 1,
"period": "1",
"period_uot": "WEEK"
}
}
}
{id}
/awardsRetrive 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
OK
Body
The award type
The award currency
The award amount
Details about the award products
The product condition identifier (can be the identifier of a product, brand or family)
The product condition 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)
Details about the award validity (valid from)
The validity type
Award will be available from a specific period
Award will be available from a specifc date
Award will be available to be spend from the next purchase
Award will be available to be spend from the purchase that provided the award
The date from which the award will be valid (applicable when type is set to specific date)
The period from which the award will be valid (applicable when type is set to period)
The unit of time from which the award will be valid (applicable when type is set to period)
Details about the award expiration (valid to)
The expiration type
The date that the award will expire (applicable when type is specific date)
The period up to which the award will be expired (applicable when type is set to period)
The unit of time up to which the award will be expired (applicable when type is set to period)
Details about how award will be provided
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
The frequency unit of time
details of the spend conditons name and ID
The spend condition identifier
The spend condition name
The method on how award can be spent
1.5% on Coffee and 2.0% on Smoothies expires after 90 Days.
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"
}
}
GET https://devapi.crm.com/backoffice/v1/reward_offers/{id}/awards HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"awards": [
{
"amount": 10.99,
"currency_type": "VIRTUAL",
"amount_type": "QTY",
"uom": "",
"products": {
"id": "",
"id_type": "BRAND",
"name": "",
"description": ""
}
}
],
"validity": {
"validity_type": "PERIOD",
"valid_date": 1,
"period": 1,
"period_unit": "MONTH"
},
"expiration": {
"expiration_type": "YEAR_END",
"expiry_date": "",
"period": 1,
"period_unit": "MONTH"
},
"restrictions": {
"total_customers": 1,
"amount_cap": 1,
"frequency_cap": {
"frequency": 1,
"period": "DAY",
"period_uot": "MONTH"
}
}
}
{id}
/media_groups{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
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
Responses
OK
Body
The media group identifier
POST https://devapi.crm.com/backoffice/v1/reward_offers/6A24D2B5E44F44B28451FE021FCAD51E/media_groups HTTP/1.1
Content-Type: application/json
{
"name": "Default",
"description": "Seasonal offer media"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E"
}
{id}
/media_groupsGet all media groups for a specific reward offer
Path variables
The reward offer identifer whose media group 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 media group identifier
The media group name
The media group description
GET https://devapi.crm.com/backoffice/v1/reward_offers/6A24D2B5E44F44B28451FE021FCAD51E/media_groups HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "2118c572-20ca-45a9-be17-a1cfafae08f6",
"name": "Seasonal",
"description": "All seasonal media for this offer"
}
]
}
Search for organisations with reward commercial terms that participate in rewards
Notes
Retrieves only the organisations 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
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
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 page number
The number of records per page
The overal number of records
GET https://devapi.crm.com/backoffice/v1/merchants HTTP/1.1
api_key: 8c54d563-b991-4b76-8a83-557c08166f95
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Delicious Burger",
"description": "Delicious Burger HQ",
"is_parent": true,
"tap": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "T123456",
"code": "T123"
}
],
"reward_schemes": [
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "MyCompany Scheme"
}
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}
{id}
{id}
/contacts{id}
/contacts{id}
/contacts{id}
/conditions{id}
/conditions{id}
/actionsCreate a new segment either based on a set of criteria or by adding contacts individually
Request body
How often the segment is refreshed in hours
Responses
Body
The newlly created segment’s unique identifier
Group A and Group B
POST https://devapi.crm.com/backoffice/v1/segments HTTP/1.1
Content-Type: application/json
{
"name": "Marketing customers",
"description": "A list of customers that own an accoun"
}
{id}
Updates the basic information of a segment
Path variables
The segment’s unique identifier
Request body
The segment’s description
Responses
Body
The unique identifer of the updated segment
PUT https://devapi.crm.com/backoffice/v1/segments/{id} HTTP/1.1
Content-Type: application/json
{
"name": "",
"description": "List of contacts owning a non-terminated account",
"refresh_frequency": 1
}
{id}
Deletes a segment
Path variables
The segment’s unique identifier
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/segments/4AD9C84FA60F9FE407140E20F707726A 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
Responses
Body
The segment’s unique identifier
The segment’s name
The segment’s description
The segment’s size (total number of contacts)
How often the segment is refreshed in hours
The page number
The number of records per page
The overal number of records
GET https://devapi.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": 4
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}
/contactsReturns detailed information for a segment
Path variables
The segment’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 contacts based on their code or name
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
GET https://devapi.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"
}
]
}
{id}
/contactsAmends a segment by adding multiple contacts, in bulk mode
Path variables
The segment’s unique identifier
Request body
List of contacts to be added in the segment as static items
Responses
Body
A unique dentifier for the Web API (enables integrators to relate their reuqest to the Web API call)
POST https://devapi.crm.com/backoffice/v1/segments/CAD1E31269B76D7A65ACCE45B2E68DFD/contacts HTTP/1.1
Content-Type: application/json
{
"contacts": [
"CAD1E31269B76D7A65ACCE45B2E68DFD","AB11E31269B76D7A65ACCE45B2E68DFD"
]
}
{id}
/contactsAmends a segment by adding multiple contacts as static items, in bulk mode
Path variables
The segment’s uniue identifier
Request body
Removes all static items of the segment.
List of contacts to be removed from the segment
Responses
Body
A unique dentifier for the Web API (enables integrators to relate their reuqest to the Web API call)
Remove contacts from segment
DELETE https://devapi.crm.com/backoffice/v1/segments/CAD1E31269B76D7A65ACCE45B2E68DFD/contacts HTTP/1.1
Content-Type: application/json
{
"remove_all": "false",
"contacts": [
"CAD1E31269B76D7A65ACCE45B2E68DFD","23D1E31269B76D7A65ACCE45B2E68DFD"
]
}
{id}
/conditionsAdds a set of conditions in a segment
Path variables
Request body
Applicable for Events only
Applicable for Events only
Applicable for Contacts only
Applicable for Contacts only
Operators Between, On, Since require date(s) filters, whereas the rest of the operators need an integrer value(s)
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
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://devapi.crm.com/backoffice/v1/segments/{id}/conditions HTTP/1.1
Content-Type: application/json
{
"groups": [
{
"name": "A",
"type": "EVENT",
"event_name": "AWARD",
"inclusion": "HAVE",
"frequency": {
"operator": "AT_LEAST",
"min_times": 1,
"max_times": 5,
"period": {
"operator": "SINCE",
"from": "3",
"to": "",
"type": "STRING"
}
},
"properties_operator": "ALL",
"properties": [
{
"property": "purchase.amount",
"operator": "MORE_THAN_OR_EQUAL",
"min_value": "5.00",
"max_value": "10",
"value_list": [
""
],
"type": "STRING",
"list_name": "products"
}
]
}
],
"logical_expression": "(A OR B) AND C"
}
{id}
/conditionsReturns a segment’s set of conditions
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Applicable only if the property is a list and represents the list name
GET https://devapi.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": "HAVE_NOT",
"frequency": {
"operator": "BETWEEN",
"min_times": 1,
"max_times": 5,
"period": {
"operator": "THIS_MONTH",
"from": "3",
"to": "",
"type": "STRING"
}
},
"properties_operator": "AT_LEAST1",
"properties": [
{
"property": "purchase.amount",
"operator": "MORE_THAN",
"min_value": "5.00",
"max_value": "10",
"value_list": [
""
],
"type": "STRING",
"list_name": "products"
}
]
}
],
"logical_expression": ""
}
{id}
/actionsRefresh a segment
Path variables
The unique identifier of the segment to be refreshed
Request body
The action to be performed on the segment
Responses
Body
The newlly created segment’s unique identifier
POST https://devapi.crm.com/backoffice/v1/segments/{id}/actions HTTP/1.1
Content-Type: application/json
{
"action": "REFRESH"
}
{id}
Creates a spend condition groups including produts, timings and organisations
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Name of Spend Conditions to be stored for re-use later
The IDs of organisations to be considered as conditions
The ID of the product type provided
The product type that will be used as condition
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
Responses
Successful Request
Body
The unique identifier of the spend condition group
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": ""
}
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 name of the spend condition
The ID of the spend condition
GET https://devapi.crm.com/backoffice/v1/spend_conditions HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"name": "Happy Hour",
"id": "4AD9C84FA60F9FE407140E20F707726A"
}
]
}
{id}
Retrieves a specific spend condition with full information
Path variables
The ID of the spend condition 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 ID
The spend condition name
The IDs of organisations to be considered as conditions
The name of the organisations
The locations of the specific organisation
The organisation type
The ID of the product type provided
The product type that will be used as condition
The name based on the product type
The description based on the product type
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
GET https://devapi.crm.com/backoffice/v1/spend_conditions/{id} 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",
"googleplaceid": "ChIJrTLr-GyuEmsRBfy61i59si0"
}
],
"type": "VENUE"
}
],
"products": [
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"id_type": "FAMILY",
"name": "Coffee",
"description": ""
}
],
"timings": [
{
"month": 1,
"day": 1,
"start_time": "19:00",
"end_time": "21:00"
}
]
}
{id}
/ownership_transfer{id}
{id}
Retrieves the stock balance
Request parameters
The warehouse for which the stock will be retrieved
The product for which the stock 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
Successful Request
Body
The warehouse ID
The organisation that owns the warehouse
The organisation id
The organisation name
The ID of the product
The name of the product
Defines whether the product is traceable
Defines the quantity of products that exist in the warehouse
The devices list in case of traceable product
The ID of the device
The serial number of the device
The page number
The number of records per page
The overal number of records
GET https://stagingapi.crm.com/backoffice/v1/stock HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"warehouse": {
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"owned_by": {
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "ORGANISATION"
}
},
"stock_information": {
"product": {
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "Set-top-box",
"is_traceable": "true"
},
"stock_balance": 100,
"devices": {
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"serial_number": "STB123456"
}
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
Creates a stock in or stock adjustment warehouse transaction
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 warehouse transaction
The items to be included in the warehouse transaction
The product ID of the warehouse transaction item
The supplier of the products (applicable for stock in transaction)
A description for the warehouse transaction
The cost per unit (applicable only for stock in transaction)
The quantity to stock in (applicable only for stock in transaction)
The quantity to adjust the product by, including a + or - sign (applicable only for adjustment transaction)
The devices to be included in stock in or adjustment transaction (appicable only for traceable products)
The warehouse that it’s affected by all warehouse transactions
The ID of the warehouse to which the items will be moved (applicable only for movement transaction)
Responses
Successful Request
Body
The unique identifier of the warehouse transaction
POST https://stagingapi.crm.com/backoffice/v1/warehouse_transaction HTTP/1.1
Content-Type: application/json
{
"type": "ADJUSTMENT",
"items": [
{
"product_id": "6A24D2B5E44F44B28451FE021FCAD51E",
"supplier": "SUPPLIER",
"description": "A stock in transaction to import modems",
"cost_per_unit": 10.5,
"stock_in_quantity": 10,
"adjust_by_quantity": "+10",
"devices": [
"6A24D2B5E44F44B28451FE021FCAD51E"
],
"warehouse_id": "6A24D2B5E44F44B28451FE021FCAD51E",
"destination_warehouse_id": "6A24D2B5E44F44B28451FE021FCAD51E"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E"
}
{id}
/ownership_transferTransfer the ownership of a device from an organisation of classification Distributor or Retailer to a Contact OR to a Contact to another Contact
Path variables
The ID of the device to be transferred
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
The ID of the entity that will transfer the ownership of the device
The ID of the Contact to receive the ownership of the device
Responses
Successful Request
Body
The unique identifier of the device
POST https://stagingapi.crm.com/backoffice/v1/devices/6A24D2B5E44F44B28451FE021FCAD51E/ownership_transfer HTTP/1.1
Content-Type: application/json
{
"origin_entity": "CONTACT",
"origin_id": "6A24D2B5E44F44B28451FE021FCAD51E",
"destination_id": "6A24D2B5E44F44B28451FE021FCAD51E"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E"
}
{id}
Updates the device’s location or/and status
Path variables
The ID of the device 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 status of the DEVICE
The spatial location of the device (when located in the warehouse)
The installation location of the device (when used by a subscriber)
Responses
Successful Request
Body
The unique identifier of the device
PUT https://stagingapi.crm.com/backoffice/v1/devices/6A24D2B5E44F44B28451FE021FCAD51E HTTP/1.1
Content-Type: application/json
{
"status": "6A24D2B5E44F44B28451FE021FCAD51E",
"spatial_location": "",
"installation_location": ""
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E"
}
Updates the device’s location or/and 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 secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The ID of the device
The ID of the product
The name of the product
The device’s serial number
The status of the device
The ID of the status
The name of the status
The device owner information
The type of the owner
The ID of the device owner
The name of the device owner
The page number
The number of records per page
The overal number of records
GET https://stagingapi.crm.com/backoffice/v1/devices HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"device_id": "6A24D2B5E44F44B28451FE021FCAD51E",
"product": {
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "Set-top-box"
},
"serial_number": "STB123456",
"status": {
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "AVAILABLE"
},
"owner": {
"type": "RETAILER/DISTRIBUTOR",
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "John Johnson"
}
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}
Retrieves a specific device along with the device’s history
Path variables
The ID of the device 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 ID of the device
The ID of the product
The name of the product
The device’s serial number
The status of the device
The ID of the status
The name of the status
The device owner information
The type of the owner
The ID of the device owner
The name of the device owner
The device’s history entries, retrieved DESC based on performed date
The action that was performed on the device
The date and time that the action was performed
The user that performed the action
The ID of the user
The username of the user
The entity type from which the action was performed
The ID of the entity from which the action was performed
The entity type to which the item was destined to (if available)
The ID of the entity to which the item was destined to (if available)
The page number
The number of records per page
The overal number of records
GET https://stagingapi.crm.com/backoffice/v1/devices/6A24D2B5E44F44B28451FE021FCAD51E HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"device_id": "6A24D2B5E44F44B28451FE021FCAD51E",
"product": {
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "Set-top-box"
},
"serial_number": "STB123456",
"status": {
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "AVAILABLE"
},
"owner": {
"type": "BUSINESS/SUBSIDIARY",
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "John Johnson"
},
"history": [
{
"action": "TRANSFER",
"performed_on": 1594884977,
"performed_by": {
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"username": "johnjohnson"
},
"origin_type": "ORGANISATION",
"origin_id": "6A24D2B5E44F44B28451FE021FCAD51E",
"destination_type": "ORGANISATION",
"destination_id": "6A24D2B5E44F44B28451FE021FCAD51E"
}
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}
/subscriptions{id}
/history{id}
/actions{id}
/services{id}
/history{id}
/actions{id}
/subscriptionsReturns a list of subscriptions owned by a contact
Path variables
Request parameters
By default, terminated subscriptions are excluded. Use this parameter to get a list of terminated subscriptions only.
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 payment method unique identifier
The page number
The number of records per page
The overal number of records
GET https://stagingapi.crm.com/backoffice/v1/contacts/{id}/subscriptions HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"code": "",
"first_activation_date": 12345567,
"next_billing_cycle": 1234567,
"life_cycle_state": "CANCELLED",
"account": {
"id": "",
"number": "",
"name": ""
},
"terms": {
"agreement_date": 1,
"billing_period": {
"duration": 1,
"uot": "MONTHS"
},
"billing_day": {
"day_of_month": 1,
"day_of_week": "MONDAY"
},
"payment_method": {
"id": "",
"type": "WALLET",
"last4": "1234",
"brand": "VISA",
"funding_type": "CREDIT"
}
}
}
],
"pages": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}
/historyPath 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
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
GET https://stagingapi.crm.com/backoffice/v1/subscriptions/{id}/history HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"terms": [
{
"id": "",
"version": 1,
"effective_from": 1234567,
"effective_to": 1234567,
"agreement_date": 11234567,
"billing_period": {
"duration": 12,
"uot": "MONTHS"
},
"billing_day": {
"day_of_month": 15,
"day_of_week": "MONDAY"
},
"payment_method": {
"id": "",
"type": "CARD",
"last4": 1234,
"brand": "VISA",
"funding_type": "DEBIT"
}
}
],
"previous_services": [
{
"id": "",
"classification": "TERMED_SERVICE",
"life_cycle_state": "SWAPPED",
"activated_on": 12344567,
"removed_on": 123456778,
"product": {
"id": "",
"sku": "",
"name": ""
}
}
],
"future_service_changes": [
{
"id": "",
"classification": "TERMED_SERVICE",
"to_be_added_on": 12344567,
"to_be_removed_on": 1234567,
"product": {
"id": "",
"sku": "",
"name": ""
},
"action": {
"id": "",
"behaviour_code": "",
"business_classification_code": ""
}
}
],
"life_cycle_state_history": {
"active_state": {
"start_date": 1,
"end_date": 1,
"started_by_action": {
"id": "",
"behaviour_code": "",
"business_classification_code": ""
},
"ended_by_action": {
"id": "",
"behaviour_code": "",
"business_classification_code": ""
}
},
"cancelled_state": {
"start_date": 1,
"started_by_action": {
"id": "",
"behaviour_code": "",
"business_classifcation_code": ""
}
}
}
}
{id}
/actionsPath variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Required when changing the payment preference of the subscription’s terms
Required when changing the billing day of the subscription’s terms
Required when changing the billing frequency of the subscription’s terms
Required when changing the subscription’s terms
Required when pausing all of the services of a subscription
Responses
Body
PUT https://stagingapi.crm.com/backoffice/v1/subscriptions/{id}/actions HTTP/1.1
Content-Type: application/json
{
"behaviour_code": "TERMINATE_SUBSCRIPTION",
"business_classification_code": "CHANGE_PAYMENT_METHOD",
"classification_id": "",
"scheduled_date": 1,
"use_proposed_date": true,
"payment_method_id": "",
"billing_day": {
"day_of_week": "MONDAY",
"day_of_month": 15
},
"billing_period": {
"duration": 3,
"uot": "MONTHS"
},
"agreement_date": 1,
"number_of_days": 1
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}
/servicesReturns a list of services that a customer subscribed to
Path variables
Request parameters
If not specified, then all services of a subscription are returned
The classification of the service product
If specified, then the services of the specified subscription will be retrieved
By default, churned services are ecluded. Use this parameter to also retrieve the churrned services (churned due to termination or a change or expired one-time services)
By defualt, only existing, non-churned services are returned. Use this parameter to also retrieve services which are scheduled to be added and activated on a subscription
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Applicable only for One-time services
GET https://stagingapi.crm.com/backoffice/v1/contact/{id}/services HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"life_cycle_state": "EFFECTIVE",
"added_on": 1234567,
"removed_on": 1234567,
"first_activated_on": 1234567,
"rated_up_to": 1234567,
"rating_state": "COMPLETED",
"product": {
"id": "",
"sku": "",
"name": "",
"classification": "TERMED_SERVICE",
"type_composition": "FLEXIBLE_BUNDLE"
},
"price": {
"price": 9.99,
"currency": "EUR",
"price_type": "FIXED",
"billing_period": "MONTH"
},
"rating": {
"state": "PENDING",
"rated_up_to": 12345678
},
"terms": {
"billing_model": "PRE_BILL",
"auto_renew": true,
"term_state": "IN_SERVICE_TERMS",
"term_period": {
"duration": 18,
"uot": "MONTHS",
"start_date": 12345678,
"end_date": 12345678
}
},
"trial_period": {
"trial_state": "IN_TRIAL",
"start_date": 12345678,
"end_date": 12345677
},
"validity_period": {
"start_date": 1,
"end_date": 1
},
"subscription": {
"id": "",
"code": ""
},
"components": [
{
"id": "",
"sku": "",
"name": ""
}
]
}
]
}
{id}
/historyReturns the life cycle state change history of a subscription service
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
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/subscription_services/{id}/history HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"start_date": 1234567,
"end_date": 1234567,
"life_cycle_state": "EFFECTIVE",
"billing_information": {
"directive": "TO_BE_BILLED",
"effective_date": 1234567,
"billable_period_date": 134567,
"rating_state": "PENDING",
"rated_up_to": 1234567
},
"started_by_action": {
"id": "",
"code": "",
"behaviour_code": "BECOME_SUBSCRIBER",
"business_classification_code": "CREATE_AND_ACTIVATE"
},
"ended_by_action": {
"id": "",
"code": "",
"behaviour_code": "PAUSE_SUBSCRIPTION",
"business_classification_code": "PAUSE_SUBSCRIPTION"
}
}
],
"pages": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}
/actionsPerforms various actions on an existing subscription service
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 identifier of the service with which the current service will chage to. Applicable and mandatory if behaviour code is set to “Change Service”.
Applicable and mandatory when amending a service with a flexible composition.
Responses
Body
The unique identifier of the subscription action
PUT https://stagingapi.crm.com/backoffice/v1/subscription_services/{id}/actions HTTP/1.1
Content-Type: application/json
{
"behaviour_code": "CHANGE_TERMS",
"business_classification_code": "RENEWAL_OPT_IN",
"classification_id": "",
"scheduled_date": 12345678,
"use_proposed_scheduling": true,
"number_of_days": 1,
"change_to_service_id": "",
"components": [
""
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}
/actions{id}
{id}
{id}
/allowed_actions{id}
/allowed_actions{id}
/actionsRetrieves a list of actions for a specific subscription
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
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
{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
GET https://stagingapi.crm.com/backoffice/v1/subscirptions_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,
"classification": {
"id": "",
"name": ""
},
"services": [
{
"action": "ADDED",
"product": {
"id": "",
"sku": "",
"name": ""
}
}
]
}
{id}
Update an existing subscripton action. Only subscription actions in Scheduled life cycle state can be updated
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
Responses
Body
PUT https://stagingapi.crm.com/backoffice/v1/subscription_actions/{id} HTTP/1.1
Content-Type: application/json
{
"action": "CANCEL",
"classification_id": "",
"scheduled_date": 1234567,
"period_settings": {
"duration_in_days": 5,
"ends_on": 1234567
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{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://stagingapi.crm.com/backoffice/v1/subscirptions/{id}/allowed_actions HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"behaviour_code": "",
"business_classification_code": ""
}
]
{id}
/allowed_actionsRetrieves a list of subscription actions tha 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://stagingapi.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}
Create a new Topup for an Account or a 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
Date of Topup Request
The amount of the topup
Indicates the method of collecting money
The ID of the actual payment method if any
A unique 16-digit code that if not provided, it is auto-generated
Responses
Successful Request
Body
The unique identifier of the topup
POST https://devapi.crm.com/backoffice/v1/topups HTTP/1.1
Content-Type: application/json
{
"account_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"wallet_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"amount": 200,
"payment_method": "CASH",
"payment_method_id": ""
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}
Get an existing topup
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
The life cycle state of the topup
The account for which the topup will be performed. Either account or wallet is applicable.
The unique ID
The unique number
The wallet for which the topup will be performed. Either account or wallet is applicable.
The unique ID
The unique code
The created date of the topup. Defaults to the current date
The amount of the topup
Indicates the method of collecting money
The ID of the actual payment method if any
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 topup’s currency code
GET https://devapi.crm.com/backoffice/v1/topups/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"code": "1234567891234567",
"life_cycle_state": "POSTED",
"account": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "AC123456"
},
"wallet": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"code": "123456AAVV123685"
},
"topup_date": 1583846865,
"amount": 200,
"payment_method": "PAYPAL",
"payment_method_id": "",
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
}
}
{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
The destination of the transfer. Can be either an account or a wallet
date of transfer
The amount of the transfer
A uniquem 16-digit code that if not provided, it is auto-generated
Responses
Successful Request
Body
The unique identifier of the transfer
POST https://devapi.crm.com/backoffice/v1/transfers HTTP/1.1
Content-Type: application/json
{
"origin": {
"account_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"wallet_id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
},
"destination": {
"account_id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"wallet_id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
},
"amount": 200
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}
Get an existing transfer
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 code of the topup
The life cycle state of the transfer
The created date of the transfer.
The amount of the transfer
The origin of the transfer. Can be either an account or a wallet. Information about the Contact is retrieved for both options
The unique ID
The unique number
The unique ID
The unique code
The 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 for both options
The unique ID
The unique number
The unique ID
The unique code
The 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’s currency defaults to the origin’s account currency
GET https://devapi.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": 200,
"origin": {
"account": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "AC123456"
},
"wallet": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"code": "123456AAVV123685"
},
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "John Johnson",
"code": "C123"
}
},
"destination": {
"account": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"number": "AC123456"
},
"wallet": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"code": "123456AAVV123685"
},
"contact": {
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD",
"name": "Jane Johnson",
"code": "C124"
}
},
"currency_code": "EUR"
}
{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
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 in 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 organisations that the user is joined
The organisation’s external identifier
The organisation type
The organisation name
The organisation progress status
Defines whether a user (other than the owner) is invited
Defines whether a contact 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
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"
}
}
Provide authentication information using a refresh token that can be used in subsequent API calls
Request headers
The token that will be used to issue new authentication information
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 in 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 organisations that the user is joined
The organisation’s external identifier
The organisation type
The organisation name
The organisation progress status
Defines whether a user (other than the owner) is invited
Defines whether a contact 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
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
Body
Authentication information provided for an admin user
The token that can be used in subsequent API calls
The token that can be used in 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 organisations that the user is joined
The organisation’s external identifier
The organisation type
The organisation name
The organisation progress status
Defines whether a user (other than the owner) is invited
Defines whether a contact 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
POST /users/change_password HTTP/1.1
Content-Type: application/json
{
"token": "ABCTKN123456798VGP2020",
"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
}
{id}
/sign_outTerminates the user’ session and will no longer be able to access the client (SPA)
Path variables
The user identifier 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}
{id}
{id}
/activate{id}
/deactivate{id}
/invite_resend{id}
/invite_revokeInvite 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 identity type
The identity challenge
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
Body
Authentication information provided for an admin user
The token that can be used in subsequent API calls
The token that can be used in 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 organisations that the user is joined
The organisation’s external identifier
The organisation type
The organisation name
The organisation progress status
Defines whether a user (other than the owner) is invited
Defines whether a contact 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
POST /users/accept_invite HTTP/1.1
Content-Type: application/json
{
"token": "ABCTKN123456798VGP2020",
"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
}
{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 most preferred by the user for communication or 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 user’s contact detail
The value of the user’s contact detail
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"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "CAD1E31269B76D7A65ACCE45B2E68DFD"
}
{id}
Delete a user from a specific organisation
Path variables
The admin user identifier 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
OK
DELETE /users/CAD1E31269B76D7A65ACCE45B2E68DFD HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Search for 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)
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 most preferred by the user for communication or translation
The user’ status
The date when the user was invited
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 user’s contact info type
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 user identity provider
the identity’s challenge
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 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 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
The user identifier
The user’s first name
The user’s last name
The language most preferred by the user for communication or 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 info
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 user identity provider
The identity’s challenge
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
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}
/activateActivate a specific user
Path variables
The user 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 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 identifier 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"
}
{id}
/invite_revokeResend a user invitation
Path variables
The user identifier 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}
/contactinfo{id}
/contactinfo/{contactinfo_id}
{id}
/contactinfo/{contactinfo_id}
{id}
/contactinfoAdd contact info to a specific user
Path variables
The user 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
Defines the type of the contact info
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 identifier whose contact info will be update
The contact info 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 identifier whose contact info will be deleted
The contact info 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 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
Defines the type of the user 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 identifier whose identity will be updated
The identity 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 challenge
The user’s 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 identifier whose identity will be deleted
The identity 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}
{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 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 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 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
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"
}
{classification_id}
{classification_id}
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"
}
]
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
{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
{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 ID of the account classification
The name of the account classification
Defines whether it’s the default classification
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
The settings which defines how the account names are presented in the system
The allocation principle to allocate Credit Transactions against Debit Transactions
Number of months before the current month to close automatically the accounting period
The due date will be set on the xth day after the posted date
The due date will be set on the nth day of the xth month after the posted date
The number of days that the credit period can be adjusted by, on top of the current settings and based on the allowance
The default credit limit
The credit limit of the rule
The due date will be set on the xth day after the posted date
The due date will be set on the nth day of the xth month after the posted date
The number of days that the credit period can be adjusted by, on top of the current settings and based on the allowance
The name of the credit period rule
The unique identifiers of tha account classifications that are conditions of the specified rule. Applicable only for the non-default rule
Responses
Successful Request
Body
The unique identifier of the organisation
PUT https://stagingapi.crm.com/backoffice/v1/account_generic_settings HTTP/1.1
Content-Type: application/json
{
"name_display_settings": "ACCOUNT_NUMBER",
"allocation_settings": "FIFO",
"accounting_period_settings": {
"close_months_before": 3
},
"credit_period_settings": {
"day_after_posted_date": 5,
"day_months_after_posted_date": {
"xth_days": 5,
"xth_month": 1
},
"credit_period_adjust": 5,
"credit_limit": 200,
"additional_rules": [
{
"credit_limit": 200,
"day_after_posted_date": 3,
"day_months_after_posted_date": {
"xth_days": 2,
"xth_month": 2
},
"credit_period_adjust": 1,
"rule_name": "VIP",
"account_classifications_conditions": [
"4AD9C84FA60F9FE407140E20F707726A"
]
}
]
},
"numbering_schemes": [
{
"entity": "ACCOUNTS",
"prefix": "",
"number_of_digits": 5,
"starting_number": "00001"
}
]
}
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 settings which defines how the account names are presented in the system
The allocation principle to allocate Credit Transactions against Debit Transactions
Number of months before the current month to close automatically the accounting period
The due date will be set on the xth day after the posted date
The due date will be set on the nth day of the xth month after the posted date
The number of days that the credit period can be adjusted by, on top of the current settings and based on the allowance
The default credit limit
The credit limit of the rule
The due date will be set on the xth day after the posted date
The due date will be set on the nth day of the xth month after the posted date
The number of days that the credit period can be adjusted by, on top of the current settings and based on the allowance
The name of the credit period rule
The unique identifiers of tha account classifications that are conditions of the specified rule. Applicable only for the non-default rule
The ID of the account classification
The name of the account classification
GET https://devapi.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_period_settings": {
"day_after_posted_date": 5,
"day_months_after_posted_date": {
"xth_days": 5,
"xth_month": 1
},
"credit_period_adjust": 5,
"credit_limit": 1,
"additional_rules": [
{
"credit_limit": 1,
"day_after_posted_date": 3,
"day_months_after_posted_date": {
"xth_days": 2,
"xth_month": 2
},
"credit_period_adjust": 1,
"rule_name": "VIP",
"account_classifications_conditions": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "VIP"
}
]
}
]
},
"numbering_schemes": [
{
"entity": "CREDIT_NOTES",
"prefix": "",
"starting_number": "",
"number_of_digits": 1,
"last_number": ""
}
]
}
Managing Application Settings and Publishing
{id}
{id}
{id}
{id}
/settings{id}
/media{id}
/publish{id}
/status{id}
/statusCreate 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 Applications (Apple and Google)
Web 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 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 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 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/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
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
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 identifier 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
Details about the app appearance
The background color that the app will use as the main color (hex code)
The color that the app will use on all card like components (hex code)
The text font style that the app will use
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 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 the supported rewards items (only if rewards feature is supported)
Defines whether automatic spend preferences will be supported
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
Details on how customers can auth by the app
Supported authentication based on email and password
Email Verification required (if auth method = email & password)
Supported authentication based on one time password
Supported authentication based on Facebook
Supported authentication based on Google
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
The application version
GET https://sandbox.crm.com/backoffice/v1/applications/bd909bd2-2397-8af8-b256-87e496620209 HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "0b9ab3de-af32-47f9-faca-ff5c94063819",
"name": "Brew App",
"description": "Best coffee brew apps",
"app_type": "NATIVE",
"appearance": {
"background_color": "#eb4034",
"card_color": "#eb4034",
"text_font": "Open Sans"
},
"about_details": {
"about": {
"url": "https?/crm.com"
},
"terms_conditions": {
"url": "https?/crm.com"
},
"privacy_policy": {
"content": "Privacy Policy"
},
"contact_us": {
"email_address": "info@crm.com",
"phone_country_code": "357",
"phone_number": "22265566",
"website": "https?/crm.com"
}
},
"features": {
"billing": true,
"rewards": true,
"ordering": true,
"ordering_details": {
"ordering_pickup": true,
"ordering_delivery": true
},
"rewards_details": {
"automatic_spends": true,
"return_cashback": true,
"customer_selfservice_purchases": true
}
},
"auth_support": {
"email_password": true,
"email_verification": false,
"sms_otp": true,
"facebook": true,
"google": true
},
"contact": {
"profile_details": [
{
"type": "GENDER",
"is_supported": true
}
]
},
"app_identifiers": [
{
"platform": "APPLE",
"platform_app_id": "1762e052-4805-73eb-36f2-e77d6dc883e8",
"version": "1.1"
}
]
}
{id}
/settingsSet the configuration details (appearance, supported features) of a single application
Path variables
The application identifier 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)
The color that the app will use on all card like components (hex code)
The text font style that the app will use
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 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 the supported rewards items (only if rewards feature is supported)
Defines whether automatic spend preferences will be supported
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
Details on how customers can auth by the app
Supported authentication based on email and password
Email Verification required (if auth method = email & password)
Supported authentication based on one time password
Supported authentication based on Facebok
Supported authentication based on Google
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 for each platform
The application version
Responses
Successfull Completed
Body
The application identifier
POST https://sandbox.crm.com/backoffice/v1/application/f8343fdf-a91f-1def-a265-35ac78b0a3ba/settings HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"appearance": {
"background_color": "#eb4034",
"card_color": "#eb4034",
"text_font": "Gilroy"
},
"about_details": {
"about": {
"content": "About Us"
},
"terms_conditions": {
"url": "https?/crm.com"
},
"privacy_policy": {
"content": "Privacy Policy"
},
"contact_us": {
"email_address": "info@crm.com",
"website": "https?/crm.com"
}
},
"features": {
"billing": "false",
"rewards": true,
"ordering": true,
"ordering_details": {
"ordering_pickup": true,
"ordering_delivery": false
},
"rewards_details": {
"automatic_spends": "true",
"return_cashback": "false",
"customer_selfservice_purchases": "true"
}
},
"auth_support": {
"email_password": true,
"email_verification": false,
"sms_otp": false,
"facebook": false,
"google": true
},
"contact": {
"profile_details": [
{
"type": "GENDER",
"is_supported": "false"
},
{
"type": "BIRTHDATE",
"is_supported": "true"
},
{
"type": "NAMEDAY",
"is_supported": "true"
}
]
},
"app_identifiers": [
{
"platform": "GOOGLE",
"platform_app_id": "1762e052-4805-73eb-36f2-e77d6dc883e8",
"version": "1.1"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "90f91e6b-54a4-6b93-5200-79ba9a361cb0"
}
{id}
/mediaSet a media to an existing application
Path variables
The application identifier that media 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 media identifier that is added to the application
The media type that was added to the application
Date of publishing
Responses
The request has succeeded
POST https://sandbox.crm.com/backoffice/v1/applications/3a75f235-b5aa-e424-99b7-306d4d490954/media HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
Content-Type: application/json
{
"media_id": "c9198b94-28b2-32b4-8d51-3e2e24ed7d20",
"media_type": "SPLASH",
"publish_date": 1
}
HTTP/1.1 200 OK
{id}
/publishPublish an existing application (either on a self-service manner or automatically)
Path variables
The application identifier that will be published
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The unique app id for each platform
The platform on which the application will be published to
The version of the published version
Set to self_publish does not require connection to Platform tools sch as Apple Connect
Connection method to APPLE, GOOGLE etc if automated publishing is used.
Responses
Successfull completed
Body
The application publish request identifier
POST https://sandbox.crm.com/backoffice/v1/applications/68b2776f-d25e-4c91-1ed8-3727c264308c/publish HTTP/1.1
Content-Type: application/json
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"app_id": "324ba16b-9304-1eaf-e8ef-1a31c2edc8a2",
"platform": "APPLE",
"version": "1.1",
"self_publish": "true"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "891faeb8-b891-12e1-a76e-1a8ba9fa41f7"
}
{id}
/statusPath variables
Request body
Link to a specific platform Version
Date of status entry can be null and will accept system date
{id}
/statusGet status of Applications
Path variables
The application identifier that its status will be retrieved
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
GUID of Publish Item to link status to a published version / on pending version
Current Status of entry
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"
}
{category_id}
{category_id}
{name_day_rule_id}
{name_day_rule_id}
{id}
{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.
Enable to anonymize contacts and their uniquely identifiable information based on conditions
The contact will only get anonymized if the contact has not been updated after X months
The contact will only get anonymized if their latest terminated subscription, was not terminated after X months
The contact will only get anonymized if their latest posted financial transaction of those types were not posted after X months
The IDs of the financial transaction types
Responses
Successful Request
Body
The unique identifier of the organisation
PUT https://devapi.crm.com/backoffice/v1/contact_generic_settings HTTP/1.1
Content-Type: application/json
{
"name_display_settings": "LAST_MIDDLE_FIRST",
"cim_settings": [
{
"medium": "EMAIL",
"is_enabled": true
}
],
"consent_settings": {
"enable_consent": true,
"functionality_on_pending": "FULL_FUNCTIONALITY",
"functionality_on_rejecting": "ANONYMIZE",
"functionality_on_withdraw": "NO_FUNTIONALITY"
},
"anonymization_settings": {
"enable_anonymization": true,
"last_updated_months": 1,
"latest_subscription_termination_months": "1581937020",
"latest_posted_financial_transactions": {
"number_of months": 1,
"financial_transaction_types": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]
}
}
}
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
The IDs of the financial transaction types
GET https://devapi.crm.com/backoffice/v1/contact_generic_settings HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"name_display_settings": "FIRST_LAST",
"cim_settings": [
{
"medium": "PHONE",
"is_enabled": true
}
],
"consent_settings": {
"is_enabled": true,
"functionality_on_pending": "FULL_FUNCTIONALITY",
"functionality_on_rejecting": "ANONYMIZE",
"functionality_on_withdraw": "ANONYMIZE",
"consent_file_url": ""
},
"anonymization_settings": {
"is_enabled": true,
"last_updated_months": 1,
"latest_subscription_termination_months": 1,
"latest_posted_financial_transactions": {
"number_of_months": 1,
"financial_transaction_types": [
"CAD1E31269B76D7A65ACCE45B2E68DFD"
]
}
}
}
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
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
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://stagingapi.crm.com/backoffice/v1/kyc_profile HTTP/1.1
Content-Type: application/json
{
"name": "Standard Customers",
"description": "The KYC Profile",
"conditions": [
{
"name": "KYC_PROFILE",
"value": "4AD9C84FA60F9FE407140E20F707726A"
}
],
"fields": [
{
"sets": [
"middle_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://stagingapi.crm.com/backoffice/v1/kyc_profile/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1
Content-Type: application/json
{
"name": "Standard Customers",
"description": "The KYC Profile",
"conditions": [
{
"name": "KYC_PROFILE",
"value": "4AD9C84FA60F9FE407140E20F707726A"
}
],
"fields": [
{
"sets": [
"company_name"
]
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726A"
}
{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://stagingapi.crm.com/backoffice/v1/kyc_profile/{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
The ID of the KYC profile
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://stagingapi.crm.com/backoffice/v1/kyc_profile HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "Standard Customers",
"description": "The KYC Profile",
"conditions": [
{
"name": "CONTACT_CATEGORY",
"value": "4AD9C84FA60F9FE407140E20F707726A"
}
],
"fields": [
{
"sets": [
"company_name"
]
}
]
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{currency_id}
{currency_id}
{currency_id}
Add a new currency
Notes
Currencies can be configured per Service Owner/Business/Subsidiary 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"
}
{currency_id}
Update an existing currency
Path variables
The currency 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 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"
}
{currency_id}
Remove an existing currency from the supported ones
Path variables
The currency identifier 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)
Notes
Currencies can be configured per Service Owner/Business/Subsidiary organisations
Request parameters
The currency code
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 currency identifer
The currency code
The conversaion rate of the currency in regards to the base currency
The page number
The number of records per page
The overal number of records
GET https://devapi.crm.com/backoffice/v1/organisations/4AD9C84FA60F9FE407140E20F707726A/currencies HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"code": "EUR",
"rate": 1.234
}
]
}
{currency_id}
Get details for a single currency
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
The currency identifier
The currency code
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}
/{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 type
The entity for which the custom field will be applicable
Disabled custom fields are no longer in use, therefore not visible in the screen
Defines whether the custom field will be avaialble in the user interface or not
Apllicable 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
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
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
{
"key": "back_office",
"label": "Back Office",
"description": "The account's back office code",
"tooltip": "lorem ipsum",
"type": "SELECTION",
"entity": "CONTACTS",
"enabled": true,
"visible": true,
"options": [
{
"key": "option_1",
"text": "my option 1",
"default": true
}
]
}
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 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
Responses
Body
The custom field identifier
PUT https://stagingapi.crm.com/backoffice/v1/custom_fields/{id} HTTP/1.1
Content-Type: application/json
{
"key": "back_office",
"label": "Back Office",
"description": "The account's back office code",
"tooltip": "",
"type": "SELECTION",
"entity": "ACCOUNTS",
"enabled": true,
"visible": true,
"options": [
{
"key": "option_1",
"text": "my option 1",
"default": true
}
]
}
{id}
Deletes a custom field
Path variables
The custom field 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/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
Filters custom fields that are enabled or not enabled
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 key of the custom field
The custom field’s label
A description of the custom field
The custom field’s UI field type
The related entity with the custom fields
GET https://sandbox.crm.com/backoffice/v1/custom_fields?entity=CONTACTS HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "f68fad29-4a1b-3a1e-5cfa-6540a5b1609a",
"key": "back_office",
"label": "Back Office",
"description": "The account's back office code",
"enabled": true,
"visible": true,
"field": "RADIO_BUTTONS",
"entity": "CONTACTS"
}
]
{id}
/Returns a list of custom fields configured in the system
Path variables
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
GET https://stagingapi.crm.com/backoffice/v1/custom_fields/{id}/ 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": "",
"type": "SELECTION",
"entity": "CONTACTS",
"enabled": true,
"visible": true,
"options": [
{
"key": "option_1",
"text": "my option 1",
"default": true
}
]
}
Changes the order/priorioty 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/{id}/ordering" \
-H "Content-Type: application/json" \
-d '[
{
"id": "",
"previous_seq": 1,
"new_seq": 4
}
]'
{id}
Delete an existing custom panel
Path variables
The custom panel 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/custom_panels/f68fad29-4a1b-3a1e-5cfa-6540a5b1609a HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Retrieces all custom panels
Request parameters
Location of Base
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
The custom panel identifier
The custom panel name
The custom panel description
The location that custom panel will be positioned
The x-axis position
The y-axis position
GET https://sandbox.crm.com/backoffice/v1/custom_panels HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": "f68fad29-4a1b-3a1e-5cfa-6540a5b1609a",
"name": "Special Needs",
"description": "lorem ipsum",
"base_location": "CONTACT",
"x": 1,
"y": 1
}
]
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
The maximum referrals that a customer can make
Responses
Successful Request
Body
The unique identifier of the organisation
PUT /customer_event_generic_settings HTTP/1.1
Content-Type: application/json
authorization: 4AD9C84FA60F9FE407140E20F707726A
{
"purchase_settings": {
"invalid_product_type_id": "QWERTY1234543212345678UJIKY76HJR"
},
"referral_settings": {
"max_customer_referrals": 3
}
}
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
The product type identifier that will be used when creating invalid products from purchase customer events
The maximum referrals that a customer can make
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"
},
"referral_settings": {
"max_customer_referrals": 3
}
}
{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 customer event 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 unique identifier of the contact category
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 settings which defines how the account names are presented in the system
GET https://stagingapi.crm.com/backoffice/v1/financial_settings HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"tax_model": "TAX_INCLUSIVE"
}
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
Defines the default taxation model i.e. whether pricing willl be tax inclusive ro exclusive
Responses
Successful Request
PUT https://stagingapi.crm.com/backoffice/v1/financial_settings HTTP/1.1
Content-Type: application/json
{
"tax_model": "TAX_INCULSIVE"
}
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 classification 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
{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
{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
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 classification of the financial transaction type
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 total number of records overall
{id}
{id}
{id}
{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 unique identifier of the industry
{id}
Update a specific instustry
Path variables
The ID of the industry 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 industry to be updated
Responses
Successful Request
Body
The unique identifier of the contact industry
{id}
Delete an industry
Path variables
The ID of the contact industry 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
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
{id}
Retrieve a single industry
Path variables
The id of the contact industry 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
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 ID of the industry related to the industry sectors
Responses
Successful Request
Body
The unique identifier of the industry sector
{id}
Update a specific Industry Sector
Path variables
The ID of the industry sector 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 industry sector to be updated
Responses
Successful Request
Body
The unique identifier of the contact industry sector
{id}
Delete an industry sector
Path variables
The ID of the industry sector to 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
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
{id}
Retrieve a single industry sector
Path variables
The ID of the industry sector 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
Update the supported languages that content can be translated to
Notes
Languages can be configured per Service Owner/Business/Subsidiary 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
Notes
Languages can be configured per Service Owner/Business/Subsidiary 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 supported language code
English
Greek
GET https://devapi.crm.com/backoffice/v1/organisations/7cc1b26a-459f-4b47-a09f-6b121ae947da/languages HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"language": "ENG"
}
]
{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
Examples
{
"id": "4AD9C84FA60F9FE407140E20F707726A"
}
POST https://devapi.crm.com/backoffice/v1/lost_reasons HTTP/1.1
Content-Type: application/json
{
"name": "Requirements",
"description": "The product does not meet customer's requirements"
}
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
Examples
{
"content": [
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "Pricing",
"description": "Pricing not within organisation's budget"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
GET https://devapi.crm.com/backoffice/v1/lost_reasons HTTP/1.1
{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
Examples
{
"id": "74D9C84FA60F9FE407140E20F707726A"
}
PUT https://devapi.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."
}
{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://devapi.crm.com/backoffice/v1/lost_reasons/74D9C84FA60F9FE407140E20F707726A HTTP/1.1
{id}
{id}
{id}
{id}
/clone{id}
/state{id}
/pipeline_stages{id}
/pipeline_stage/{stage_id}
{id}
/pipeline_stages/{stage_id}
Create a pipeline 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 pipeline
Examples
Responses
Body
The unique identifier of the newly created pipeline
Examples
{
"id": "V349C84FA60F9FE407140E20F707726A"
}
POST https://devapi.crm.com/backoffice/v1/pipelines HTTP/1.1
Content-Type: application/json
{
"name": "European subscriptions lead"
}
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 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 pipeline
The name of the pipeline
The life cycle state of the pipeline
The page number
The number of records per page
The overal number of records
Examples
{
"content": [
{
"id": "74D9C84FA60F9FE407140E20F707726A",
"name": "Small local business lead",
"state": "Effective"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
GET https://stagingapi.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",
"state": "Effective"
}
],
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}
Retrieve a pipeline and it’s pipeline 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 stages defined for the lead
Lead pipeline stage GUID
Pipeline stage name
The order of the stage within the pipeline
Examples
{
"id": "",
"name": "Small local business lead",
"state": "Effective",
"pipeline_stages": [
{
"id": "6A24D2B5E44F44B28451FE021FCAD51E",
"name": "Proposal submitted",
"order": "4"
}
]
}
GET https://devapi.crm.com/backoffice/v1/pipelines/74D9C84FA60F9FE407140E20F707726A HTTP/1.1
{id}
Update a pipeline name
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
Examples
Responses
Body
The unique identifier of the updated pipeline
Examples
{
"id": "74D9C84FA60F9FE407140E20F707726A"
}
PUT https://devapi.crm.com/backoffice/v1/pipelines/74D9C84FA60F9FE407140E20F707726A HTTP/1.1
Content-Type: application/json
{
"name": "Large-scale business lead"
}
{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://devapi.crm.com/backoffice/v1/pipelines/74D9C84FA60F9FE407140E20F707726A HTTP/1.1
{id}
/cloneCreate a copy of an existing pipeline with a given new name
Path variables
The GUID of the pipeline to be cloned
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 new pipeline
Examples
Responses
Body
The unique identifier of the newly created pipeline
Examples
{
"id": "V349C84FA60F9FE407140E20F707726A"
}
POST https://devapi.crm.com/backoffice/v1/pipelines/6A24D2B5E44F44B28451FE021FCAD51E/clone HTTP/1.1
Content-Type: application/json
{
"name": "European subscriptions lead"
}
{id}
/stateUpdate the life-cycle-state of a pipeline
Path variables
The GUID of the pipeline whose 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 of the pipeline
Examples
Responses
Body
The unique identifier of the updated pipeline
Examples
{
"id": "74D9C84FA60F9FE407140E20F707726A"
}
PUT https://devapi.crm.com/backoffice/v1/pipelines/74D9C84FA60F9FE407140E20F707726A/state HTTP/1.1
Content-Type: application/json
{
"state": "Not effective"
}
{id}
/pipeline_stagesCreate a pipeline stage for a pipeline
Path variables
The GUID of the pipeline for which the pipeline stage 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 pipeline stage name (must be unique within the pipeline)
Examples
Responses
Body
The unique identifier of the newly created pipeline stage
Examples
{
"id": "V349C84FA60F9FE407140E20F707726A"
}
POST https://devapi.crm.com/backoffice/v1/pipelines/99UL9C84FA60F9FE407140E20F707726N/pipeline_stages HTTP/1.1
Content-Type: application/json
{
"name": "Initial contact"
}
{id}
/pipeline_stage/{stage_id}
Update a pipeline stage by changing the name or the order
Path variables
The GUID of the pipeline
The GUID of the pipeline stage 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 pipeline stage name (must be unique within the pipeline)
The order that the pipeline stage will appear within the pipeline
Responses
Body
The unique identifier of the updated pipeline stage
Examples
{
"id": "74D9C84FA60F9FE407140E20F707726A"
}
PUT https://devapi.crm.com/backoffice/v1/pipelines/74D9C84FA60F9FE407140E20F707726A/pipeline_stage/LLE9C84FA60F9FE407140E20F7077280 HTTP/1.1
Content-Type: application/json
{
"name": "Needs identified",
"order": "2"
}
{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
Responses
DELETE https://devapi.crm.com/backoffice/v1/pipelines/74D9C84FA60F9FE407140E20F707726A/pipeline_stages/PR90C84FA60F9FE407140E20F7077277 HTTP/1.1
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
GET https://stagingapi.crm.com/backoffice/v1/order_settings HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"numbering_schemes": [
{
"entity": "ORDERS",
"prefix": "",
"starting_number": "",
"number_of_digits": 1,
"last_number": ""
}
]
}
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
Responses
PUT https://stagingapi.crm.com/backoffice/v1/order_settings HTTP/1.1
Content-Type: application/json
{
"numbering_schemes": [
{
"entity": "ORDERS",
"prefix": "",
"starting_number": "",
"number_of_digits": 1
}
]
}
{id}
{id}
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 cancellation reason based on its 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://devapi.crm.com/backoffice/v1/order_cancellation_reasons HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"name": "",
"description": "",
"pages": {
"page": 2,
"size": 20,
"total": 5124
}
}
],
"pages": {
"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}
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
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_queues HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "74D9C84FA60F9FE407140E20F707726A",
"name": "Basic food ordering queue",
"description": "",
"state": "ACTIVE"
}
],
"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
"NEW", "IN_PROGRESS"
The name of the product or type or family or classification according to item_type
GET https://stagingapi.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",
"state": "ACTIVE",
"requires_assignment": "false",
"life_cycle_states": [
"NEW"
],
"products": [
{
"item_type": "TYPE",
"item_id": "",
"item_name": ""
}
]
}
Creates 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
The order’s life cycle states supported in this queue
Includes
Applicable and mandatory if item type is set to Product, Type or Family
Applicable and mandatory if item type is set to Classification, which represents the product’s classification
Responses
Body
POST https://stagingapi.crm.com/backoffice/v1/order_queues HTTP/1.1
Content-Type: application/json
{
"name": "",
"descripion": "",
"state": "ACTIVE",
"requires_assignement": "false",
"life_cycle_states": [
"PENDING"
],
"products": [
{
"item_type": "FAMILY",
"item_id": "",
"classification": "TRACEABLE_PHYSICAL_GOODS"
}
]
}
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
Responses
Body
PUT https://stagingapi.crm.com/backoffice/v1/order_queues/{id} HTTP/1.1
Content-Type: application/json
{
"name": "",
"descripion": "",
"state": "ACTIVE",
"requires_assignement": true,
"life_cycle_states": [
"COMPLETED"
],
"products": [
{
"item_type": "PRODUCT",
"item_id": "",
"classification": "NON_TRACEABLE_PHYSICAL_GOOD"
}
]
}
{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
{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 unique identifier of the orgnaisation that will fulfill orders based on this policy
A list of order queues. The list includes a list of order queue unique identifiers
Responses
The request has succeeded
Body
The fulfillment policy identifier
POST https://stagingapi.crm.com/backoffice/v1/order_fulfillment_policies/ HTTP/1.1
Content-Type: application/json
{
"name": "",
"description": "",
"supply_methods": "",
"milestones_enabled": true,
"minimum_amount": 1,
"expiration_settings": {
"type": "NEVER_EXPIRES",
"expires_in": 3,
"expiration_UOT": "DAYS"
},
"quotation_settings": {
"enabled": true,
"enforce_acceptance": true,
"expiration_type": "NEVER_EXPIRES",
"expires_in": 3,
"expiration_UOT": "DAYS"
},
"average_completion_time": {
"time_to_complete": 30,
"time_to_complete_UOT": "MINUTES"
},
"expenses": [
{
"supply_method": "DELIVERY",
"product_id": ""
}
],
"milestones": [
{
"ordering": 1,
"type": "ON_STARTING_PROGRESS",
"pricing_directive": "AMOUNT",
"pricing_directive_value": 10,
"due_date_setting": {
"due_in": "X_PERIOD_AFTER",
"due_period": "MINUTES",
"due_period_value": 30
}
}
],
"organisation_id": "",
"queues": [
""
]
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": ""
}
{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
A list of order queues unique identifiers
Responses
The request has succeeded
Body
The order fulfillment policy identifier
PUT https://stagingapi.crm.com/backoffice/v1/order_fulfillment_policies HTTP/1.1
Content-Type: application/json
{
"name": "",
"description": "",
"supply_methods": "",
"milestones_enabled": true,
"minimum_amount": 1,
"expiration_settings": {
"type": "NEVER_EXPIRES",
"expires_in": 3,
"expiration_UOT": "DAYS"
},
"quotation_settings": {
"enabled": true,
"enforce_acceptance": true,
"expiration_type": "NEVER_EXPIRES",
"expires_in": 3,
"expiration_UOT": "DAYS"
},
"average_completion_time": {
"time_to_complete": 30,
"time_to_complete_UOT": "MINUTES"
},
"expenses": [
{
"supply_method": "DELIVERY",
"product": {
"id": "",
"sku": ""
}
}
],
"milestones": [
{
"ordering": 1,
"type": "ON_START_PROGRESS",
"pricing_directive": "BASED_ON_DELIVERED_ITEMS",
"pricing_directive_value": 1,
"due_date_setting": {
"due_in": "X_PERIOD_AFTER",
"due_period": "MINUTES",
"due_period_value": 30
}
}
],
"organisation_id": "",
"queues": [
""
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{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://stagingapi.crm.com/backoffice/v1/order_fulfillment_policies HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"name": "",
"description": "",
"supply_methods": "ALL",
"organisation": {
"id": "",
"name": ""
}
}
],
"pages": {
"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
GET https://stagingapi.crm.com/backoffice/v1/order_fulfillment_policies/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"name": "",
"description": "",
"supply_methods": "PICK_UP",
"milestones_enabled": true,
"minimum_amount": 1,
"currency": "EUR",
"expiration_settings": {
"type": "NEVER_EXPIRES",
"expires_in": 3,
"expiration_UOT": "DAYS"
},
"quotation_settings": {
"enabled": true,
"enforce_acceptance": true,
"expiration_type": "NEVER_EXPIRES",
"expires_in": 3,
"expiration_UOT": "DAYS"
},
"average_completion_time": {
"time_to_complete": 30,
"time_to_complete_UOT": "MINUTES"
},
"organisation": {
"id": "",
"name": ""
},
"expenses": [
{
"supply_method": "DELIVERY",
"product": {
"id": "",
"sku": ""
}
}
],
"milestones": [
{
"ordering": 1,
"type": "ON_STARTING_PROGRESS",
"pricing_directive": "PERCENTAGE",
"pricing_directive_value": 1,
"due_date_setting": {
"due_in": "X_PERIOD_AFTER",
"due_period": "MINUTES",
"due_period_value": 30
}
}
],
"queues": [
{
"id": "",
"name": "",
"state": "INACTIVE"
}
]
}
{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
{id}
{id}
{id}
Create the pass 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 pass type
A description of the pass type
The classification of the pass type
The promotion that the promotion pass will consume. Only applicable for classifications PROMOTION
The reward offer that the promotion pass will consume. Only applicable for classifications PROMOTION
The distribution method of the Passes to be created. Applicable only for PROMOTION
The usage settings that define how the passes will be used
The usage method
The maximum usage allowed in case of method Multiple
The validity of the passes
The validity type
The validity period
The UOT of the period
The “valid until” date in case of DATE type
The value of the pass in case of GIFT and TOPUP
The fixed amount of value
The minimum allowed value for the VARIABLE range
The maximum allowed value for the VARIABLE range
The code format
The type of the code format
The prefix of the code
The suffix of the code
The length of the code
It denotes whether an OTP will be required to validate the pass, providing the code. Default value is false
Defines whether generated passes will need a pin
The set of products that will conume the pass’s money.
Defines whether a specific product or products of a specific family will consume the pass’s money
The unique identifier of either a product or a product family
Responses
Successful Request
Body
The unique identifier of the pass type
POST https://stagingapi.crm.com/backoffice/v1/pass_types HTTP/1.1
Content-Type: application/json
{
"name": "Xmas Gift Cards",
"description": "Gift Cards for Christmas",
"classification": "GIFT",
"promotion_id": "4AD9C84FA60F9FE407140E20F707726A",
"reward_offer_id": "4AD9C84FA60F9FE407140E20F707726A",
"distribution_method": "MULTIPLE",
"usage": {
"method": "MULTIPLE",
"maximum_usage": "2"
},
"validity": {
"type": "PERIOD",
"period": 1,
"uot": "YEAR",
"to_date": 1591703675
},
"value": {
"type": "VARIABLE",
"fixed_amount": 200,
"minimum": 50,
"maximum": 1
},
"code_format": {
"type": "ALPHANUMERIC",
"prefix": "SUM",
"suffix": "20",
"length": 10,
"otp_required": "true"
},
"products": [
{
"item_type": "FAMILY",
"item_id": ""
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726A"
}
{id}
Update a specific pass type
Path variables
The ID of the pass 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 pass type
A description of the pass type
The usage settings that define how the passes will be used
The usage method
The maximum usage allowed in case of method Multiple
The validity of the passes
The validity period
The UOT of the period
The “valid until” date in case of DATE type
The code format
The type of the code format
The prefix of the code
The suffix of the code
The length of the code
It denotes whether an OTP will be required to validate the pass, providing the code. Default value is false
Defines whether generated passes will need a pin
The set of products that will conume the pass’s money.
Defines whether a specific product or products of a specific family will consume the pass’s money
The unique identifier of either a product or a product family
Responses
Successful Request
Body
The unique identifier of the pass type
PUT https://stagingapi.crm.com/backoffice/v1/pass_types/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1
Content-Type: application/json
{
"name": "Xmas Gift Cards",
"description": "Gift Cards for Christmas",
"usage": {
"method": "SINGLE",
"maximum_usage": "2"
},
"validity": {
"type": "DATE",
"period": 1,
"uot": "DAY",
"to_date": 1591703675
},
"code_format": {
"type": "ALPHABETIC",
"prefix": "SUM",
"suffix": "20",
"length": 10,
"otp_required": "true"
},
"products": [
{
"item_type": "",
"item_id": ""
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726A"
}
{id}
Delete an existing pass type
Path variables
The pass type 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/pass_types/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1
authorization: eyJraWQiOiIvcHJpdmF0ZUtleS5wZW0iLCJ0eXAiOiJKV
HTTP/1.1 200 OK
List all the available pass 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 Pass Type Name
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 pass type
The description of the pass type
The classification of the pass type
The total number of lots of the pass type
The page number
The number of records per page
The overal number of records
GET https://stagingapi.crm.com/backoffice/v1/pass_types HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"name": "Xmas Gift Cards",
"description": "Gift Cards for Christmas",
"classification": "TOPUP",
"paging": {
"page": 2,
"size": 20,
"total": 5124
}
}
]
}
{id}
Gets an existing pass type
Path variables
The ID of the pass type 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 name of the pass type
The description of the pass type
The classification of the pass type
The promotion that the passes will consume
The ID of the promotion
The name of the promotion
The reward offer that the promotion pass will consume.
The ID of the reward offer
The name of the reward offer
The distribution method of the pass type
The usage settings of the pass type
The maximum usage allowed in case of method Multiple
The validity of the pass of classification GIFT and TOPUP
The validity period
The UOT of the period
The “valid until” date in case of DATE type
The value of the pass in case of GIFT and TOPUP
The fixed amount of value
The minimum allowed value for the VARIABLE range
The maximum allowed value for the VARIABLE range
The code format
The type of the code format
The prefix of the code
The suffix of the code
The length of the code
It denotes whether an OTP will be required to validate the pass, providing the code. Default value is false
Defines whether generated passes will need a pin
The set of products that will conume the pass’s money.
Defines whether a specific product or products of a specific family will consume the pass’s money
The unique identifier of either a product or a product family
GET https://stagingapi.crm.com/backoffice/v1/pass_types/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"name": "Xmas Gift Cards",
"description": "Gift Cards for Christmas",
"classification": "GIFT",
"promotion": {
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "XMAS 50% off"
},
"reward_offer": {
"id": "4AD9C84FA60F9FE407140E20F707726A",
"name": "Birthday Offer"
},
"distribution_method": "MULTIPLE",
"usage": {
"method": "MULTIPLE",
"maximum_usage": 1
},
"validity": {
"type": "PERIOD",
"period": 1,
"uot": "MONTH",
"to_date": 1591703675
},
"value": {
"type": "FIXED",
"fixed_amount": 200.5,
"minimum": 10.5,
"maximum": 100.5
},
"code_format": {
"type": "NUMERIC",
"prefix": "SUM",
"suffix": "20",
"length": 10,
"otp_required": true
},
"products": [
{
"item_type": "PRODUCT",
"item_id": ""
}
]
}
Retrieve the setting of the product synchronisation process
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
GET https://stagingapi.crm.com/backoffice/v1/product_synchronisation_settings HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"auto_generated_config": true,
"product_brand": {
"id": "",
"name": ""
},
"product_family": {
"id": "",
"name": ""
},
"product_category": {
"id": "",
"name": ""
},
"product_type": {
"id": "",
"name": ""
}
}
Update the settings of the product synchronisation process
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Responses
PUT https://stagingapi.crm.com/backoffice/v1/product_synchronisation_settings HTTP/1.1
Content-Type: application/json
{
"auto_generated_config": true,
"product_brand_id": "",
"product_family_id": "",
"product_category_id": "",
"product_type_id": ""
}
{id}
{id}
{id}
{id}
Returns a list of product Variants
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 variants based on 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 page number
The number of records per page
The overal number of records
GET https://stagingapi.crm.com/backoffice/v1/variants/ HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"key": "",
"label": "",
"description": "",
"values": [
""
]
}
],
"pages": {
"page": 2,
"size": 20,
"total": 5124
}
}
Creates a new Variant
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/variants HTTP/1.1
Content-Type: application/json
{
"key": "",
"label": "",
"description": "",
"values": [
""
]
}
{id}
Updates an existing Variant
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/variants/{id} HTTP/1.1
Content-Type: application/json
{
"key": "",
"label": "",
"description": "",
"values": [
""
]
}
{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/variants/{id} HTTP/1.1
HTTP/1.1 200 OK
Returns a list of product Variant Attributes
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 variants based on 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 page number
The number of records per page
The overal number of records
GET https://sandbox.crm.com/backoffice/v1/variant_attributes/ HTTP/1.1
Creates a new Variant Attribute
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://sandbox.crm.com/backoffice/v1/variant_attribute HTTP/1.1
Content-Type: application/json
{
"key": "",
"label": "",
"description": "",
"values": [
""
]
}
{id}
Updates an existing Variant Attribute
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://sandbox.crm.com/backoffice/v1/variant_attributes/{id} HTTP/1.1
Content-Type: application/json
{
"key": "",
"label": "",
"description": "",
"values": [
""
]
}
{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/variants/{id} HTTP/1.1
HTTP/1.1 200 OK
{id}
{id}
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 product family based on 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 page number
The number of records per page
The overal number of records
GET https://devapi.crm.com/backoffice/v1/product_families/ HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id":"",
"name": "",
"description": ""
}
]
}
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/product_families HTTP/1.1
Content-Type: application/json
{
"name": "",
"descripion": ""
}
{id}
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
{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/product_families/{id} HTTP/1.1
HTTP/1.1 200 OK
{id}
{id}
{id}
{id}
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://devapi.crm.com/backoffice/v1/product_brands/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "",
"name": "",
"description": ""
}
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 newlly created product brand
POST https://devapi.crm.com/backoffice/v1/product_brands HTTP/1.1
Content-Type: application/json
{
"name": "Set Top Boxes",
"description": "STB brands"
}
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 brand 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 page number
The number of records per page
The overal number of records
GET https://devapi.crm.com/backoffice/v1/product_brands/ HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"name": "",
"description": ""
}
],
"pages": {
"page": 2,
"size": 20,
"total": 5124
}
}
{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
The unique identifier of the updated product brand
PUT https://devapi.crm.com/backoffice/v1/product_brands/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1
Content-Type: application/json
{
"name": "",
"description": ""
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726A"
}
{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/product_brands/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1
HTTP/1.1 200 OK
{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://sandbox.crm.com/backoffice/v1/product_categories HTTP/1.1
Content-Type: application/json
{
"name": "",
"descripion": "",
"parent_id": "",
"available_in_order_menus": "false"
}
{id}
Updates an existing product category.
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Examples
{
"name": "",
"code": "",
"description": "",
"parent_id": "",
"available_in_order_menus": "false"
}
{id}
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Return a list of product 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
Filter product categories on whether to include in the order menu 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
Body
The page number
The number of records per page
The overal number of records
GET https://stagingapi.crm.com/backoffice/v1/product_categories?include_child_nodes=false 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}
Create a new product type. A single Product Type 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
Mandarory for products classified as usage services
Required only if not all variant attribute values are required
Responses
Body
The unique indentifier of the newlly created product type
POST https://sandbox.crm.com/backoffice/v1/product_types HTTP/1.1
Content-Type: application/json
{
"name": "Decoders",
"description": "",
"classification": "NON_TRACEABLE_PHYSICAL_GOOD",
"composition_method": "COMPOSITE",
"is_stockable": true,
"unit_of_measurement_id": "",
"variant_attributes": [
{
"id": "",
"mandatory": true,
"values": [
""
]
}
]
}
{id}
Path variables
The product type 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
Required only if not all variant attribute values will be used
Responses
Body
The unique identifier of the updated product type
PUT https://sandbox.crm.com/backoffice/v1/product_types/{id} HTTP/1.1
Content-Type: application/json
{
"name": "Decoders",
"description": "",
"composition_method": "FLAT",
"is_stockable": true,
"unit_of_measurement_id": "",
"variant_attributes": [
{
"id": "",
"mandatory": true,
"values": [
""
]
}
]
}
{id}
Deletes a Product Type
Path variables
The product type 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/product_types/4AD9C84FA60F9FE407140E20F707726A HTTP/1.1
Returns a list of product 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 product types based on their 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://stagingapi.crm.com/backoffice/v1/product_types/ HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"name": "Decoders",
"description": "",
"classification": "NON_TRACEABLE_PHYSICAL_GOOD",
"composition_method": "FLEXIBLE_BUNDLE",
"is_stockable": true,
"number_of_variants": 3,
"unit_of_measurement": {
"id": "",
"name": "GBytes"
}
}
],
"pages": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}
Returns a single Product Type
Path variables
The product type 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
GET https://sandbox.crm.com/backoffice/v1/product_types/100 HTTP/1.1
{id}
{id}
{id}
Returns a list of product tier paths
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 product types based on their 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://stagingapi.crm.com/backoffice/v1/tier_paths/ HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"name": "3Play Services",
"description": ""
}
],
"pages": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}
Returns a single product 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
Search for product types based on their Name or Description
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
GET https://stagingapi.crm.com/backoffice/v1/tier_paths/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"name": "Main",
"description": "",
"product_tiers": [
{
"product": {
"id": "",
"sku": "",
"name": ""
},
"level": 1
}
]
}
Creates a new tier path
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 a product. The product must be classified as a tiered service
The tier level fo the product within the path
Responses
Body
The unique identifier of the newlly created tier path
POST https://stagingapi.crm.com/backoffice/v1/tier_paths HTTP/1.1
Content-Type: application/json
{
"name": "",
"description": "",
"product_tiers": [
{
"product_id": "",
"level": 1
}
]
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726A"
}
{id}
Updates an existing tier path
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 identifier of a product. The product must be classified as a tiered service
The tier level of the product within the path
Responses
Body
The unique identifier of the updated tier path
PUT https://stagingapi.crm.com/backoffice/v1/tier_paths/{id} HTTP/1.1
Content-Type: application/json
{
"name": "",
"description": "",
"product_tiers": [
{
"product_id": "",
"level": 1
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "4AD9C84FA60F9FE407140E20F707726A"
}
{id}
Deletes a tier path
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/tier_paths/{id} HTTP/1.1
HTTP/1.1 200 OK
{id}
{id}
{id}
Returns a list of all product dependency rules
Request parameters
Search by name of product or product type 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
Body
The name of the product or the product type for which the dependency rule is set up
GET https://stagingapi.crm.com/backoffice/v1/dependency_rules HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"description": "",
"item_type": "TYPE",
"item_name": ""
}
]
}
{id}
Returns a single product dependency 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 product for which the dependency is defined. Ether a product or a product type identifier is returned
The name of the product or the product type according to item_type value
The name of the product or the product type according to item_type value
GET https://stagingapi.crm.com/backoffice/v1/dependency_rules/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"description": "",
"item_type": "PRODUCT",
"item_id": "",
"item_name": "",
"type": "REQUIRES",
"operator": "ANY",
"dependencies": [
{
"item_type": "TYPE",
"item_id": "",
"item_name": ""
}
]
}
]
}
Creates a new product dependency rule
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 product or the product type
Responses
Body
The unique identifier of the product dependency rule
POST https://stagingapi.crm.com/backoffice/v1/dependency_rules HTTP/1.1
Content-Type: application/json
{
"description": "",
"item_type": "TYPE",
"item_id": "",
"type": "REQUIRES",
"operator": "ALL",
"dependencies": [
{
"item_type": "PRODUCT",
"item_id": ""
}
]
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": ""
}
{id}
Updates an existing product dependency 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 identifier of the product dependency rule
PUT https://stagingapi.crm.com/backoffice/v1/dependency_rules/{id} HTTP/1.1
Content-Type: application/json
{
"description": "",
"item_type": "TYPE",
"item_id": "",
"type": "REQUIRES",
"operator": "ANY",
"dependencies": [
{
"item_type": "TYPE",
"item_id": ""
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}
Deletes a product dependency 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/dependency_rules/{id} HTTP/1.1
HTTP/1.1 200 OK
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
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 name
The tier description
The tier color (used for marketing purposes)
The tier value units (inclusive)
Details about back-end reduction settings
The refund financial transaction type identifier
Details about settlement settings
Defines whether reward settlement is enabled or not
Defines when settlement will take place
The day on which the settlement will be performed (applicable when evaluation is weekly)
The time that settlement will be performed (applicable when evaluation is not real time)
The month day on which the settlement will be performed (applicable when evaluation is monthly)
The last day of the month
The 1-28 days of the month (30 and 31 not applicable since not all months have 30/31 days)
The time perid in hours that the settlement will be performed (required when evaluation is hourly)
Define the transaction (percentage) fee that will applied on the contact for each award
Responses
Successful Request
Body
The organisation identifier
PUT https://stagingapi.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"
},
"tier_settings": {
"enable_tier": "true",
"conversion_rate": 1000,
"tier_evaluation": "SIGN_UP_DATE",
"auto_advance": "true",
"tiers": [
{
"name": "Gold",
"description": "Gold Customers",
"color": "#d4af37",
"value_units": 150000
}
]
},
"reduction_settings": {
"refund_type_id": "REFUND1234543212345678UJIKY76HJR"
},
"settlement_settings": {
"enable_settlement": "true",
"settlement_evaluation": "REAL_TIME"
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "QWERTY1234543212345678UJIKY76HJR"
}
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
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
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)
Details about settlement settings
Defines whether reward settlement is enabled or not
Defines when settlement will take place
The day on which the settlement will be performed (applicable when evaluation is weekly)
The time that settlement will be performed (applicable when evaluation is not real time)
The month day on which the settlement will be performed (applicable when evaluation is monthly)
The last day of the month
The 1-28 days of the month (30 and 31 not applicable since not all months have 30/31 days)
The time perid in hours that the settlement will be performed (required when evaluation is hourly)
Defiens the management (percentage) fee that will be applied on the contact for each award
GET https://stagingapi.crm.com/backoffice/v1/rewards_generic_settings HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"resolution_settings": {
"resolution_method": "BEST_OFFER_FROM_EACH_SCHEME"
},
"reduction_settings": {
"refund_type": {
"id": "QWERTY1234543212345678UJIKY76HMK",
"name": "Back End Refund"
}
},
"tier_settings": {
"enable_tier": "true",
"conversion_rate": 1000,
"tier_evaluation": "SIGN_UP_DATE",
"auto_advance": "false",
"tiers": [
{
"id": "TIER001234543212345678UJIKY76HJR",
"name": "Gold",
"description": "Gold Customers",
"color": "#d4af37",
"value_units": 150000
}
]
},
"settlement_settings": {
"enable_settlement": true,
"settlement_evaluation": "REAL_TIME",
"day": "MONDAY",
"time": "05:00",
"month_day": "1-28"
}
}
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
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 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
GET https://devapi.crm.com/backoffice/v1/service_owner HTTP/1.1
authorization: 4AD9C84FA60F9FE407140E20F707726A
HTTP/1.1 200 OK
Content-Type: application/json
{
"terms_service": "https://www.crm.com/terms-and-conditions/",
"privacy_policy": "https://www.crm.com/privacy-policy/",
"creatives": [
{
"id": "CA123456789AQWSXZAQWS1236547896541",
"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}
Creates devices status, additional to the default ones: AVAILABLE, INACTIVE, SOLD, RENTED, IMPORTED
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
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"
}
Updates an additional 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 ones of the default statuses, that the specific one will clone its behaviour
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}
Deletes an additionally defined device status
Path variables
The ID of the device status 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
List all available device statuses
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 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.
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
}
}
Updates the business’ renting rules
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
The products that are allowed to be rented
The id of the product
The stock allowed to be rented in a period of time
The renting period
The UOT of the renting period
The product families that allow renting their stockable/traceable products
The ID of the product family
The stock allowed to be rented in a period of time
The renting period
The UOT of the renting period
Responses
Successful Request
PUT https://stagingapi.crm.com/backoffice/v1/renting_rules HTTP/1.1
Content-Type: application/json
{
"products": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"stock": 100,
"period": 1,
"period_uot": "YEARS"
}
],
"product_families": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"stock": 100,
"period": 1,
"period_uot": "MONTHS"
}
]
}
HTTP/1.1 200 OK
Lists the business’ renting rules
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Successful Request
Body
The products that are allowed to be rented
The id of the product
The stock allowed to be rented in a period of time
The renting period
The UOT of the renting period
The product families that allow renting their stockable/traceable products
The ID of the product family
The stock allowed to be rented in a period of time
The renting period
The UOT of the renting period
GET https://stagingapi.crm.com/backoffice/v1/renting_rules HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"products": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"stock": 100,
"period": 1,
"period_uot": "DAYS"
}
],
"product_families": [
{
"id": "4AD9C84FA60F9FE407140E20F707726A",
"stock": 100,
"period": 1,
"period_uot": "MONTHS"
}
]
}
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
Applicable and mandatory for Period calendar billing only
["CANCELLED"]
Applicable only for Period calendar billing
Required only if prorating is enabled
GET https://stagingapi.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_non_creditable_states": {
"service_states": [
"CANCELLED"
]
},
"rating": {
"bill_in_advance": {
"period": 3,
"uot": "WEEKS"
},
"prorate_period": {
"enabled": true,
"threshold_day": 15
}
},
"invoicing": {
"invoice_type_id": "",
"credit_not_type_id": "",
"invoice_issue_date": {
"period": 1,
"uot": "DAYS"
}
}
}
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
["ON_SERVICE_ACTIVATION"]
["NOT_EFFECTIVE"]
["NOT_EFFECTIVE"]
Responses
PUT https://stagingapi.crm.com/backoffice/v1/billing_settings HTTP/1.1
Content-Type: application/json
{
"calendar_billing": {
"type": "ANNIVERSARY",
"billing_day": 1,
"reset_on": [
"ON_SERVICE_ACTIVATION"
]
},
"additional_billable_states": {
"service_states": [
"NOT_EFFECTIVE"
]
},
"additional_non_creditable_states": {
"service_states": [
"NOT_EFFECTIVE"
]
},
"activation_rules": {
"maximum_outstanding_amount": 1,
"maximum_deactivation_period": 1
},
"deativation_rules": {
"minimum_outstanding_amount": 1,
"deactivation_method": "BASED_ON_DAY_HOUR",
"failed_payment_grace_period_days": 1
},
"cancellation_rules": {
"canccellation_type": "SUBSCRIPTION",
"minimum_deactivation_period": 1
}
}
HTTP/1.1 200 OK
Retrieve Subscription Settings
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Applicable and required only if cancellation is allowed On notice
GET https://stagingapi.crm.com/backoffice/v1/subscription_settings HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"automatic_disconnections": {
"deactivation_method": "BASED_ON_DAY"
},
"automatic_cancellations": {
"minimum_deactivation_period": 3,
"period_uot": "MONTHS"
},
"out_of_service_terms_cancellation": {
"allow_cancellation": "IMMEDIATELY",
"notice_period": {
"value": "",
"uot": ""
}
},
"in_service_terms_cancellation": {
"allow_cancellation": "IMMEDIATELY"
},
"regret": {
"allow_regret": 15,
"period_uot": "DAYS",
"starting_from": "SERVICE_EFFECTIVE_DATE"
},
"paused_period": {
"days_per_year": {
"allowed_days": 30,
"year_starting_from": "FIRST_DAY_OF_YEAR"
},
"times_per_year": {
"allowed_times": 3,
"year_starting_from": "FIRST_DAY_OF_YEAR"
},
"days_per_pause": {
"minimum": 1,
"maximum": 5
}
},
"service_changes": [
{
"change_classification": "DOWGRADE",
"allow_change": "IMMEDIATELY"
}
],
"service_restrictions": [
{
"maximum_number_of_services": 5,
"account_classification_id": "",
"life_cycle_state": "EFFECTIVE"
}
]
}
Updates the settings related to subscription services
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Responses
PUT https://stagingapi.crm.com/backoffice/v1/subscription_settings HTTP/1.1
Content-Type: application/json
{
"automatic_disconnections": {
"deactivation_method": "BASED_ON_DAY"
},
"automatic_cancellations": {
"minimum_deactivation_period": 3,
"period_uot": "MONTHS"
},
"out_of_service_terms_cancellation": {
"allow_cancellation": "IMMEDIATELY",
"notice_period": {
"value": "",
"uot": ""
}
},
"in_service_terms_cancellation": {
"allow_cancellation": "IMMEDIATELY"
},
"regret": {
"allow_regret": 15,
"period_uot": "DAYS",
"starting_from": "SERVICE_EFFECTIVE_DATE"
},
"paused_period": {
"days_per_year": {
"allowed_days": 30,
"year_starting_from": "FIRST_DAY_OF_YEAR"
},
"times_per_year": {
"allowed_times": 3,
"year_starting_from": "FIRST_DAY_OF_YEAR"
},
"days_per_pause": {
"minimum": 1,
"maximum": 5
}
},
"service_changes": [
{
"change_classification": "DOWGRADE",
"allow_change": "IMMEDIATELY"
}
],
"service_restrictions": [
{
"maximum_number_of_services": 5,
"account_classification_id": "",
"life_cycle_state": "EFFECTIVE"
}
]
}
HTTP/1.1 200 OK
{id}
{id}
{id}
Returns a list of subscription actions classifications
Request parameters
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
GET https://stagingapi.crm.com/backoffice/v1/action/classifications HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"name": "",
"description": ""
}
]
}
{id}
Returns a single subscription actions classification
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://stagingapi.crm.com/backoffice/v1/action_classifications/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"name": "",
"description": "",
"actions": [
{
"behaviour_code": "",
"business_classification_code": ""
}
]
}
]
}
Creates a new subscription action classification
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 subscription action classification
POST https://stagingapi.crm.com/backoffice/v1/action_classifications HTTP/1.1
Content-Type: application/json
{
"name": "",
"description": "",
"actions": [
{
"behaviour_code": "",
"business_classification_code": ""
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}
Updates an existing subscription action classification
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 subscription action classification
PUT https://stagingapi.crm.com/backoffice/v1/action_classifications/{id} HTTP/1.1
Content-Type: application/json
{
"name": "",
"description": "",
"actions": [
{
"behaviour_code": "",
"business_classification_code": ""
}
]
}
{id}
Deletes a subscrpion action classification
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/action_classifications/{id} HTTP/1.1
HTTP/1.1 200 OK
List of Web aPIs for creating and managing Event-based Charges
{id}
{id}
{id}
Returns a list of event-based, charge rules
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
GET https://stagingapi.crm.com/backoffice/v1/event_based_charges HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"apply_on": "NEXT_BILLING",
"expense": {
"id": "",
"sku": "",
"name": ""
}
}
]
}
{id}
Returns a single event-based, conditional expense rule
Path variables
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Responses
Body
Aplicable and required only if the applied charge will be a percentage of the service’s amount pending to be billed
GET https://stagingapi.crm.com/backoffice/v1/event_based_charges/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "",
"apply_on": "EVENT",
"event": "DEACTIVATION",
"charge_type": "FIXED",
"charge_percentage": 1,
"expense": {
"id": "",
"sku": "",
"name": ""
},
"conditions": [
{
"in_service_terms": true,
"service_terms": {
"duration": 12,
"uot": "MONTHS"
},
"existing_service": {
"item_type": "PRODUCT",
"item_id": "",
"item_name": ""
},
"change_to_service": {
"item_type": "TYPE",
"item_id": "",
"item_name": ""
},
"period_before_service_terms_end": {
"period": "",
"uot": "MONTHS"
}
}
]
}
Creates a new event-based, conditional expense rule
Request headers
Authorization Token
The secret api key required for API calls to ensure that the client is trusted
Request body
Applicable and required onlt if charge type is a Percentage
Applicable and mandatory only in Fixed charges. Only expense services are accepted
Responses
Body
POST https://stagingapi.crm.com/backoffice/v1/event_based_charges HTTP/1.1
Content-Type: application/json
{
"apply_on": "NEXT_BILLING",
"event": "SWITCH",
"charge_type": "FIXED",
"charge_percentage": 2.5,
"expense_product_id": "",
"conditions": [
{
"in_service_terms": true,
"service_terms": {
"duration": 12,
"uot": "YEARS"
},
"existing_service": {
"item_type": "TYPE",
"item_id": ""
},
"change_to_service": {
"item_type": "TYPE",
"item_id": ""
},
"period_before_service_terms_end": {
"period": 1,
"uot": "MONTHS"
}
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}
Updates a single event-based, conditional expense 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
PUT https://stagingapi.crm.com/backoffice/v1/event_based_charges/{id} HTTP/1.1
Content-Type: application/json
{
"apply_on": "NEXT_BILLING",
"event": "SWITCH",
"charge_type": "FIXED",
"charge_percentage": 2.5,
"expense_product_id": "",
"conditions": [
{
"in_service_terms": true,
"service_terms": {
"duration": 12,
"uot": "YEARS"
},
"existing_service": {
"item_type": "TYPE",
"item_id": ""
},
"change_to_service": {
"item_type": "TYPE",
"item_id": ""
},
"period_before_service_terms_end": {
"period": 1,
"uot": "MONTHS"
}
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}
Deletes an existing event-based, conditional expense 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/event_based_charges/{id} HTTP/1.1
HTTP/1.1 200 OK
{id}
{id}
{id}
Returns a list of event-based, recurring expense rules
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/event_based_recurring_charges HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"content": [
{
"id": "",
"event_to_apply": "ENABLE_ON_DEVICE",
"event_to_terminate": "TERMINATION",
"expense": {
"id": "",
"sku": "",
"name": ""
}
}
],
"pages": {
"page": 2,
"size": 20,
"total": 5124
}
}
{id}
Returns a single event-based, recurring expense rule
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://stagingapi.crm.com/backoffice/v1/event_based_recurring_charges/{id} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": "",
"event_to_apply": "ENABLE_ON_DEVICE",
"event_to_terminate": "DISABLE_FROM_DEVICE",
"expense": {
"id": "",
"sku": "",
"name": ""
},
"conditions": [
{
"in_service_terms": true,
"service_terms": {
"duration": 12,
"uot": "WEEKS"
},
"service": {
"item_type": "PRODUCT",
"item_id": "",
"item_name": ""
}
}
]
}
Creates a new event-based, recurring expense rule
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/event_based_recurring_charges HTTP/1.1
Content-Type: application/json
{
"event_to_apply": "ENABLE_ON_DEVICE",
"event_to_terminate": "DISABLE_FROM_DEVICE",
"expense_product_id": "",
"conditions": [
{
"in_service_terms": true,
"service_terms": {
"duration": 12,
"uot": "WEEKS"
},
"service": {
"item_type": "PRODUCT",
"item_id": ""
}
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}
Updates an existing event-based, recurring expense 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
PUT https://stagingapi.crm.com/backoffice/v1/event_based_recurring_charges/{id} HTTP/1.1
Content-Type: application/json
{
"event_to_apply": "ENABLE_ON_DEVICE",
"event_to_terminate": "DISABLE_FROM_DEVICE",
"expense_product_id": "",
"conditions": [
{
"in_service_terms": true,
"service_terms": {
"duration": 12,
"uot": "WEEKS"
},
"service": {
"item_type": "PRODUCT",
"item_id": ""
}
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": ""
}
{id}
Deletes an existing event-based, recurring expense 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/event_based_recurring_charges/{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 defautls to the date on which the rate % is set.
Responses
Body
The unique identifier of the new Tax Rate
POST https://devapi.crm.com/backoffice/v1/tax_rates/ HTTP/1.1
Content-Type: application/json
{
"name": "",
"description": "",
"rate_percentage": 1,
"country_code": "GR",
"tax_code": "SALES_TAX",
"as_of_date": 23123123232,
"supply_method": "DELIVERY"
}
{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 defautls 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 product’s unique identifier
The product family’s unique identifier
Responses
Body
The unique identifier of the updated Tax Rate
PUT https://stagingapi.crm.com/backoffice/v1/tax_rates/{id} HTTP/1.1
Content-Type: application/json
{
"name": "",
"description": "",
"rate_percentage": 1,
"as_of_date": 4234234234,
"country_code": "GR",
"tax_code": "SALES_TAX",
"product_conditions": [
{
"id": "",
"id_type": "PRODUCT"
}
],
"location_conditions": [
{
"town_city": "",
"state_province_county": ""
}
],
"supply_method": "ON_SITE"
}
{id}
Deletes an existing Tax Rate. A single Tax Rate can be deleted per Web API call.
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://devapi.crm.com/backoffice/v1/tax_rates/4AD9C84FA60F9FE407140E20F707726A 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
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://devapi.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": "",
"rate_percentage": 1,
"country_code": "GR",
"tax_code": "OTHER",
"is_default": "true"
}
],
"pages": {
"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
The date from which the tax rate is applied.
The identfier of the product or the product family
GET https://stagingapi.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": "",
"rate_percentage": 1,
"as_of_date": 3234234234,
"country_code": "GR",
"tax_code": "OTHER",
"product_conditions": [
{
"id": "",
"id_type": "PRODUCT"
}
],
"location_conditions": [
{
"town_city": "",
"state_province_county": ""
}
],
"supply_method": "PICK_UP"
}
{id}
{id}
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
The minimum wallet balance threshold applied on all wallets unless overriden
Defines the limit rules applied on specific wallet. Applied on all wallets unless overriden
The name of the rule
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
The conditions for which the limit is applied
The entity for which the condition applies
The entity’s ID or Name
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 transactions that the fee will be applied on
The period when the fees will be applied
The UOT of the period
The conditions for which the fee is applied
The entity for which the condition applies
The entity’s ID or Name
Responses
Successful Request
PUT https://stagingapi.crm.com/backoffice/v1/wallet_settings HTTP/1.1
Content-Type: application/json
{
"minimum_balance": 10,
"limit_rules": [
{
"name": "VIP",
"minimum_amount": 100,
"maximum_amount": 200,
"period": "MONTHLY",
"transaction_type": [
"DEBIT"
],
"conditions": [
{
"name": "ACCOUNT_CLASSIFICATION",
"value": "4AD9C84FA60F9FE407140E20F707726A"
}
]
}
],
"fees_rules": [
{
"name": "VIP",
"value": 0.1,
"value_type": "PERCENTAGE",
"applied_on": "TRANSACTION",
"applied_transaction": [
"CREDIT"
],
"period": 1,
"period_uot": "DAY",
"conditions": [
{
"name": "ACCOUNT_CLASSIFICATION",
"value": "4AD9C84FA60F9FE407140E20F707726A"
}
]
}
]
}
HTTP/1.1 200 OK
Get the wallet 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 minimum wallet balance threshold applied on all wallets unless overriden
Defines the limit rules applied on specific wallet. Applied on all wallets unless overriden
The name of the rule
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
The conditions for which the limit is applied
The entity for which the condition applies
The entity’s ID or Name
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 transactions that the fee will be applied on
The period when the fees will be applied
The UOT of the period
The conditions for which the fee is applied
The entity for which the condition applies
The entity’s ID or Name
GET https://stagingapi.crm.com/backoffice/v1/wallet_settings HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"minimum_balance": 10,
"limit_rules": [
{
"name": "VIP",
"minimum_amount": 100,
"maximum_amount": 200,
"period": "MONTHLY",
"transaction_type": [
"CREDIT"
],
"conditions": [
{
"name": "KYC_PROFILE",
"value": "4AD9C84FA60F9FE407140E20F707726A"
}
],
"fees_rules": [
{
"name": "VIP",
"value": 0.1,
"value_type": "PERCENTAGE",
"applied_on": "TRANSACTION",
"applied_transaction": [
"DEBIT"
],
"period": 1,
"period_uot": "DAY",
"conditions": [
{
"name": "CONTACT_CATEGORY",
"value": "4AD9C84FA60F9FE407140E20F707726A"
}
]
}
]
}
]
}