Plugin Integrators

https://sandbox.crm.com/backoffice/v1
Introduction

Welcome to the CRM.COM Application Programming Interface (API) documentation for Integrations. CRM.COM provides a complete set of Web APIs (also referred to as Integration Web APIs) that you can use to develop your own integrations (or plugins) that implement:

  1. Provisioning Providers
  2. Payment Gateways
  3. WiFi Platform Providers
  4. Customer events Management

Getting Started

  1. Check out each integration documentation provided per Integration category
  2. Study its set of integration Web APIs
  3. Implement your plugin
  4. Register the plugin into CRM.COM
  5. Set up the Integration within CRM.COM
  6. Set up any required integration configuration within CRM.COM (if any). The Integration’s configuration within CRM.COM provide the ability to set up the integration’s behaviour and flows.
Operations
Customer Events
GET /customer_events/purchases
Get Purchases
GET /customer_events/purchases

Get a list of transactions from the Third Party system.

Request parameters

start_time
number optional

Start date / time for transaction list

end_time
number optional
max_items
number optional

Request headers

api_key
string optional

secret API Key

Responses

200 OK
Body
Array
Object
contact
Object
email
string
phone
string
outlet_tap
string

Location code mapped to TAP

products
Array
Object
product_sku
string
Example:
10023401
product_name
string
Example:
Soda
net_amount
number
tax_amount
number
Example:
0.02
total_amount
number
Example:
1.02
quantity
integer
Example:
1
reference
string

Reference Number for Order

performed_on
integer

Date of Transaction

Example 1
GET https://sandbox.crm.com/backoffice/v1/customer_events/purchases HTTP/1.1 

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "contact": {
        "id": "84b5deb0-48fb-3a34-6d3d-8e8512a33f1d",
        "surname": "",
        "email": "",
        "phone": "",
        "card": {
            "fingerprint": "",
            "last4": "",
            "brand": ""
        }
    },
    "products": [
        {
            "id": "",
            "sku": "FREDESPR001",
            "name": "Freddo Espresso",
            "quantity": 2,
            "net_amount": 14.15,
            "tax_amount": 1.04,
            "total_amount": 15.19,
            "components": [
                {
                    "id": "",
                    "sku": "",
                    "name": "",
                    "quantity": "",
                    "net_amount": "",
                    "tax_amount": "",
                    "total_amount": ""
                }
            ]
        }
    ],
    "fullfilled_by": {
        "id": "TAP001",
        "name": ""
    },
    "classification": {
        "name": "Delivery Purchase"
    },
    "payments": [
        {
            "payment_type": "VOUCHER",
            "total_amount": 1,
            "net_amount": "",
            "tax_amount": ""
        }
    ]
}
Payment Gateways

The ability for Payment Gateway to be configured / used by external gateways. In particualr creating payment methods that can be used by client based initiated flows or server based flows for recurring billing actions.

POST /payment_gateways/client_token
POST /payment_gateways/payment_methods
PUT /payment_gateways/payment_methods/{id}
DELETE /payment_gateways/payment_methods/{id}
POST /payment_gateways/intents
PUT /payment_gateways/intents
POST /payment_gateways/refunds
POST /payment_gateways/payouts
GET /payment_gaetways/settings
Get Client Token
POST /payment_gateways/client_token

Client-side is responsible for generating a client token from the payment gateway. The client token includes configuration required for a successfull communication with the gateway as well as it authenticates and authorises the client to communicate with the gateway.

Request body

Object
contact
Object

The contact that wants to make a payment or register a payment method

id
string GUID

The contact identifier

Example:
c95f566f-22b8-9242-bfad-beb81e751541
code
string

The contact code

Example:
9b0ffd269ca2
name
string

The contact (full) name

Example:
John Doe

Responses

200 OK
Body
Object
client_token
string

The client token that authorises the integration with the payment gateway

error_code
string

The error code return by the integrator

Example:
500
error_description
string

The error description return by the integrator

Example:
HTTP transport error: java.net.UnknownHostException
requests
Array
Object
request
string

The request sent by the integrator to the external system (that integration is made against)

response
string

The response received by the external system (that integration is made against)

Example 1
POST https://sandbox.crm.com/backoffice/v1/payment_gateways/client_token HTTP/1.1 

Content-Type: application/json

{
    "contact": {
        "id": "",
        "code": "",
        "name": ""
    }
}

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "client_token": "",
    "error_code": "500",
    "error_description": "HTTP transport error: java.net.UnknownHostException",
    "requests": [
        {
            "request": "",
            "response": ""
        }
    ]
}
Add Payment Method
POST /payment_gateways/payment_methods

Add a payment method that has details collected by a front end SDK, HPP or other Data Capture such as Bank direct Debit

Request headers

api_key
string optional

Secret API Key

Request body

Object
type
string
Enumeration:
CARD
WALLET
ACCOUNT_DEBIT
Example:
CARD
contact
Object required

The details that may be needed to represent a contact in the payment gateway

id
string

The unique contact identifier from CRM.COM can be used as the payment gateway’s contact ID if supported or a relationship link

Example:
61d25bd9-194b-5631-3395-7ab299302ead
name
string

The contact full name

Example:
John Smith
email
string

The contact email

Example:
john.smith@gmail.com
phone
string

The contact phone

Example:
+4475612345
address
Object

An address that might also indicate the billing address of the contact

address_line_1
string

The address line 1

Example:
Elia Papakyriakou
address_line_2
string

The address 2

Example:
7 Tower Stars
state_province_county
string

The address state/province/county

Example:
Egkomi
town_city
string

The address town/city

Example:
Nicosia
postal_code
string

The address postal code

Example:
2000
country
string

The address country (3 code)

Example:
CYP
card
Object nullable

The card details (applicable only for card payment method types)

id
string

The unique card identifier that is either a token or unique id provided by an SDK or HPP flow

Example:
11885936-29b2-423c-c241-2963cfdfa43b
wallet
Object nullable

The wallet details (applicable only for wallet payment method types)

nonce
string

A payment method nonce, previously obtained from the payment gateway, by the front-end

Example:
964d-5355e47ee3e7
account_debit
Object
account_name
string
account_number
string
iban
string
swift
string
sort_code
string
mandate
Object
referencce
string
sign_date
integer
termination_date
integer
type
string
Enumeration:
FIRST
FINAL
RECURRING
ONEOFF
account_holder_details
Object
account_holder_name
string
address_line_1
string
address_line_2
string
town_city
string
state_province_county
string
postal_code
string
country
string
bank
string
bank_code
string
country
string

The country the bank account is located in.

Example:
CY
currency
string
Example:
EUR

Responses

201 Created

The request has succeeded

Body
Object
token
string

A unique identifier of the payment method at the plugin side (called id, token, fingerprint). This unique identifier kept at CRM.COM side as a reference between the payment methods between the two sides (CRM.COM and Payment Gateway)

error_code
string

The error code return by the integrator

Example:
500
error_description
string

The error description return by the integrator

Example:
HTTP transport error: java.net.UnknownHostException
requests
Array
Object
request
string

The request sent by the integrator to the external system (that integration is made against)

response
string

The response received by the external system (that integration is made against)

card
Object
brand
string
first6
string
last4
string
expiration
Object
month
string
year
string
400 Bad Request

The input request was invalid or incorrect, often due to missing a required parameter

401 Unauthorized

The provided API Key or Token is invalid

403 Forbidden

The API key or Token does not have permissions to perform the request

404 Not Found

The requested resource does not exist

500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request

502 Bad Gateway

The server received an invalid response from the upstream server it accessed in attempting to fulfill the request

503 Service Unavailable

The server is currently unable to handle the request due to a temporary overloading or maintenance

504 Gateway Timeout

The server did not receive a timely response from the upstream server

Example 1
POST https://sandbox.crm.com/backoffice/v1/payment_gateways/payment_methods HTTP/1.1 

Content-Type: application/json

{
    "type": "CARD",
    "contact": {
        "id": "61d25bd9-194b-5631-3395-7ab299302ead",
        "name": "John Smith",
        "email": "john.smith@gmail.com",
        "phone": "+4475612345",
        "address": {
            "address_line_1": "",
            "address_line_2": "",
            "state_province_county": "",
            "town_city": "",
            "postal_code": "",
            "country": ""
        }
    },
    "card": {
        "id": "11885936-29b2-423c-c241-2963cfdfa43b"
    },
    "wallet": {
        "nonce": ""
    },
    "account_debit": {
        "account_name": "",
        "account_number": "",
        "iban": "",
        "swift": "",
        "sort_code": "",
        "mandate": {
            "referencce": "",
            "sign_date": ""
        },
        "account_holder_details": {
            "account_holder_name": "",
            "address_line_1": "",
            "address_line_2": "",
            "town_city": "",
            "state_province_county": "",
            "postal_code": "",
            "country": ""
        },
        "bank": "",
        "bank_code": "",
        "country": "CY",
        "currency": "EUR"
    }
}

HTTP/1.1 201 Created 

Content-Type: application/json

{
    "token": "",
    "error_code": "500",
    "error_description": "HTTP transport error: java.net.UnknownHostException",
    "requests": [
        {
            "request": "",
            "response": ""
        }
    ],
    "card": {
        "brand": "",
        "first6": "",
        "last4": "",
        "expiration": {
            "month": "",
            "year": ""
        }
    }
}
Update Payment Method
PUT /payment_gateways/payment_methods/{id}

Updates basic information of the payment method

