Choose a language javascript

Ecommerce

An ecommerce object allows you to take a payment via the SDK, it works much the same way as a ecommerce object.

The Ecommerce Object

{
"id": "b5e1bd24-7379-4d27-b4d8-07120fefc25c",
"booking": {
"id": "9a33a74f-1e3e-595d-b89f-9da87d289e05",
"email": "tom@felloh.org",
"customer_name": "Tom Jones",
"booking_reference": "FEL-00012",
"departure_date": null,
"return_date": null,
"created_at": "2021-11-17T15:10:37.589Z"
},
"email": "tom@felloh.org",
"methods": {
"open_banking": true,
"card": true
},
"amount": 100,
"currency": "GBX",
"customer_name": "Tom Jones",
"transactions": [
{
"id": "b5e1bd24-7379-4d27-b4d8-07120fefc25c",
"amount": 100,
"completed_at": "2021-11-17T15:11:37.581Z",
"created_at": "2021-11-17T15:11:37.581Z"
}
],
"user": {
"id": "e8c243ff-d000-4f81-ba57-94184d44dae2",
"email": "tom@felloh.com"
},
"organisation": {
"id": "X9876",
"name": "Felloh"
},
"expires_at": "2021-12-17T15:10:37.589Z",
"created_at": "2021-11-17T15:10:37.589Z"
}

The compact ecommerce object object

{
"id": "b5e1bd24-7379-4d27-b4d8-07120fefc25c",
"amount": 100,
"currency": "GBX",
"expires_at": "2021-12-17T15:10:37.589Z",
"created_at": "2021-11-17T15:10:37.589Z"
}

idstring

Unique identifier for the object

bookingobject

The booking object that the ecommerce object is linked to

emailstring

The email address of the payee

methods.open_bankingboolean

Whether the customer will be presented with the option to pay by open banking

methods.cardboolean

Whether the customer will be presented with the option to pay by card

amountnumber

The amount that the customer should be charged, in its lowest denomination (for GBP, this would be pence)

currencystring

The currency that the ecommerce object will be charged in | see currency documentation

customer_namestring

The name of the customer that the ecommerce object is for

transactionsarray

An array containing any compact transaction objects created using the ecommerce object

userobject

The compact user object of the user that created the booking

organisationobject

A compact organisation object representing the organisation owner of the ecommerce object.

created_atdatetime

The datetime at which the ecommerce object was created within our systems

expires_atdatetime

The datetime at which the ecommerce object will no longer be usable by a customer


Fetch all

POST/agent/ecommerce

