Self Service

POST /merchant/{merchant_id}/agreements

Requires authentication with server or user access token.

Create new agreement within merchant.

Help us improve

Did you spot an error? Or maybe you just have a suggestion for how we can improve? Leave us a comment.

Request

POST /api/2/merchant/{merchant_id}/agreements

merchant_id

required path parameter

Merchant ID

markdown

required

date

optional

markdown_summary

optional

title

optional

privacy_url

optional

Example request

cURL
Minimal example
curl https://login.schibsted.com/api/2/merchant/46000/agreements \
   -X POST \
   -d "oauth_token=[access token]" \
   -d "markdown=# Markdown"
With all parameters
curl https://login.schibsted.com/api/2/merchant/46000/agreements \
   -X POST \
   -d "oauth_token=[access token]" \
   -d "markdown=# Markdown" \
   -d "date=2017-01-03" \
   -d "markdown_summary=# Markdown" \
   -d "title=Freebies for all" \
   -d "privacy_url=https://login.schibsted.com/privacy"
Java
Minimal example
Map<String, String> params = new HashMap<>() {{
    put("markdown", "# Markdown");
}};

SpidOAuthToken token = spidClient.getUserToken(code);
String responseJSON = spidClient.
    POST(token, "/merchant/46000/agreements", params).
    getResponseBody();
With all parameters
Map<String, String> params = new HashMap<>() {{
    put("markdown", "# Markdown");,
    put("date", "2017-01-03");,
    put("markdown_summary", "# Markdown");,
    put("title", "Freebies for all");,
    put("privacy_url", "https://login.schibsted.com/privacy");
}};

SpidOAuthToken token = spidClient.getUserToken(code);
String responseJSON = spidClient.
    POST(token, "/merchant/46000/agreements", params).
    getResponseBody();

This example is an excerpt, see a full example

PHP
Minimal example
<?php
$params = array(
    "markdown" => "# Markdown"
);

$client->auth();
echo var_dump($client->api("/merchant/46000/agreements", "POST", $params));
With all parameters
<?php
$params = array(
    "markdown" => "# Markdown",
    "date" => "2017-01-03",
    "markdown_summary" => "# Markdown",
    "title" => "Freebies for all",
    "privacy_url" => "https://login.schibsted.com/privacy"
);

$client->auth();
echo var_dump($client->api("/merchant/46000/agreements", "POST", $params));

This example is an excerpt, see a full example

Clojure
Minimal example
(ns example
  (:require [spid-client-clojure.core :as spid]))

(let [client (spid/create-client "[client-id]" "[secret]")
      token (spid/create-user-token client "[code]")]
  (spid/POST client token "/merchant/46000/agreements" {"markdown" "# Markdown"}))
With all parameters
(ns example
  (:require [spid-client-clojure.core :as spid]))

(let [client (spid/create-client "[client-id]" "[secret]")
      token (spid/create-user-token client "[code]")]
  (spid/POST client token "/merchant/46000/agreements" {"markdown" "# Markdown"
                                                        "date" "2017-01-03"
                                                        "markdown_summary" "# Markdown"
                                                        "title" "Freebies for all"
                                                        "privacy_url" "https://login.schibsted.com/privacy"}))

Response

This endpoint supports the JSON response format.

Success: 201 Created

Returns the newly created agreenebt object

Agreement

Agreement object

merchant_id

string

Merchant ID

type

string

Agreement type: terms

text

string

Agreement text

date

string

Date of agreement

markdown

string

Agreement in Markdown format

privacy_url

string

URL to privacy policy

summary

string

Summary text if such exist

title

string

Title of agreement

updated

string

Timestamp of latest changes to agreement

id

string

ID of agreement

Failure cases

Some HTTP response codes are used for multiple error situations. There is no consistent way to tell these apart, but the error object will contain a textual explanation of the reason for the error. For explanation on OAuth related failures and errors see OAuth authentication failures.

  • 400 Bad Request Missing required parameters or similar error
  • 401 Unauthorized You don't have administration rights for this client.
  • 401 Unauthorized Your client doesn't have administration rights for this client.
  • 403 Forbidden Client is not authorized to access this API endpoint. Contact SPiD to request access.
  • 403 Forbidden Requesting IP is not whitelisted
  • 403 Forbidden Token does not have access to this merchant
  • 403 Forbidden Access token rejected
  • 404 Not Found Unknown client ID
  • 404 Not Found Client ID mismatch. The client making the request is no the owner of this resource, and does not have administrative privileges for it.
  • 420 Request Ratelimit exceeded

Comments/feedback

Do you have questions, or just want to contribute some newly gained insight? Want to share an example? Please leave a comment. SPiD reads and responds to every question. Additionally, your experience can help others using SPiD, and it can help us continuously improve our documentation.