Path variables

id
string required

The unique identifier of the payment method as this was set in CRM.COM

Request headers

api_key
string optional

Secret API Key

Request body

Object
contact
Object required

Contact Details that may be needed to represent a contact in the payment gateway

name
string

Used for identification of a contact

Example:
John Smith
email
string

Email of contact

Example:
john.smith@gmail.com
phone
string

Phone of contact

Example:
+4475612345
address
Object
address_line_1
string
address_line_2
string
state_province_county
string
town_city
string
country
string
postal_code
string
type
string

The payment method’s type

Enumeration:
CARD
WALLET
ACCOUNT_DEBIT
Example:
WALLET
card
Object

Card Details. Applicable only for Card payment method type - ROADMAP

exp_month
integer
exp_year
integer
account_debit
Object
account_name
string
account_number
string
iban
string
swift
string
sort_code
string
mandate
Object
referencce
string
sign_date
integer
termination_date
integer
type
string
Enumeration:
FIRST
FINAL
RECURRING
ONEOFF
account_holder_details
Object
account_holder_name
string
address_line_1
string
address_line_2
string
town_city
string
state_province_county
string
postal_code
string
country
string
bank
string
bank_code
string
country
string

The country the bank account is located in.

Example:
CY
currency
string
Example:
EUR
token
string

The payment method’s tokenised information

Responses

201 Created
Body
Object
error_code
string

The error code return by the integrator

Example:
500
error_description
string

The error description return by the integrator

Example:
HTTP transport error: java.net.UnknownHostException
requests
Array
Object
request
string

The request sent by the integrator to the external system (that integration is made against)

response
string

The response received by the external system (that integration is made against)

400 Bad Request

The input request was invalid or incorrect, often due to missing a required parameter

401 Unauthorized

The provided API Key or Token is invalid

403 Forbidden

The API key or Token does not have permissions to perform the request

404 Not Found

The requested resource does not exist

500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request

502 Bad Gateway

The server received an invalid response from the upstream server it accessed in attempting to fulfill the request

503 Service Unavailable

The server is currently unable to handle the request due to a temporary overloading or maintenance

504 Gateway Timeout

The server did not receive a timely response from the upstream server

Example 1
PUT https://sandbox.crm.com/backoffice/v1/payment_gateways/payment_methods/{id} HTTP/1.1 

Content-Type: application/json

{
    "contact": {
        "name": "John Smith",
        "email": "john.smith@gmail.com",
        "phone": "+4475612345",
        "address": {
            "address_line_1": "",
            "address_line_2": "",
            "state_province_county": "",
            "town_city": "",
            "country": "",
            "postal_code": ""
        }
    },
    "type": "WALLET",
    "card": {
        "exp_month": 1,
        "exp_year": 1
    },
    "account_debit": {
        "account_name": "",
        "account_number": "",
        "iban": "",
        "swift": "",
        "sort_code": "",
        "mandate": {
            "referencce": "",
            "sign_date": ""
        },
        "account_holder_details": {
            "account_holder_name": "",
            "address_line_1": "",
            "address_line_2": "",
            "town_city": "",
            "state_province_county": "",
            "postal_code": "",
            "country": ""
        },
        "bank": "",
        "bank_code": "",
        "country": "CY",
        "currency": "EUR"
    },
    "token": ""
}

HTTP/1.1 201 Created 

Content-Type: application/json

{
    "error_code": "500",
    "error_description": "HTTP transport error: java.net.UnknownHostException",
    "requests": [
        {
            "request": "",
            "response": ""
        }
    ]
}
Delete Payment Method
DELETE /payment_gateways/payment_methods/{id}

Deletes the payment method

Path variables

id
string GUID required

The payment method (identifier) to be deleted

Example:
e893e711-1ca7-f790-0af2-2ea1155cf5de

Request headers

api_key
string optional

Secret API Key

Request body

Object
payment_method
Object
id
string
type
string
Enumeration:
CARD
ACCOUNT_DEBIT
WALLET
fingerprint
string

The payment method’s tokenised information

account_debit
Object
account_name
string
account_number
string
iban
string
swift
string
sort_code
string
mandate
Object
referencce
string
sign_date
integer
termination_date
integer
type
string
Enumeration:
FIRST
FINAL
RECURRING
ONEOFF
account_holder_details
Object
account_holder_name
string
address_line_1
string
address_line_2
string
town_city
string
state_province_county
string
postal_code
string
country
string
bank
string
bank_code
string
country
string

The country the bank account is located in.

Example:
CY
currency
string
Example:
EUR

Responses

200 OK
Body
Object
error_code
string

The error code return by the integrator

Example:
500
error_description
string

The error description return by the integrator

Example:
HTTP transport error: java.net.UnknownHostException
requests
Array
Object
request
string

The request sent by the integrator to the external system (that integration is made against)

response
string

The response received by the external system (that integration is made against)

400 Bad Request

The input request was invalid or incorrect, often due to missing a required parameter

401 Unauthorized

The provided API Key or Token is invalid

403 Forbidden

The API key or Token does not have permissions to perform the request

404 Not Found

The requested resource does not exist

500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request

502 Bad Gateway

The server received an invalid response from the upstream server it accessed in attempting to fulfill the request

503 Service Unavailable

The server is currently unable to handle the request due to a temporary overloading or maintenance

504 Gateway Timeout

The server did not receive a timely response from the upstream server

Example 1
DELETE https://sandbox.crm.com/backoffice/v1/payment_gateways/payment_methods/e893e711-1ca7-f790-0af2-2ea1155cf5de HTTP/1.1 

Content-Type: application/json

{
    "payment_method": {
        "id": "",
        "type": "ACCOUNT_DEBIT",
        "fingerprint": "",
        "account_debit": {
            "account_name": "",
            "account_number": "",
            "iban": "",
            "swift": "",
            "sort_code": "",
            "mandate": {
                "referencce": "",
                "sign_date": ""
            },
            "account_holder_details": {
                "account_holder_name": "",
                "address_line_1": "",
                "address_line_2": "",
                "town_city": "",
                "state_province_county": "",
                "postal_code": "",
                "country": ""
            },
            "bank": "",
            "bank_code": "",
            "country": "CY",
            "currency": "EUR"
        }
    }
}

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "error_code": "500",
    "error_description": "HTTP transport error: java.net.UnknownHostException",
    "requests": [
        {
            "request": "",
            "response": ""
        }
    ]
}
Create Payment Intent
POST /payment_gateways/intents

Create a payment intent

Request body

Object
id
string GUID

The unique identifier of the payment intent at CRM.COM

Example:
215bbff9-a423-2fef-1943-330e52d75abc
contact
Object

Details about the contact

id
string GUID

The contact identifier

Example:
915bbff9-a420-2fef-1943-330e52d75ddc
name
string

The contact name

Example:
John R. Doe
code
string

The contact code

Example:
C00000123
payment_method
Object required
id
string
type
string
Enumeration:
CARD
ACCOUNT_DEBIT
WALLET
fingerprint
string

The payment method’s tokenised information

account_debit
Object
account_name
string
account_number
string
iban
string
swift
string
sort_code
string
mandate
Object
referencce
string
sign_date
integer
termination_date
integer
type
string
Enumeration:
FIRST
FINAL
RECURRING
ONEOFF
account_holder_details
Object
account_holder_name
string
address_line_1
string
address_line_2
string
town_city
string
state_province_county
string
postal_code
string
country
string
bank
string
bank_code
string
country
string

The country the bank account is located in.

Example:
CY
currency
string
Example:
EUR
amount
number required

The payment amount

Example:
9.99
currency
string required nullable

The currency code

Example:
EUR
capture
string
Enumeration:
ON_HOLD
AUTOMATIC

roadmap

Example:
ON_HOLD
entity
Object

Details about the entity (i.e. order) to be paid as provided by CRM.COM

type
string

The entity type

Enumeration:
INVOICE
ORDER
id
string GUID

The entity identifier

Example:
f98f384f-f415-82d6-9fb3-c9941dda2c8a
statement_info
string

Details to add to Customer Statement for the payment. Manually specified by the front-end

Example:
Payment for Order O125435 - Date 01.01.2010

Responses

200 OK
Body
Object
client_secret
string
error_code
string

The error code return by the integrator

Example:
500
error_description
string

The error description return by the integrator

Example:
HTTP transport error: java.net.UnknownHostException
state
string
Enumeration:
REQUIRES_CAPTURING

Payment Intent’s capturing was set to On hold on its creation

PENDING

Payment Intent was successfully logged at the payment gateway but there’s a delayed response about its success or failure to collect the money

COMPLETED

Payment Intent was successfully completed and money was collected from the payment method

REJECTED

Payment Intent was rejectes since money cannot be collected due to the payent method’s insufficient funds.

CANCELLED

Roadmap. Payment intent cancelled after its initial creation. If money was put on hold, then the amount is released.

Example:
COMPLETED
requests
Array
Object
request
string

The request sent by the integrator to the external system (that integration is made against)

response
string

The response received by the external system (that integration is made against)

400 Bad Request

The input request was invalid or incorrect, often due to missing a required parameter

401 Unauthorized

The provided API Key or Token is invalid

403 Forbidden

The API key or Token does not have permissions to perform the request

404 Not Found

The requested resource does not exist

500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request

502 Bad Gateway

The server received an invalid response from the upstream server it accessed in attempting to fulfill the request

503 Service Unavailable