import axios from 'axios';
const response = await axios(
{
method: 'post',
url: 'https://api.felloh.com/agent/ecommerce',
data: {
organisation: 'X9876',
keyword: 'james.dean@gmail.com',
date_from: '2020-02-01',
date_to: '2021-05-10',
skip: 10,
take: 20
},
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer <YOUR TOKEN HERE>`,
},
},
);

RESPONSE

{
"data": [
{
"id": "b5e1bd24-7379-4d27-b4d8-07120fefc25c",
"booking": {
"id": "9a33a74f-1e3e-595d-b89f-9da87d289e05",
"email": "tom@felloh.org",
"customer_name": "Tom Jones",
"booking_reference": "FEL-00012",
"departure_date": null,
"return_date": null,
"created_at": "2021-11-17T15:10:37.589Z"
},
"email": "tom@felloh.org",
"methods": {
"open_banking": true,
"card": true
},
"amount": 100,
"currency": "GBX",
"customer_name": "Tom Jones",
"transactions": [
{
"id": "b5e1bd24-7379-4d27-b4d8-07120fefc25c",
"amount": 100,
"completed_at": "2021-11-17T15:11:37.581Z",
"created_at": "2021-11-17T15:11:37.581Z"
}
],
"user": {
"id": "e8c243ff-d000-4f81-ba57-94184d44dae2",
"email": "tom@felloh.com"
},
"organisation": {
"id": "X9876",
"name": "Felloh"
},
"expires_at": "2021-12-17T15:10:37.589Z",
"created_at": "2021-11-17T15:10:37.589Z"
}
],
"errors": {},
"meta": {
"code": 200,
"reason": "OK",
"message": "The request was successful",
"request_id": "cdd40f5c-9d82-44c2-92e3-b5d2cad364f6",
"count": 1
}
}

This endpoint retrieves all ecommerce objects. Objects are sorted by creation date by default, with the most recent ecommerce objects coming first.

HTTP Method

POST

HTTP Endpoint

PRODhttps://api.felloh.com/agent/ecommerce

SANDBOXhttps://sandbox.felloh.com/agent/ecommerce

Payload

ParameterRequiredTypeDescription
organisationtruestringThe organisation ID that you want to fetch ecommerce objects for. You can find the organisation that you have access to by using the List all organisations method.
keywordfalsestringA customer name, booking reference or email address that you want to filter by.
skipfalseIntegerSee pagination section for details
takefalseIntegerSee pagination section for details
show-child-organisationsfasleBooleanWhether to also show ecommerce objects for any of the requested organisations child organisations
date_fromfalsedateThe creation date that you want to get ecommerce objects from, in ISO 8601 format
date_tofalsedateThe creation date that you want to get ecommerce objects to, in ISO 8601 format

Response

Returns an array of ecommerce objects


Fetch one

GET/agent/ecommerce/226009ab-ffe9-4c80-922b-982e8e7849f8

import axios from 'axios';
const ecommerceID = '226009ab-ffe9-4c80-922b-982e8e7849f8';
const response = await axios(
{
method: 'get',
url: `https://api.felloh.com/agent/ecommerce/${ecommerceID}`,
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer <YOUR TOKEN HERE>`,
},
},
);

RESPONSE

{
"data": {
"id": "b5e1bd24-7379-4d27-b4d8-07120fefc25c",
"booking": {
"id": "9a33a74f-1e3e-595d-b89f-9da87d289e05",
"email": "tom@felloh.org",
"customer_name": "Tom Jones",
"booking_reference": "FEL-00012",
"departure_date": null,
"return_date": null,
"created_at": "2021-11-17T15:10:37.589Z"
},
"email": "tom@felloh.org",
"methods": {
"open_banking": true,
"card": true
},
"amount": 100,
"currency": "GBX",
"customer_name": "Tom Jones",
"transactions": [
{
"id": "b5e1bd24-7379-4d27-b4d8-07120fefc25c",
"amount": 100,
"completed_at": "2021-11-17T15:11:37.581Z",
"created_at": "2021-11-17T15:11:37.581Z"
}
],
"user": {
"id": "e8c243ff-d000-4f81-ba57-94184d44dae2",
"email": "tom@felloh.com"
},
"organisation": {
"id": "X9876",
"name": "Felloh"
},
"expires_at": "2021-12-17T15:10:37.589Z",
"created_at": "2021-11-17T15:10:37.589Z"
},
"errors": {},
"meta": {
"code": 200,
"reason": "OK",
"message": "The request was successful",
"request_id": "cdd40f5c-9d82-44c2-92e3-b5d2cad364f6"
}
}

This endpoint allows you to retrieve a single ecommerce object

HTTP Method

GET

HTTP Endpoint

PRODhttps://api.felloh.com/agent/ecommerce/<ECOMMERCE ID>

SANDBOXhttps://sandbox.felloh.com/agent/ecommerce/<ECOMMERCE ID>

Path Parameters

ParameterRequiredTypeDescription
idtrueUUIDThe ecommerce object id that you wish to retrieve

Response

Returns a Ecommerce Object


Delete one

DELETE/agent/ecommerce/226009ab-ffe9-4c80-922b-982e8e7849f8

import axios from 'axios';
const ecommerceID = '226009ab-ffe9-4c80-922b-982e8e7849f8';
const response = await axios(
{
method: 'delete',
url: `https://api.felloh.com/agent/ecommerce/${ecommerceID}`,
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer <YOUR TOKEN HERE>`,
},
},
);

RESPONSE

{
"data": {},
"errors": {},
"meta": {
"code": 200,
"reason": "OK",
"message": "The request was successful",
"request_id": "cdd40f5c-9d82-44c2-92e3-b5d2cad364f6"
}
}

This endpoint allows you to delete a single ecommerce object

HTTP Method

DELETE

HTTP Endpoint

PRODhttps://api.felloh.com/agent/ecommerce/<ECOMMERCE ID>

SANDBOXhttps://sandbox.felloh.com/agent/ecommerce/<ECOMMERCE ID>

Path Parameters

ParameterRequiredTypeDescription
idtrueUUIDThe ecommerce object id that you wish to delete

Create one

PUT/agent/ecommerce/

import axios from 'axios';
const response = await axios(
{
method: 'put',
url: `https://api.felloh.com/agent/ecommerce`,
data : JSON.stringify({
customer_name: 'Tom Brady',
email: 'tom@felloh.com',
booking_id: '226009ab-ffe9-4c80-922b-982e8e7849f8',
amount: 20000,
organisation: 'X1234',
open_banking_enabled: true,
card_enabled: true,
expires_at: '2022-07-25',
}),
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer <YOUR TOKEN HERE>`,
},
},
);

RESPONSE

{
"data": {
"id": "226009ab-ffe9-4c80-922b-982e8e7849f8",
},
"errors": {},
"meta": {
"code": 200,
"reason": "OK",
"message": "The request was successful",
"request_id": "cdd40f5c-9d82-44c2-92e3-b5d2cad364f6"
}
}

This endpoint allows you to create a new ecommerce object

HTTP Method

PUT

HTTP Endpoint

PRODhttps://api.felloh.com/agent/ecommerce

SANDBOXhttps://sandbox.felloh.com/agent/ecommerce

Payload

ParameterRequiredTypeDescription
customer_nametruestringThe customers full name.
emailtruestringThe customers email address
organisationtruestringThe organisation ID that you want to create the ecommerce object in.
booking_idfalsestringThe booking ID that you want to assign the ecommerce object to. This can be assigned later if you wish.
amounttrueintegerThe value that you want to charge the customer
openbankingenabledfalseboolWhether to allow the customer to pay via open banking
card_enabledfalseboolWhether to allow the customer to pay via card
expires_atfalsedateThe date that the ecommerce object will expire, defaults to 30 days from date created.

Response

ParameterTypeDescription
idUUIDThe ID of the ecommerce object that you have created

Assign to booking

POST/agent/ecommerce/{ecommerce_id}/assign

import axios from 'axios';
const ecommerceID = '226009ab-ffe9-4c80-922b-982e8e7849f8';
const bookingID = '226009ab-ffe9-4c80-922b-982e8e7849f8';
const response = await axios(
{
method: 'post',
url: `https://api.felloh.com/agent/ecommerce/${ecommerceID}/assign`,
data : JSON.stringify({
booking_id: bookingID,
}),
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer <YOUR TOKEN HERE>`,
},
},
);

RESPONSE

{
"data": {},
"errors": {},
"meta": {
"code": 200,
"reason": "OK",
"message": "The request was successful",
"request_id": "cdd40f5c-9d82-44c2-92e3-b5d2cad364f6"
}
}

This endpoint allows you to assign a ecommerce object to a booking

HTTP Method

POST

HTTP Endpoint

PRODhttps://api.felloh.com/agent/ecommerce/{ecommerce_id}/assign

SANDBOXhttps://sandbox.felloh.com/agent/ecommerce/{ecommerce_id}/assign

Payload

ParameterRequiredTypeDescription
booking_idfalsestringThe booking ID that you want to assign the ecommerce object to.