Create price list - Fabric
Create price list
cURL
curl --request POST \
--url https://live.copilot.fabric.inc/api-offers/price-list \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-site-context: <x-site-context>' \
--data '
{
"name": "BuildMuscles-CONTRACT123",
"isDefault": false,
"currency": "CAD",
"startDate": "2021-05-04T09:23:51.459Z",
"endDate": "2021-06-09T09:23:51.459Z"
}
'
Python
import requests
url = "https://live.copilot.fabric.inc/api-offers/price-list"
payload = {
"name": "BuildMuscles-CONTRACT123",
"isDefault": False,
"currency": "CAD",
"startDate": "2021-05-04T09:23:51.459Z",
"endDate": "2021-06-09T09:23:51.459Z"
}
headers = {
"x-site-context": "<x-site-context>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
JavaScript (Fetch)
const options = {
method: 'POST',
headers: {
'x-site-context': '<x-site-context>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'BuildMuscles-CONTRACT123',
isDefault: false,
currency: 'CAD',
startDate: '2021-05-04T09:23:51.459Z',
endDate: '2021-06-09T09:23:51.459Z'
})
};
fetch('https://live.copilot.fabric.inc/api-offers/price-list', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
PHP
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://live.copilot.fabric.inc/api-offers/price-list",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'BuildMuscles-CONTRACT123',
'isDefault' => false,
'currency' => 'CAD',
'startDate' => '2021-05-04T09:23:51.459Z',
'endDate' => '2021-06-09T09:23:51.459Z'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-site-context: <x-site-context>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
?>
Go
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://live.copilot.fabric.inc/api-offers/price-list"
payload := strings.NewReader("{\n \"name\": \"BuildMuscles-CONTRACT123\",\n \"isDefault\": false,\n \"currency\": \"CAD\",\n \"startDate\": \"2021-05-04T09:23:51.459Z\",\n \"endDate\": \"2021-06-09T09:23:51.459Z\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-site-context", "<x-site-context>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
Unirest (Java)
HttpResponse<String> response = Unirest.post("https://live.copilot.fabric.inc/api-offers/price-list")
.header("x-site-context", "<x-site-context>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"BuildMuscles-CONTRACT123\",\n \"isDefault\": false,\n \"currency\": \"CAD\",\n \"startDate\": \"2021-05-04T09:23:51.459Z\",\n \"endDate\": \"2021-06-09T09:23:51.459Z\"}")
.asString();
Ruby
require 'uri'
require 'net/http'
url = URI("https://live.copilot.fabric.inc/api-offers/price-list")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-site-context"] = '<x-site-context>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"BuildMuscles-CONTRACT123\",\n \"isDefault\": false,\n \"currency\": \"CAD\",\n \"startDate\": \"2021-05-04T09:23:51.459Z\",\n \"endDate\": \"2021-06-09T09:23:51.459Z\"}"
response = http.request(request)
puts response.read_body
Sample Responses
Success Response
{
"_id": "614b58924e92f6861ac9d43b",
"priceListId": 10000003,
"name": "BuildMuscles-CONTRACT123",
"isDefault": false,
"currency": "USD",
"startDate": "2021-05-04T09:23:51.459Z",
"endDate": "2021-06-09T09:23:51.459Z",
"deleted": false,
"createdAt": "2020-12-14T12:15:43.646Z",
"updatedAt": "2021-12-14T12:15:43.646Z"
}
Error Responses
- Price List Name Exists
{
"code": "PRICE_LIST_NAME_EXISTS",
"message": "Price list name already exists"
}
- Internal Server Error
{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error."
}
Authorizations
Authorization
string - required
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
x-site-context
string - required
The x-site-context header is a JSON object that contains information about the source you wish to pull from. The mandatory account is the 24 character identifier found in Copilot. The channel (Sales channel ID), stage (environment name), and date attributes can be used to further narrow the scope of your data source.
Example:
"{\"date\": \"2023-01-01T00:00:00.000Z\", \"channel\": 12, \"account\": \"1234abcd5678efgh9ijklmno\",\"stage\":\"production\"}"
Body
Content-Type: application/json
name string - required
Pricelist name Example:"BuildMuscles-CONTRACT123"isDefault
boolean - required
true: If you want to keep the given pricelist as the default price list.false: If you do not want to keep the given pricelist as the default price list.
currency string
- required
Currency code, as defined by ISO-4217, of the price specified in the price list.startDate
string
Start date of the price list, it indicates the date when the price list becomes available to use.endDate
string
End date of the price list.