The server is currently unable to handle the request due to a temporary overloading or maintenance

504 Gateway Timeout

The server did not receive a timely response from the upstream server

Example 1
POST https://sandbox.crm.com/backoffice/v1/payment_gateways/intents HTTP/1.1 

Content-Type: application/json

{
    "id": "215bbff9-a423-2fef-1943-330e52d75abc",
    "contact": {
        "id": "915bbff9-a420-2fef-1943-330e52d75ddc",
        "name": "John R. Doe",
        "code": "C00000123"
    },
    "payment_method": {
        "id": "",
        "type": "CARD",
        "fingerprint": "",
        "account_debit": {
            "account_name": "",
            "account_number": "",
            "iban": "",
            "swift": "",
            "sort_code": "",
            "mandate": {
                "referencce": "",
                "sign_date": ""
            },
            "account_holder_details": {
                "account_holder_name": "",
                "address_line_1": "",
                "address_line_2": "",
                "town_city": "",
                "state_province_county": "",
                "postal_code": "",
                "country": ""
            },
            "bank": "",
            "bank_code": "",
            "country": "CY",
            "currency": "EUR"
        }
    },
    "amount": 9.99,
    "currency": "EUR",
    "capture": "ON_HOLD",
    "entity": {
        "type": "INVOICE",
        "id": "f98f384f-f415-82d6-9fb3-c9941dda2c8a"
    },
    "statement_info": "Payment for Order O125435 - Date 01.01.2010"
}

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "client_secret": "",
    "error_code": "500",
    "error_description": "HTTP transport error: java.net.UnknownHostException",
    "state": "COMPLETED",
    "requests": [
        {
            "request": "",
            "response": ""
        }
    ]
}
Update Payment Intent (perform actions)
PUT /payment_gateways/intents

Update a payment intent

Request body

Object
id
string nullable

The payment intent’s unique identifier. Either the id or client secret must be provided.

client_secret
string nullable

The payment intent’s unique identifier. Either the id or client secret must be provided. Note tht in front-end systems, only the client secret is known.

actions
string required

Defines the action that will be applied on the payment intent

Enumeration:
CAPTURE

Applicable when the payment intent was initially created with capturing method On hold. This parameter will ask the integrtaor to capture the money (move the money from the customer’s acccount to the merchant’s account)

CONFIRM

Confirms payment intent to the payment gateway

CANCEL

Applicable when the payment intent is no longer valid at server side so it should also be cancelled in the payment gateway as well. IF money was put on hold, then cancelling the intents also releases the funds.

Responses

200 OK
Body
Object
id
string GUID

The payment intent identifier

Example:
0f51ee18-51a1-7233-510c-046f45e12ade
client_secret
string
error_code
string

The error code return by the integrator

Example:
500
error_description
string

The error description return by the integrator

Example:
HTTP transport error: java.net.UnknownHostException
state
string
Enumeration:
REQUIRES_CAPTURING

Payment Intent’s capturing was set to On hold on its creation

PENDING

Payment Intent was successfully logged at the payment gateway but there’s a delayed response about its success or failure to collect the money

COMPLETED

Payment Intent was successfully completed and money was collected from the payment method

REJECTED

Payment Intent was rejectes since money cannot be collected due to the payent method’s insufficient funds.

CANCELLED

Roadmap. Payment intent cancelled after its initial creation. If money was put on hold, then the amount is released.

Example:
COMPLETED
requests
Array
Object
request
string

The request sent by the integrator to the external system (that integration is made against)

response
string

The response received by the external system (that integration is made against)

400 Bad Request

The input request was invalid or incorrect, often due to missing a required parameter

401 Unauthorized

The provided API Key or Token is invalid

403 Forbidden

The API key or Token does not have permissions to perform the request

404 Not Found

The requested resource does not exist

500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request

502 Bad Gateway

The server received an invalid response from the upstream server it accessed in attempting to fulfill the request

503 Service Unavailable

The server is currently unable to handle the request due to a temporary overloading or maintenance

504 Gateway Timeout

The server did not receive a timely response from the upstream server

Example 1
PUT https://sandbox.crm.com/backoffice/v1/payment_gateways/intents HTTP/1.1 

Content-Type: application/json

{
    "id": "",
    "client_secret": "",
    "actions": "CONFIRM"
}

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "id": "0f51ee18-51a1-7233-510c-046f45e12ade",
    "client_secret": "",
    "error_code": "",
    "error_description": "",
    "state": "COMPLETED",
    "requests": [
        {
            "request": "",
            "response": ""
        }
    ]
}
Refunds
POST /payment_gateways/refunds

Refunds one of the contact’s payments. Since the payment gaetway is the side managing the payment intents, this Web APi accepts the payment intent that will be fully or partially refunded.

Request body

Object
payment_id
string nullable

Issue the Refund based on a payment. Either a payment or a payment intent must be specified

intent_id
string nullable

Issue the Refund based on a payment intent. Either a payment or a payment intent must be specified

issue_reason
string
amount
number

The refund’s amount. If not specified, then the initial transaction is fully refunded.

Example:
9.99
currency
string
Example:
EUR

Responses

201 Created
Body
Object
id
string

A unique id for the refund transaction

client_secret
string
error_code
string

The error code return by the integrator

Example:
500
error_description
string

The error description return by the integrator

Example:
HTTP transport error: java.net.UnknownHostException
state
string
Enumeration:
REQUIRES_CAPTURING

Payment Intent’s capturing was set to On hold on its creation

PENDING

Payment Intent was successfully logged at the payment gateway but there’s a delayed response about its success or failure to collect the money

COMPLETED

Payment Intent was successfully completed and money was collected from the payment method

REJECTED

Payment Intent was rejectes since money cannot be collected due to the payent method’s insufficient funds.

CANCELLED

Roadmap. Payment intent cancelled after its initial creation. If money was put on hold, then the amount is released.

Example:
COMPLETED
requests
Array
Object
request
string

The request sent by the integrator to the external system (that integration is made against)

response
string

The response received by the external system (that integration is made against)

400 Bad Request

The input request was invalid or incorrect, often due to missing a required parameter

401 Unauthorized

The provided API Key or Token is invalid

403 Forbidden

The API key or Token does not have permissions to perform the request

404 Not Found

The requested resource does not exist

500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request

502 Bad Gateway

The server received an invalid response from the upstream server it accessed in attempting to fulfill the request

503 Service Unavailable

The server is currently unable to handle the request due to a temporary overloading or maintenance

504 Gateway Timeout

The server did not receive a timely response from the upstream server

Example 1
POST https://sandbox.crm.com/backoffice/v1/payment_gateways/refunds HTTP/1.1 

Content-Type: application/json

{
    "payment_id": "",
    "intent_id": "",
    "issue_reason": "",
    "amount": 9.99,
    "currency": "EUR"
}

HTTP/1.1 201 Created 

Content-Type: application/json

{
    "id": "",
    "client_secret": "",
    "error_code": "",
    "error_description": "",
    "state": "COMPLETED",
    "requests": [
        {
            "request": "",
            "response": ""
        }
    ]
}
Payouts
POST /payment_gateways/payouts

Request body

Object
id
string

A unique identifier of the Payout

issue_reason
string
amount
number required

The payout’s amount.

Example:
9.99
currency
string required
Example:
EUR
reference_number
string

Number used for cross-refenrece betwen CRM and the plugin. Maps to CRM Payout’s code

payment_method
Object required
id
string
type
string
Enumeration:
CARD
ACCOUNT_DEBIT
WALLET
fingerprint
string

The payment method’s tokenised information

account_debit
Object
account_name
string
account_number
string
iban
string
swift
string
sort_code
string
mandate
Object
referencce
string
sign_date
integer
termination_date
integer
type
string
Enumeration:
FIRST
FINAL
RECURRING
ONEOFF
account_holder_details
Object
account_holder_name
string
address_line_1
string
address_line_2
string
town_city
string
state_province_county
string
postal_code
string
country
string
bank
string
bank_code
string
country
string

The country the bank account is located in.

Example:
CY
currency
string
Example:
EUR

Responses

201 Created
Body
Object
id
string

A unique id for the payout transaction

state
string
Enumeration:
REQUIRES_CAPTURING

Payment Intent’s capturing was set to On hold on its creation

PENDING

Payment Intent was successfully logged at the payment gateway but there’s a delayed response about its success or failure to collect the money

COMPLETED

Payment Intent was successfully completed and money was collected from the payment method

REJECTED

Payment Intent was rejectes since money cannot be collected due to the payent method’s insufficient funds.

CANCELLED

Roadmap. Payment intent cancelled after its initial creation. If money was put on hold, then the amount is released.

Example:
COMPLETED
error_code
string

The error code return by the integrator

Example:
500
error_description
string

The error description return by the integrator

Example:
HTTP transport error: java.net.UnknownHostException
requests
Array
Object
request
string

The request sent by the integrator to the external system (that integration is made against)

response
string

The response received by the external system (that integration is made against)

400 Bad Request

The input request was invalid or incorrect, often due to missing a required parameter

401 Unauthorized

The provided API Key or Token is invalid

403 Forbidden

The API key or Token does not have permissions to perform the request

404 Not Found

The requested resource does not exist

500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request

502 Bad Gateway

The server received an invalid response from the upstream server it accessed in attempting to fulfill the request

503 Service Unavailable

The server is currently unable to handle the request due to a temporary overloading or maintenance

504 Gateway Timeout

The server did not receive a timely response from the upstream server

