Skip to content

Business Partner Resource

Introduction

A business partner in the Open Publishing ecosystem are all persons a customer will interact with. They can be human beings or cooperations. Business partners can be buyers of products, contributors or owners of products or royalty recipients.

Example URL

https://api.openpublishing.com/resource/v3/business_partners/[ID]

Allowed methods: GET, PUT, DELETE.

For creating a business partner POST an object to https://api.openpublishing.com/resource/v3/business_partners.

Search Filters

List business_partners:

https://api.openpublishing.com/resource/v3/business_partners

General search (fulltext search on various fields).

https://api.openpublishing.com/resource/v3/business_partners?q=test

Filter by external identifiers:

https://api.openpublishing.com/resource/v3/business_partners?external_identifier_type=klopotek&external_identifier_value=503107

external_identifier_type / external_identifier_value : Search for business partners with an external identifier set. The external identifier type is the category of the businesspartner, e.g. "paypal" whereas the value is the id itself. If only external_identifier_type is specified, all business partners with the external identifier type set are returned. If you search for only external_identifier_value - the system will return all identifiers with the value, where the type is not set.

Search for all Business Partners which are contractors:

https://api.openpublishing.com/resource/v3/business_partners?contractor=true

Search for all Business Partners which are team members:

https://api.openpublishing.com/resource/v3/business_partners?team=true

Search for last name or firstname:

https://api.openpublishing.com/resource/v3/business_partners?last_name=test
https://api.openpublishing.com/resource/v3/business_partners?first_name=test

Fields

Academic title

academic_title string or null containing the academic title of the customer.

Bank Details

bank_details contain the information of a bank account of a customer. It contains a dict with the following fields:

  • account_holder: Name of the holder of the account.
  • iban: IBAN of the bank account.
  • bic: SWIFT BIC of the bank account. This field is required for none SEPA bank accounts.

Biography

biography of the business partner. Can be NULL or a string.

Company account

company_account is a boolean indicating if the business partner is a company or a person.

Corporate name

corporate_name describes the name of the company for company accounts.

Contractor

contractor is a boolean indicating if the business partner may be a contracting party. It is a read only field.

Creditor ID and Debitor ID

creditor_id and debitor_id refer to the identifier in an external accounting software (e.g. Datev or SAP).

Email

email : Email address of business partner. Can be null or a string.

External Identifiers

external_identifiers: List of external/foreign identifiers, e.g. the id of the business partner within Klopotek, Paypal or Amazon. The listed objects are dicts with the values type for the type of the identifier and value for the identifier itself.

Fax

fax field contains fax number of business partner.

First name

first_name: First name of business partner. Can be null or a string.

Gender

gender: Gender of business partner. 'm' (male), 'f' (female), 'd' (diverse) or null.

Labels

The labels field contains a list of strings internally used for marking and grouping business partners. These labels may be used to control the internal workflow and are not exported to external partners.

Language

language: Language of the business partner in ISO-639-2/B or null.

Last name

last_name: Last name of business partner. Can be null or a string.

Note

note field may be used to store internal notes about the customer. E.g. for which reason a value was changed.

ORCID

orcid: ORCD ID of the business partner.

Phone

phone field contains phone number of business partner.

Realm

realm is the Open Publishing terminology for tenant. It contains a dict with _id and name and screenname.

Screenname

screenname is a read only field with a calculated screen name of the business partner. The name is calculated out of the fields academic_title, first_name, last_name and corporate_name.

Tax details

tax_details contain the information related with taxing. It contains a dict with the following fields:

  • subject_to_german_ksk_fund: Boolean indicating if the publisher has to pay taxes for the German KSK for the business partner.
  • subject_to_vat: Boolean indicating if the business partner is subject to VAT.
  • tax_address: String with the tax address of the business partner ("Steuerwohnsitz").
  • tax_authority: Name of the tax authority.
  • tax_country: country in which the business partner has legal tax obligations.
  • tax_id: A string or null for the (income) tax id of the business partner.
  • vat_rate_type: Either null for automatic vat calculation or the string values "standard" or "reduced".
  • vat_id: String or null containing the VAT-ID of the business partner.

Team

team is a read only boolean field describing if the business partner is part of the team of the publisher. If set to yes, this person has right to log in to the backend.

Example JSON

{
    "_id": 147,
    "academic_title": "Dr.",
    "bank_details": {
      "account_holder": "John Doe",
      "bic": "HYVEDEMMXXX",
      "iban": "DE28700202700123456789"
    },
    "biography": "Lorem ipsum",
    "company_account": false,
    "contractor": false,
    "corporate_name": null,
    "creditor_id": null,
    "debitor_id": null,
    "email": "john.doe@openpublishing.com",
    "external_identifiers":
       [
          {
             "type": "PAYPAL",
             "value": "LRXSQA2JR8X4"
          },
          {
             "type": "FACEBOOK",
             "value": "510952107"
          }
       ],
    "fax": "+49 89 123124",
    "first_name": "John",
    "gender": "m",
    "labels": ["one", "two", "three"],
    "language": "eng",
    "last_name": "Doe",
    "note": "Changed bank details on customer request, 2022-01-23",
    "orcid": null,
    "phone": "+49 89 123123",
    "realm": {
      "_id": 23,
      "name": "testpublisher",
      "screenname": "Test Publisher"
    },
    "screenname": "John Doe",
    "tax_details": {
      "subject_to_german_ksk_fund": true,
      "subject_to_vat": true,
      "tax_address": null,
      "tax_authority": null,
      "tax_country": null,
      "tax_id": null,
      "vat_rate_type": null,
      "vat_id": null
    }
    "team": false
}

Files

Additionally assets and files associated with a business partner may be stored to the following endpoint. URL:

https://api.openpublishing.com/resource/v3/business_partners/[ID]/files
https://api.openpublishing.com/resource/v3/business_partners/[ID]/files/[ID]

For adding files, POST to above URL with an multipart/form encoded body with the following parameters:

  • file the file itself
  • type of the file. An arbitrary string, e.g. avatar.

The URL also supports GET for retrieving information about uploaded files. It contains a JSON with the following fields:

  • file_name : File name of uploaded file.
  • file_size : File size in bytes.
  • mime_type : mime type of file, e.g. application\/xml.
  • href : URL to download file.
  • labels : labels of file - at the moment read only.
  • properties : Properties of file - at the moment read only.
  • sha1 : SHA1 checksum of uploaded file..
  • timestamp : Unix timestamp when file was uploaded.
  • type : type of the file. An arbitrary string, e.g. avatar.

Example JSON:

{
  "_id": 14657,
  "file_name": "10667364.png",
  "file_size": 450978,
  "mime_type": "image\/png",
  "href": "https:\/\/api.openpublishing.com\/resource\/v3\/business_partners\/128\/file\/14657\/file",
  "labels": [],
  "properties": {},
  "sha1": "5fc48f2945b36f886ae9588a887bf1a4ebc00fae",
  "timestamp": 1645561315,
  "type": "avatar"
}