Example 1
POST https://sandbox.crm.com/backoffice/v1/payment_gateways/payouts HTTP/1.1 

Content-Type: application/json

{
    "id": "",
    "issue_reason": "",
    "amount": 9.99,
    "currency": "EUR",
    "reference_number": "",
    "payment_method": {
        "id": "",
        "type": "",
        "fingerprint": "",
        "account_debit": {
            "account_name": "",
            "account_number": "",
            "iban": "",
            "swift": "",
            "sort_code": "",
            "mandate": {
                "referencce": "",
                "sign_date": ""
            },
            "account_holder_details": {
                "account_holder_name": "",
                "address_line_1": "",
                "address_line_2": "",
                "town_city": "",
                "state_province_county": "",
                "postal_code": "",
                "country": ""
            },
            "bank": "",
            "bank_code": "",
            "country": "CY"
        }
    }
}

HTTP/1.1 201 Created 

Content-Type: application/json

{
    "id": "",
    "state": "COMPLETED",
    "error_code": "500",
    "error_description": "HTTP transport error: java.net.UnknownHostException",
    "requests": [
        {
            "request": "",
            "response": ""
        }
    ]
}
Get Payment Gateway Settings
GET /payment_gaetways/settings

Retrieve the attributes related to the Payment Gateway’s main processes and behaviour.

Request headers

api_key
string required

The secret api key required for API calls to ensure that the client is trusted

Example:
4dc0809f-ed91-4b68-b912-5bd6064d901e

Responses

200 OK
Body
Object
classifcations
Array

Which financial transaction classifications are supported by the payment gateway. Multiple classifications can be specified

Example:
PAYMENTS
string
Enumeration:
PAYMENTS
REFUNDS
PAYOUTS
payment_method_types
Array

The payment gateway integration’s supported payment method types

string
Enumeration:
CARD
WALLET
ACCOUNT_DEBIT
400 Bad Request

The input request was invalid or incorrect, often due to missing a required parameter

401 Unauthorized

The provided API Key or Token is invalid

403 Forbidden

The API key or Token does not have permissions to perform the request

404 Not Found

The requested resource does not exist

500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request

502 Bad Gateway

The server received an invalid response from the upstream server it accessed in attempting to fulfill the request

503 Service Unavailable

The server is currently unable to handle the request due to a temporary overloading or maintenance

504 Gateway Timeout

The server did not receive a timely response from the upstream server

Example 1
GET https://sandbox.crm.com/backoffice/v1/payment_gaetways/settings HTTP/1.1 

api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "classifcations": [
        "PAYMENTS"
    ],
    "payment_method_types": [
        "WALLET"
    ]
}
Provisioning Providers

Provisioning Provider Integration Web APIs are used to forward CRM.COM information to Integrations responsible for delivering digital services to consumers such as:

  • OTT Platforms with/out a device
  • Condtional Access Systems
  • Radius Servers
  • and many more

CRM.COM is considered as the “master system”, whereas the integration-side is the one that follows instructions sent over by CRM.COM. CRM.COM-related information sent over is a generic one, i.e. it is not bound to CRM terminology. On the contrary CRM information refers to generic business terms.

Flow

  1. Within CRM.COM various events are being fired when managing services. On each event, Provisioning Provider Intgration Web APIs are triggered that include information of the CRM event
  2. Provisioning Provider Integration accepts the Web APIs calls, process the information and translates it into commands that will be fowrarded to the actual provider which can for example be an OTT platform, a Conditional Access System or Radius server. In general, any provider system that actually authorises the service.
  3. Provisioning Provider system accepts and processes the request command and replies back to the the integration. the integration it self replies back to CRM.COM with the response

Integration Points CRM.COM will trigger the Provisioning Provider in the following cases:

  • Manage Entitlements: Whenever a service is added, removed on updated (in terms of its state e.g. activated) on a subscription, manage entitlements is triggered so as to authorise or de-authorise the service
  • Send Messages: Through CRM.COM’s communicaion plans, send messages to devices
  • Send Device Commands: Send commands that manage/set up a device’s settings or features (commands other than authorising/deauthorising services)
  • Send Service Commands: Send commands that perform additional actions on services (other that authorising them)
  • Manage User: Commands that manage a user/account information on the provider’s side. A user/account is mapped to a contact in CRM.COM that subscribed to one or more services

CRM.COM Terminology CRM provisions Services as well as Devices

  • Within CRM services are configured as to be used for Provisioning purposes. Such services can have one or more external references that represents their representation codes and how they are configured on the provider’s side. A service might be provisioned to one or more provisioning providers, therefore external references can be configured for each one of the required providers.
  • Devices can also be provisioned. Devices can only be provisioned to a single Provisioning Provider. Basic device information sent over to the provider includes ** Serial Numer of the device ** An electronic ID ** A set of device characteristics. A Device migt have multiple characteristics in key-value pairs (e.g. static_ip=0.0.0.0 or pvr_supported=true). So whenever that device’s information is provisioned, the complete listof characterstics required by the provider is also included.
GET /provisioning/settings
POST /provisioning/entitlements
POST /provisioning/message
GET /provisioning/device_commands
POST /provisioning/ird_commands
GET /provisioning/service_commands
POST /provisioning/service_commands
Get Provisioning Provider Settings
GET /provisioning/settings

Porovisioning Provider settings represent specific information required by the integration to function properly. This set of settings are sent to CRM.COM and included in the integration’s settings in the back-end.

Request headers

api_key
string required

The secret api key required for API calls to ensure that the client is trusted

Example:
4dc0809f-ed91-4b68-b912-5bd6064d901e

Responses

200 OK
Body
Object
device_characteristics
Array

List of Device characteristics required by the integration in order to forward commands over to the provider.

string
Example:
username
400 Bad Request

The input request was invalid or incorrect, often due to missing a required parameter

401 Unauthorized

The provided API Key or Token is invalid

403 Forbidden

The API key or Token does not have permissions to perform the request

404 Not Found

The requested resource does not exist

500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request

502 Bad Gateway

The server received an invalid response from the upstream server it accessed in attempting to fulfill the request

503 Service Unavailable

The server is currently unable to handle the request due to a temporary overloading or maintenance

504 Gateway Timeout

The server did not receive a timely response from the upstream server

Example 1
GET https://sandbox.crm.com/backoffice/v1/provisioning/settings HTTP/1.1 

api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "device_characteristics": [
        "username"
    ]
}
Manage Entitlements
POST /provisioning/entitlements

Provisioning Provider Integration is triggered whenever services of a contact change within CRM.COM and they need to be either authorised or de-authorised. CRM.COM events that trigger this Web API call, add or remove services or they change their state. In cases where devices are also prvisioned, the Web API is called when new devices are added or existing ones are removed from a subscription.

Each Web API call includes basic contact and subscription information and then at least one of the following:

  • service(s) to authorise (and devices on which to be authorised, if any)
  • service(s) to de-authorise (ad the devices from which they will be de-authorised, if any)
  • device(s) to initialise: if a device is included in this list, then this is the first time that CRM passes information about this device so the integration can utilise this information to send some initialisation commands to the provider.
  • device(s) to terminate: devices removed from subscriptions so they should stop provisioning services. Utilise this infroamtion to reset the device’s information.

Note: In case of service change (service in CRM is upgraded/downgraded), then the same Web API call will include the service to the de-authorised and the new service to be authorised.Similar case when a device is replaced by another one.

Request headers

api_key
string required

The secret api key required for API calls to ensure that the client is trusted

Example:
4dc0809f-ed91-4b68-b912-5bd6064d901e

Request body

Object
contact
Object

Basic Contact information

id
string GUID

The unique idnetifier of the contact as this was generated in CRM.COM

Example:
4dc0809f-ed91-4b68-b912-5bd6064d901e
code
string

The contact’s code. This is an alphanumeric code.

Example:
C00192311
state
string

The contact’s state on CRM.COm side. This state determines if the contact still has active or inactive or cancelled services once the event is performed.

Enumeration:
ACTIVE

Contact still has at least one Effective service

INACTIVE

All of the contact’s services are Not Effective

TERMINATED

All of the contact’s services are churned, i.e. the contact is not subscribed to any other service

Example:
ACTIVE
name
string

The contact’s full name

Example:
John Smith
first_name
string

The contact’s first name

Example:
John
last_name
string

The contact’s last name

Example:
Smith
subscription
Object required

The subscription that groups together the services

id
string GUID required

The subscription identifier

Example:
b0b7b887-6fc5-957a-8e86-8abe689ed3bc
code
string required

The subscription code. By default, the subscription’s code is a 16-digit code

Example:
4433940593221123
first_activation
integer epoch required

The date on which the subscription was first activated

Example:
1618998627
draft_services
Array

List of services that the contact subscribed to, but were never activated, i.e. they were never authorised on the provider’s side. Use this information in cases where some steps need to be performed before actually authorising the service.

Object
external_reference
string

The provider’s reference for the service that is still in Draft state

Example:
SERV01
code
string

A code that defines the relation between the service and the provider. This is a random and unique, 16-digit code

Example:
4345676789000987
authorise_services
Array nullable

Details about the services that will be (authorised) provisioned. In cases where a service is delivered through a device, then this list includes one entry for eash service-device pair, i.e. one entry for each device on which the service will be authorised on. Additionally, if a service has multiple external references configured in CRM.COM, then again the list includes one entry for each reference of the service.

Object
external_reference
string required

The provider’s reference for the service that will be (authorised) provisioned

Example:
101
start_date
integer epoch

The date that the service is initially authorised

Example:
1622009627
end_date
integer epoch nullable

The last date that the service will be authorised. Applicable services that will be authorised for a specific period of time.

Example:
1622009628
last_authorised
integer epoch nullable

The date on which the service was successfully authorised

Example:
1622009627
code
string

A code that defines the relation between the service and the provider. If a service is enabled on a specific device, then this code also denotes the service-device relation within CRM. This is a random and unique, 16-digit code

Example:
4345676789000987
device
Object

Details about the device on which the service will be authorised

external_reference
string

The device’s external reference, usually its serial number

Example:
STB2231233401
electronic_id
string

An electronic ID that uniquelly identifies the device

characteristics
Array
Object
key
string

Unique key word that describes the device’s characteristic

Example:
mac_address
value
string

The characteristic’s value

Example:
12:a1:b5:00
product
Object
id
string

Product identifier

Example:
b0b7b887-6fc5-957a-8e86-8abe689ed3bc
type
string

The product type’s name

Example:
HD Decoders
sku
string

The product’s SKU

Example:
STB-12345
product
Object
classification
string

The product’s classification as this is defined in its product type

Enumeration:
TERMED_SERVICE
ONE_TIME_SERVICE
type
string

The product type’s name

Example:
HD Decoders
deauthorise_services
Array nullable

Details about the services that will be de-authorised. In cases where a service is delivered through a device, then this list includes one entry for eash service-device pair, i.e. one entry for each device on which the service will be de-authorised from. Additionally, if a service has multiple external references configured in CRM.COM, then again the list includes one entry for each reference of the service.

Object
external_reference
string required

The provider’s reference for the service that will be deauthorised

Example:
102
code
string

A code that defines the relation between the service and the provider. This is a random and unique, 16-digit code.

Example:
4345676789000987
device
Object

Details about the devices on which such service will be deauthorised

external_reference
string

The device’s external reference, usually its serial number

Example:
STB2231233203
electronic_id
string

The electronic Id that uniquely identifies the device

characteristics
Array
Object
key
string

Unique key word that describes the device’s characteristic

Example:
mac_address
value
string

The characteristic’s value

Example:
12:a1:b5:00
product
Object
id
string

Product identifier

Example:
b0b7b887-6fc5-957a-8e86-8abe689ed3bc
type
string

The product type’s name

Example:
HD Decoders
sku
string

The product’s SKU

Example:
STB-12345
product
Object
classification
string

The product’s classification as this is defined in its product type

Enumeration:
TERMED_SERVICE
ONE_TIME_SERVICE
type
string

The product type’s name

Example:
HD Decoders
initialised_devices
Array nullable

A list of devices that require initialisation on the provider side before authorising services to them. Multiple devices can be initialised per Web API call.

Object
external_reference
string

The device’s external reference, usually its serial number

Example:
STB2231233100
electronic_id
string

The electronic ID that uniquely identifies the device

characteristics
Array
Object
key
string

Unique key word that describes the device’s characteristic

Example:
mac_address
value
string

The characteristic’s value

Example:
12:a1:b5:00
product
Object
id
string

Product identifier

Example:
b0b7b887-6fc5-957a-8e86-8abe689ed3bc
type
string

The product type’s name

Example:
HD Decoders
sku
string

The product’s SKU

Example:
STB-12345
terminated_devices
Array nullable

A list of devices that have to be terminated after all services have been de-authorised. Multiple devices can be terminated per Web API call. Use this list of devices when commads need to be sent to the provide rin order to enforce the device to stop sending signals.

Object
external_reference
string

The device’s external reference, usually its serial number

Example:
STB2231233303
electronic_id
string

The electronic ID that uniquely identifies the device

characteristics
Array
Object
key
string

Unique key word that describes the device’s characteristic

Example:
mac_address
value
string

The characteristic’s value

Example:
12:a1:b5:00
product
Object
id
string

Product identifier

Example:
b0b7b887-6fc5-957a-8e86-8abe689ed3bc
type
string

The product type’s name

Example:
HD Decoders
sku
string

The product’s SKU

Example:
STB-12345

Responses

200 200

The request has succeeded

Body
Object
status
string
Enumeration:
PENDING

Request sent to the integrator but no response received back (confirming whether the integrator received it, processed it etc)

COMPLETED

Provisioning integrator successfully processed the request sent by CRM.COM

REJECTED

Provisioning request sent by CRM.COM was rejected by the integrator

UNDER_PROCESSING

Provisioning integrator received the request by CRM.COM and it’s being processed.

Example:
PENDING
reference_number
string

A reference number related to the provisioning request. Return by the provisioning integrator to uniquely identify the request.

Example:
423045544544-122
error_code
string

The error code return by the integrator

Example:
500
error_description
string

The error description return by the integrator

Example:
HTTP transport error: java.net.UnknownHostException
requests
Array

Defines a list of requests that could be sent per CRM.COM event

Object
request
string

The request sent by the provisioning provider integrator to CAS/OTT

response
string

The response received by the CAS/OTT

400 Bad Request

The input request was invalid or incorrect, often due to missing a required parameter

401 Unauthorized

The provided API Key or Token is invalid

403 Forbidden

The API key or Token does not have permissions to perform the request

404 Not Found

The requested resource does not exist

500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request

502 Bad Gateway

The server received an invalid response from the upstream server it accessed in attempting to fulfill the request

503 Service Unavailable

The server is currently unable to handle the request due to a temporary overloading or maintenance

504 Gateway Timeout

The server did not receive a timely response from the upstream server

Example 1
POST https://sandbox.crm.com/backoffice/v1/provisioning/entitlements HTTP/1.1 

api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
Content-Type: application/json

{
    "contact": {
        "id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
        "code": "C00192311",
        "state": "ACTIVE",
        "name": "John Smith",
        "first_name": "John",
        "last_name": "Smith"
    },
    "subscription": {
        "id": "b0b7b887-6fc5-957a-8e86-8abe689ed3bc",
        "code": "4433940593221123",
        "first_activation": 1618998627
    },
    "draft_services": [
        {
            "external_reference": "SERV01",
            "code": "4345676789000987"
        }
    ],
    "authorise_services": [
        {
            "external_reference": "101",
            "start_date": 1622009627,
            "end_date": 1622009628,
            "last_authorised": 1622009627,
            "code": "4345676789000987",
            "device": {
                "external_reference": "STB2231233401",
                "electronic_id": "",
                "characteristics": [
                    {
                        "key": "mac_address",
                        "value": "12:a1:b5:00"
                    }
                ],
                "product": {
                    "id": "b0b7b887-6fc5-957a-8e86-8abe689ed3bc",
                    "type": "HD Decoders",
                    "sku": "STB-12345"
                }
            },
            "product": {
                "classification": "ONE_TIME_SERVICE",
                "type": "HD Decoders"
            }
        }
    ],
    "deauthorise_services": [
        {
            "external_reference": "102",
            "code": "4345676789000987",
            "device": {
                "external_reference": "STB2231233203",
                "electronic_id": "",
                "characteristics": [
                    {
                        "key": "mac_address",
                        "value": "12:a1:b5:00"
                    }
                ],
                "product": {
                    "id": "b0b7b887-6fc5-957a-8e86-8abe689ed3bc",
                    "type": "HD Decoders",
                    "sku": "STB-12345"
                }
            },
            "product": {
                "classification": "ONE_TIME_SERVICE",
                "type": "HD Decoders"
            }
        }
    ],
    "initialised_devices": [
        {
            "external_reference": "STB2231233100",
            "electronic_id": "",
            "characteristics": [
                {
                    "key": "mac_address",
                    "value": "12:a1:b5:00"
                }
            ],
            "product": {
                "id": "b0b7b887-6fc5-957a-8e86-8abe689ed3bc",
                "type": "HD Decoders",
                "sku": "STB-12345"
            }
        }
    ],
    "terminated_devices": [
        {
            "external_reference": "STB2231233303",
            "electronic_id": "",
            "characteristics": [
                {
                    "key": "mac_address",
                    "value": "12:a1:b5:00"
                }
            ],
            "product": {
                "id": "b0b7b887-6fc5-957a-8e86-8abe689ed3bc",
                "type": "HD Decoders",
                "sku": "STB-12345"
            }
        }
    ]
}

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "status": "PENDING",
    "reference_number": "423045544544-122",
    "error_code": "500",
    "error_description": "HTTP transport error: java.net.UnknownHostException",
    "requests": [
        {
            "request": "",
            "response": ""
        }
    ]
}
Send Message
POST /provisioning/message

Provisioning Provider Integration triggered whenever a communication should be sent to the subscriber’s device. A communication could either be a message stored on the device (e.g. a Set-Top-Box) or an on-screen-display message.

Request headers

api_key
string required

The secret api key required for API calls to ensure that the client is trusted

Example:
4dc0809f-ed91-4b68-b912-5bd6064d901e

Request body

Object
contact
Object nullable

Basic Contact information as this was generated in CRM.COM.

id
string GUID

Contact’s unique identifier

Example:
4dc0809f-ed91-4b68-b912-5bd6064d901e
code
string

Contact’s code

Example:
C000001245
name
string

Contact’s name.

Example:
John Smith
devices
Array nullable

The devices on which the message will be sent

Min items: 1
Unique items: YES
Object
external_reference
string required

The serial number for the device on which the message will be sent to

Example:
SN091234344450
electronic_id
string

The device’s electronic id

characteristics
Array
Object
key
string

Unique key word that describes the device’s characteristic

Example:
mac_address
value
string

The characteristic’s value

Example:
12:a1:b5:00
product
Object
classification
string

The product’s classification as this is defined in its product type

Enumeration:
TERMED_SERVICE
ONE_TIME_SERVICE
type
string

The product type’s name

Example:
HD Decoders
message
string required

The message (from the communication plan) that will be sent

Example:
Free Trial Period Expires Soon. Join our awesome scheme!
type
string required

Defines on which communication channel the message will be sent

Enumeration:
OSD

Message will be shown On Screen Display (OSD)

MAIL

Message will be send via email

Example:
OSD

Responses

200 200

The request has succeeded

400 Bad Request

The input request was invalid or incorrect, often due to missing a required parameter

401 Unauthorized

The provided API Key or Token is invalid

403 Forbidden

The API key or Token does not have permissions to perform the request

404 Not Found

The requested resource does not exist

500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request

502 Bad Gateway

The server received an invalid response from the upstream server it accessed in attempting to fulfill the request

503 Service Unavailable

The server is currently unable to handle the request due to a temporary overloading or maintenance

504 Gateway Timeout

The server did not receive a timely response from the upstream server

Example 1
POST https://sandbox.crm.com/backoffice/v1/provisioning/message HTTP/1.1 

api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
Content-Type: application/json

{
    "contact": {
        "id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
        "code": "C000001245",
        "name": "John Smith"
    },
    "devices": [
        {
            "external_reference": "SN091234344450",
            "electronic_id": "",
            "characteristics": [
                {
                    "key": "mac_address",
                    "value": "12:a1:b5:00"
                }
            ],
            "product": {
                "classification": "ONE_TIME_SERVICE",
                "type": "HD Decoders"
            }
        }
    ],
    "message": "Free Trial Period Expires Soon. Join our awesome scheme!",
    "type": "OSD"
}

HTTP/1.1 200 OK 
Get Device Commands
GET /provisioning/device_commands

Provisioning Provider Integration might implement/support a number of commands that can be sent over to devices in order to set up their settings and characteristics. These commands are irrelevant to authorising/de-authorising services. For example commands to Reset a PIN, download software etc. This Web API return the list of these device commands back to CRM.COM along with each command’s required attributes. CRM.COM uses this information to dynamically display the available provisioning commands within the UI as part of other device actions.

Request headers

api_key
string required

The secret api key required for API calls to ensure that the client is trusted

Example:
4dc0809f-ed91-4b68-b912-5bd6064d901e

Responses

200 OK
Body
Object
content
Array
Object
name
string

The command’s name as this will be displayed in CRM.COM UI

Example:
Reset PIN
code
string

The command’s code. Suggested to be in capital letters only, no spaces.

Example:
RESET_PIN
description
string

The command’s description. Can be used to display Tips for the action within the UI

Example:
Resets the PIN to a given value
metadata_attributes
Array

The command’s metadata attributes that are required for the specific command to be successully sent to the provider. CRM.COM will display each attribute as a required input when performing this action within the UI. User’s input will then be forwarded to the integration.

Object
key
string required

The metadata attribute key. Suggested to be in lower-case letters only, with no spaces

Example:
pin
label
string

The metadata attribute label. Used for UI purposes within CRM.COM UI

Example:
PIN
description
string

The metadata attribute description

Example:
the new pin
type
string required

The metadata attribute (supported) field type

Enumeration:
SINGLE_LINE
MULTIPLE_LINES
SELECTION
CHECKBOXES
TIMESTAMP
DATE
DATE_RANGE
NUMBER
AMOUNT
is_mandatory
boolean

Defines whether the metadata attribute is mandatory or not. Command cannot be sent back to the integration unless the user actually enters a value, when mandatory.

Default:
false
Example:
true
Example 1
GET https://sandbox.crm.com/backoffice/v1/provisioning/device_commands HTTP/1.1 

api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "content": [
        {
            "name": "Reset PIN", 
            "code": "RESET_PIN",
            "description": "Resets the PIN to a given value",
            "metadata_attributes": [
                {
                    "key": "pin",
                    "label": "PIN",
                    "description": "the new pin",
                    "type": "SINGLE_LINE",
                    "is_mandatory": true
                }
            ]
        }
    ]
}
Send Device Command
POST /provisioning/ird_commands

CRM.COM triggers this Web API whenever a user selects to perform a Device command. In order for the flow to work as expected:

  • CRM.COM triggers Get Device Commands so the integratino replies back with all avialable options/commands as well as an expected list of each ommand’s metadata attributes
  • CRM.COM displays all available commands per device and their required input (if any)
  • User selects the command to be sent. If mandatory input is required, then CRM.COM ensues that this will be provided, otherwise this Web API will not be called.
  • CRM.COM triggers this Web API.

Request headers

api_key
string required

The secret api key required for API calls to ensure that the client is trusted

Example:
4dc0809f-ed91-4b68-b912-5bd6064d901e

Request body

Object
contact
Object nullable

Basic contact information as this is created within CRM.COM

id
string GUID

Contact’s unique identifier

Example:
4dc0809f-ed91-4b68-b912-5bd6064d901e
code
string alphanumeric

Contact code.

Example:
C00001245
name
string

Contact full name

Example:
John Smith
subscription
Object

Subscription information

id
string

Subscription identifier

Example:
4dc0809f-ed91-4b68-b912-5bd6064d901e
code
string

Subscription code

Example:
5454666678780009
external_reference
string nullable

The device (serial number) on which the command will be performed

Example:
SN000129828432
electronic_id
string nullable

The device’s electronic id

device_location
string

The device location

code
string required

The command that should be performed. CRM sends one of the codes previsouly received via the Get Device Commands Web API.

Enumeration:
RESET_PIN
RESET_DEVICE
ENFORCE_DOWNLOAD
characteristics
Array
Object
key
string

Unique key word that describes the device’s characteristic

Example:
mac_address
value
string

The characteristic’s value

Example:
12:a1:b5:00
metadata_attributes
Array nullable

Details about the metadata attributes that are required for the specific command. CRM.COM includes all of the command’s attributes as these were previously sent in the Get Device Commands (i.e.using the same keys)

Object
key
string required

The metadata attribute key

Example:
pin
value
string required

The metadata attribute value

Example:
1234

Responses

200 200

The request has succeeded

Body
Object
status
string
Enumeration:
PENDING

Request sent to the integrator but no response received back (confirming whether the integrator received it, processed it etc)

COMPLETED

Provisioning integrator successfully processed the request sent by CRM.COM

REJECTED

Provisioning request sent by CRM.COM was rejected by the integrator

UNDER_PROCESSING

Provisioning integrator received the request by CRM.COM and it’s being processed.

Example:
PENDING
reference_number
string

A reference number related to the provisioning request. Return by the provisioning integrator to uniquely identify the request.

Example:
423045544544-122
error_code
string

The error code return by the integrator

Example:
500
error_description
string

The error description return by the integrator

Example:
HTTP transport error: java.net.UnknownHostException
requests
Array

Defines a list of requests that could be sent per CRM.COM event

Object
request
string

The request sent by the provisioning provider integrator to CAS/OTT

response
string

The response received by the CAS/OTT

400 Bad Request

The input request was invalid or incorrect, often due to missing a required parameter

401 Unauthorized

The provided API Key or Token is invalid

403 Forbidden

The API key or Token does not have permissions to perform the request

404 Not Found

The requested resource does not exist

500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request

502 Bad Gateway

The server received an invalid response from the upstream server it accessed in attempting to fulfill the request

503 Service Unavailable

The server is currently unable to handle the request due to a temporary overloading or maintenance

504 Gateway Timeout

The server did not receive a timely response from the upstream server

Example 1
POST https://sandbox.crm.com/backoffice/v1/provisioning/ird_commands HTTP/1.1 

api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
Content-Type: application/json

{
    "contact": {
        "id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
        "code": "C00001245",
        "name": "John Smith"
    },
    "external_reference": "SN000129828432",
    "electronic_id": "",
    "device_location": "",
    "code": "RESET_PIN",
    "characteristics": [
        {
            "key": "mac_address",
            "value": "12:a1:b5:00"
        }
    ],
    "metadata_attributes": [
        {
            "key": "pin",
            "value": "1234"
        }
    ]
}

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "status": "PENDING",
    "reference_number": "423045544544-122",
    "error_code": "500",
    "error_description": "HTTP transport error: java.net.UnknownHostException",
    "requests": [
        {
            "request": "",
            "response": ""
        }
    ]
}
Get Service Commands
GET /provisioning/service_commands

Provisioning Provider Integration sends a list of commands/actions that can be performed on services as these are implemented at the plugin.

Request headers

api_key
string required

The secret api key required for API calls to ensure that the client is trusted

Example:
4dc0809f-ed91-4b68-b912-5bd6064d901e

Responses

200 OK
Body
Object
content
Array
Object
name
string

The name of the command/action used for display purposes in the UI

Example:
Reset Service
code
string

A unique code for the action

Example:
RESET_SERVICE
description
string

Description of the action to be used for display purposes

Example:
Resets theservice's information
metadata_attributes
Array
Object
key
string
Example:
code
label
string
Example:
Code
description
string
Example:
A new code
type
string
Example:
DATE_RANGE
is_mandatory
boolean
Example:
true
Example 1
GET https://sandbox.crm.com/backoffice/v1/provisioning/service_commands HTTP/1.1 

api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "content": [
        {
            "name": "Reset Service",
            "code": "RESET_SERVICE",
            "description": "Resets theservice's information",
            "metadata_attributes": [
                {
                    "key": "code",
                    "label": "Code",
                    "description": "A new code",
                    "type": "DATE_RANGE",
                    "is_mandatory": true
                }
            ]
        }
    ]
}
Send Service Command
POST /provisioning/service_commands

Calls the Provisioning Provider Integration (plugin) in order to trigger a command related to a sepcific service.

Request headers

api_key
string required

The secret api key required for API calls to ensure that the client is trusted

Example:
4dc0809f-ed91-4b68-b912-5bd6064d901e

Request body

Object
code
string

The command’s code as this is implemented in the integration. Use Get Service Commands to retrieve the applicable codes

Example:
RESET_DEVICE
external_reference
Array of string

The service’s external reference(S) as this is configured within CRM.COM. A service might have multiple external references

provisioning_code
integer

The service’s provisioning code. Available when the service is not authorised to any device. When authorised on a device, then get the provisioning codes from the devices list

Example:
232345556798432
contact
Object

The contact owning the service

id
string

Contact identifier

Example:
4dc0809f-ed91-4b68-b912-5bd6064d901e
code
string

Contact code

Example:
12345-123
name
string

Contact full name

Example:
John Smith
devices
Array

List of devices that deliver the service

Object
external_reference
string

The devices external reference e.g its serial number

Example:
SN123456789
code
string

The provisioning code that relates the service to the device. For each device that delivers the service there’s a uniue provisioning code

Example:
9944583233212000
metadata_attributes
Array

Additional information that is required for the command to be sent successfully. Available metadata attributes can be retrieved using Get Service Commands Web API

Object
key
string

Attribute’s code

Example:
pin
value
string

Attribute value

Example:
1234

Responses

201 Created
Body
Object
status
string
Enumeration:
PENDING

Request sent to the integrator but no response received back (confirming whether the integrator received it, processed it etc)

COMPLETED

Provisioning integrator successfully processed the request sent by CRM.COM

REJECTED

Provisioning request sent by CRM.COM was rejected by the integrator

UNDER_PROCESSING

Provisioning integrator received the request by CRM.COM and it’s being processed.

Example:
PENDING
reference_number
string

A reference number related to the provisioning request. Return by the provisioning integrator to uniquely identify the request.

Example:
423045544544-122
error_code
string

The error code return by the integrator

Example:
500
error_description
string

The error description return by the integrator

Example:
HTTP transport error: java.net.UnknownHostException
requests
Array

Defines a list of requests that could be sent per CRM.COM event

Object
request
string

The request sent by the provisioning provider integrator to CAS/OTT

response
string

The response received by the CAS/OTT

Example 1
POST https://sandbox.crm.com/backoffice/v1/provisioning/service_commands HTTP/1.1 

api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
Content-Type: application/json

{
    "code": "RESET_DEVICE",
    "external_reference": [
        ""
    ],
    "provisioning_code": 232345556798432,
    "contact": {
        "id": "4dc0809f-ed91-4b68-b912-5bd6064d901e",
        "code": "12345-123",
        "name": "John Smith"
    },
    "devices": [
        {
            "external_reference": "SN123456789",
            "code": "9944583233212000"
        }
    ],
    "metadata_attributes": [
        {
            "key": "pin",
            "value": "1234"
        }
    ]
}

HTTP/1.1 201 Created 

Content-Type: application/json

{
    "status": "PENDING",
    "reference_number": "423045544544-122",
    "error_code": "500",
    "error_description": "HTTP transport error: java.net.UnknownHostException",
    "requests": [
        {
            "request": "",
            "response": ""
        }
    ]
}
WiFi Platform Providers
GET /wifi/organisations/networks
GET /wifi/organisations/guest_control
GET /wifi/organisations/devices
POST /wifi/organisations/guest_networks
POST /wifi/contacts/authorization
Get Organisation WiFi Networks
GET /wifi/organisations/networks

Retrieve the supported networks for a specific organisation (site) from the WiFi network

Request headers

api_key
string required

The secret api key required for API calls to ensure that the client is trusted

Example:
4dc0809f-ed91-4b68-b912-5bd6064d901e

Request body

Object
side_id
string required

The side identifier that will be used to retrieve related networks

Example:
88quh2m6

Responses

200 OK

The request has succeeded

Body
Object
content
Array
Object
id
string GUID

The network identifier

Example:
de6e76d6-7094-22e6-9d04-6d36a2c20b86
name
string

The network name

Example:
Nicosia
is_enabled
boolean

Defines whether the network is enabled or not

Example:
true
is_guest_enabled
boolean

Defines whether the network’s guest access is enabled or not

Example:
false
paging
Object
page
integer

The page number

Example:
2
size
integer

The number of records per page

Example:
20
total
integer

The overal number of records

Example:
5124
400 Bad Request

The input request was invalid or incorrect, often due to missing a required parameter

401 Unauthorized

The provided API Key or Token is invalid

403 Forbidden

The API key or Token does not have permissions to perform the request

404 Not Found

The requested resource does not exist

500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request

502 Bad Gateway

The server received an invalid response from the upstream server it accessed in attempting to fulfill the request

503 Service Unavailable

The server is currently unable to handle the request due to a temporary overloading or maintenance

504 Gateway Timeout

The server did not receive a timely response from the upstream server

Get Organisation WiFi Guest Control
GET /wifi/organisations/guest_control

Retrieve the supported guest control settings for a specific organisation (site) from the WiFi network

Request headers

api_key
string required

The secret api key required for API calls to ensure that the client is trusted

Example:
4dc0809f-ed91-4b68-b912-5bd6064d901e

Request body

Object
side_id
string required

The side identifier that will be used to retrieve related guest control settings

Example:
88quh2m6

Responses

200 OK

The request has succeeded

Body
Object
redirect_url
string

Defines the redirection URL (landing page) that contacts will access when joining a guest wifi network

Example:
https://crm.com/landing-page
400 Bad Request

The input request was invalid or incorrect, often due to missing a required parameter

401 Unauthorized

The provided API Key or Token is invalid

403 Forbidden

The API key or Token does not have permissions to perform the request

404 Not Found

The requested resource does not exist

500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request

502 Bad Gateway

The server received an invalid response from the upstream server it accessed in attempting to fulfill the request

503 Service Unavailable

The server is currently unable to handle the request due to a temporary overloading or maintenance

504 Gateway Timeout

The server did not receive a timely response from the upstream server

Example 1
GET https://sandbox.crm.com/backoffice/v1/wifi/organisations/guest_control HTTP/1.1 

api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
Content-Type: application/json

{
    "side_id": "88quh2m6"
}

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "redirect_url": "https://crm.com/landing-page"
}
Get Organisation WiFi Devices
GET /wifi/organisations/devices

Retrieve a list of devices (access points) for a specific site (organisation). Based on the retrieved devices will be imported as Transaction Acquiring Points for the given organisation (each device has a dedicated MAC Address that will be set as the TAP code).

Request headers

api_key
string required

The secret api key required for API calls to ensure that the client is trusted

Example:
4dc0809f-ed91-4b68-b912-5bd6064d901e

Request body

Object
site_id
string required

The side identifier that will be used to retrieve related networks

Example:
88quh2m6

Responses

200 OK

The request has succeeded

Body
Object
content
Array
Object
name
string

The device name

Example:
CRM-Nicosia
mac_address
string

The device MAC address

Example:
00:00:5e:00:53:af
paging
Object
page
integer

The page number

Example:
2
size
integer

The number of records per page

Example:
20
total
integer

The overal number of records

Example:
5124
400 Bad Request

The input request was invalid or incorrect, often due to missing a required parameter

401 Unauthorized

The provided API Key or Token is invalid

403 Forbidden

The API key or Token does not have permissions to perform the request

404 Not Found

The requested resource does not exist

500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request

502 Bad Gateway

The server received an invalid response from the upstream server it accessed in attempting to fulfill the request

503 Service Unavailable

The server is currently unable to handle the request due to a temporary overloading or maintenance

504 Gateway Timeout

The server did not receive a timely response from the upstream server

Example 1
GET https://sandbox.crm.com/backoffice/v1/wifi/organisations/devices HTTP/1.1 

api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
Content-Type: application/json

{
    "site_id": "88quh2m6"
}

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "content": [
        {
            "name": "CRM-Nicosia",
            "mac_address": "00:00:5e:00:53:af"
        }
    ],
    "paging": {
        "page": 2,
        "size": 20,
        "total": 5124
    }
}
Update Guest Control & Networks
POST /wifi/organisations/guest_networks

Update the guest control and WiFi networks over to WiFi platform

Request headers

api_key
string required

The secret api key required for API calls to ensure that the client is trusted

Example:
4dc0809f-ed91-4b68-b912-5bd6064d901e

Request body

Object
site_id
string required

The organisation (identifier from WiFi network) of which network will be provisioned

Example:
88quh2m6
guest_control
Object

Details about the guest control policy

redirect_url
string

Defines the URL that guests will be redirected to

Example:
https://landingpage.crm.com/wifi
wifi_networks
Array

Details about the WiFi networks that should be enabled and support guest access

Object
id
string

The network identifier

Example:
602fcea431d36b25cb2b2269
name
string

The network name

Example:
CRM-Nicosia
is_enabled
boolean

Defines whether the network is enabled or not

Example:
true
is_guest_enabled
boolean

Defines whether the guest access is enabled or not

Example:
false

Responses

200 OK

The request has succeeded

Body
Object
error_code
string

The error code return by the integrator

Example:
500
error_description
string

The error description return by the integrator

Example:
HTTP transport error: java.net.UnknownHostException
requests
Array
Object
request
string

The request sent by the integrator to the external system (that integration is made against)

response
string

The response received by the external system (that integration is made against)

400 Bad Request

The input request was invalid or incorrect, often due to missing a required parameter

401 Unauthorized

The provided API Key or Token is invalid

403 Forbidden

The API key or Token does not have permissions to perform the request

404 Not Found

The requested resource does not exist

500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request

502 Bad Gateway

The server received an invalid response from the upstream server it accessed in attempting to fulfill the request

503 Service Unavailable

The server is currently unable to handle the request due to a temporary overloading or maintenance

504 Gateway Timeout

The server did not receive a timely response from the upstream server

Example 1
POST https://sandbox.crm.com/backoffice/v1/wifi/organisations/networks/guest HTTP/1.1 

api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
Content-Type: application/json

{
    "site_id": "88quh2m6",
    "guest_control": {
        "redirect_url": "https://landingpage.crm.com/wifi"
    },
    "wifi_networks": [
        {
            "id": "602fcea431d36b25cb2b2269",
            "name": "CRM-Nicosia",
            "is_enabled": "true",
            "is_guest_enabled": "false"
        }
    ]
}

HTTP/1.1 200 OK 
Contact Guest Authorization
POST /wifi/contacts/authorization

Authorize a contact device over to WiFi platform

Request headers

api_key
string required

The secret api key required for API calls to ensure that the client is trusted

Example:
4dc0809f-ed91-4b68-b912-5bd6064d901e

Request body

Object
site_id
string

The side identifier that will be used for authorization purposes

Example:
88quh2m6
contact_external_id
string GUID

The contact identifier (as configured in CRM) that will be used for authorization and usage purposes

Example:
f0a67371-ca4d-66ec-a3c8-8a52d7d8fa79
contact_gadget_id
string GUID

The contact gadget identifier (as configured in CRM) that its provided MAC Address will be used for authorization and usage purposes

Example:
f0a67371-ca4d-66ec-a3c8-8a52d7d8fa79
mac_address
string

The contact MAC address that will be used for authorization purposes

Example:
01-23-45-67-89-AB
data_transfer
string

The data transfer limit that contact will be authorized for

Example:
2048
organisation_id
string GUID
Example:
733c1881-20e5-f8fa-1c9c-62fd96463add

Responses

200 OK

The request has succeeded

Body
Object
error_code
string

The error code return by the integrator

Example:
500
error_description
string

The error description return by the integrator

Example:
HTTP transport error: java.net.UnknownHostException
requests
Array
Object
request
string

The request sent by the integrator to the external system (that integration is made against)

response
string

The response received by the external system (that integration is made against)

400 Bad Request

The input request was invalid or incorrect, often due to missing a required parameter

401 Unauthorized

The provided API Key or Token is invalid

403 Forbidden

The API key or Token does not have permissions to perform the request

404 Not Found

The requested resource does not exist

500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request

502 Bad Gateway

The server received an invalid response from the upstream server it accessed in attempting to fulfill the request

503 Service Unavailable

The server is currently unable to handle the request due to a temporary overloading or maintenance

504 Gateway Timeout

The server did not receive a timely response from the upstream server

Example 1
Example 2
POST https://sandbox.crm.com/backoffice/v1/wifi/contact/authentication HTTP/1.1 

api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
Content-Type: application/json

{
    "mac_address": "01-23-45-67-89-AB"
}

HTTP/1.1 200 OK 
POST https://sandbox.crm.com/backoffice/v1/wifi/contact/authorisation HTTP/1.1 

api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
Content-Type: application/json

{
    "mac_address": "23-45-67-89"
}

HTTP/1.1 401 Unauthorized 
Settings - Configuration
PUT /plugins/settings
GET /plugins/settings
POST /plugins/apikeys
DELETE /plugins
Set Provider Attributes
PUT /plugins/settings

Send the required provider attributes (as defined in the provisioning provider adapter) as specified within CRM

Request headers

api_key
string required

The secret api key required for API calls to ensure that the client is trusted

Example:
4dc0809f-ed91-4b68-b912-5bd6064d901e

Request body

Object
parameters
Array required

A set of parameters required for successfully integrating with the 3rd party provider

Object
key
string required

The parameter key

Example:
hostname
value
string required

The parameter value

Example:
crm.com/provider

Responses

200 OK

The request has succeeded

400 Bad Request

The input request was invalid or incorrect, often due to missing a required parameter

401 Unauthorized

The provided API Key or Token is invalid

403 Forbidden

The API key or Token does not have permissions to perform the request

404 Not Found

The requested resource does not exist

500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request

502 Bad Gateway

The server received an invalid response from the upstream server it accessed in attempting to fulfill the request

503 Service Unavailable

The server is currently unable to handle the request due to a temporary overloading or maintenance

504 Gateway Timeout

The server did not receive a timely response from the upstream server

Example 1
PUT https://plugin.com/plugins/settings HTTP/1.1 

api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e
Content-Type: application/json

{
    "parameters": [
        {
            "key": "hostname",
            "value": "crm.com/provider"
        }
    ]
}

HTTP/1.1 200 OK 
Get Provider Attributes
GET /plugins/settings

Retrieve the required attributes (as defined in the provisioning provider adapter) that need to be set within CRM, when setting up the provider. Part of the reponse, the provider media (image) is returned as well (if any)

Request headers

api_key
string required

The secret api key required for API calls to ensure that the client is trusted

Example:
4dc0809f-ed91-4b68-b912-5bd6064d901e

Responses

200 OK
Body
Object
media_url
string

The provisioning provider media URL

Example:
crm.com/provider.png
logo_media_url
string

The provisioning provider media (logo) URL

Example:
crm.com/logo-provider.png
parameters
Array

A set of parameters required for successfully integrating with the 3rd party provider

Object
key
string

The parameter key

Example:
hostname
value
string

The parameter value

Example:
crm.com/provider
label
string

The parameter label, used for display purposes

Example:
Hostname
is_read_only
boolean
Example:
true
type
string

The parameter type

Enumeration:
INTEGER
STRING
NUMBER
BOOLEAN
MULTIPLE_DATES
PASSWORD
TEXTAREA
CRM_PRODUCT

Search component of Products configured in CRM.COM

Example:
STRING
mandatory
boolean
Example:
true
400 Bad Request

The input request was invalid or incorrect, often due to missing a required parameter

401 Unauthorized

The provided API Key or Token is invalid

403 Forbidden

The API key or Token does not have permissions to perform the request

404 Not Found

The requested resource does not exist

500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request

502 Bad Gateway

The server received an invalid response from the upstream server it accessed in attempting to fulfill the request

503 Service Unavailable

The server is currently unable to handle the request due to a temporary overloading or maintenance

504 Gateway Timeout

The server did not receive a timely response from the upstream server

Example 1
GET https://sandbox.crm.com/backoffice/v1/plugins/settings HTTP/1.1 

api_key: 4dc0809f-ed91-4b68-b912-5bd6064d901e

HTTP/1.1 200 OK 

Content-Type: application/json

{
    "media_url": "crm.com/provider.png",
    "logo_media_url": "crm.com/logo-provider.png",
    "parameters": [
        {
            "key": "hostname",
            "value": "crm.com/provider",
            "label": "Hostname",
            "is_read_only": true,
            "type": "PRODUCT",
            "mandatory": "true"
        }
    ]
}
Generate Provider Key
POST /plugins/apikeys

Generate a random API Key that will be used for authenticating/authorising requests made to the provisioning provider integration.

Notes

CORE BEHAVIOR

API Key should be created as part of the process of creating a new provider (e.g. payment gateway provider).

Request body

Object
organisation_id
string GUID required

The organisation (ext identifier) on which the provider will be associated with

Example:
ccc740f9-7482-b689-54ee-bd78e065d550
organisation_name
string required

The organisation (name) on which the provider will be associated with

Example:
crm

Responses

200 OK
Body
Object
key
string

The non-encrypted api key value that will be used for subsuquent provisioning authentication

Example:
key-123456789
400 Bad Request

The input request was invalid or incorrect, often due to missing a required parameter

401 Unauthorized

The provided API Key or Token is invalid

403 Forbidden

The API key or Token does not have permissions to perform the request

404 Not Found

The requested resource does not exist

500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request

502 Bad Gateway

The server received an invalid response from the upstream server it accessed in attempting to fulfill the request

503 Service Unavailable

The server is currently unable to handle the request due to a temporary overloading or maintenance

504 Gateway Timeout

The server did not receive a timely response from the upstream server

Example 1
POST https://plugin.com/plugins/apikeys HTTP/1.1 

Content-Type: application/json

{
    "organisation_id": "ccc740f9-7482-b689-54ee-bd78e065d550",
    "organisation_name": "crm"
}
Delete Plugin
DELETE /plugins

Authorisation revoked from integration side Also applicable for integration without authorisation

Request headers

api_key
string required

The secret api key required for API calls to ensure that the client is trusted

Example:
4dc0809f-ed91-4b68-b912-5bd6064d901e