Reporting from subscription services

This service is only for customers with subscription model. It will replace the reporting documented at https://bokbasen.jira.com/wiki/spaces/api/pages/2498527278.

Please note the following:

  • Single point of reporting. Bokbasen will distribute reports to all relevant product owners (publisher) to be used for invoicing the subscription service and calculation of royalty to authors, etc.

  • The report should only include reads above the threshold (i.e 10%), as agreed upon with the publisher.

  • All data within a reporting period must be delivered simultaneously.

  •  If a product changes product owner within a reporting period, the product must be reported twice (one time on each owner) 

  • Frequency as agreed upon with the publisher, but should not include partial months, making a month the shortest reporting period possible.

 New Authentication & URLs introduced Q2 2024

URL

https://api.bokbasen.io/reporting/streaming/v1

https://api.dds.boknett.no/usage/streaming

The token acquired from the https://bokbasen.jira.com/wiki/spaces/api/pages/48955430.

Required header: Date The timestamp the request was made. Must comply with RFC 1123 date formats. Example: Tue, 10 Jun 2014 16:23:42 GMT

Method

POST

Request headers

Authorization

Required

The token acquired from the https://bokbasen.jira.com/wiki/spaces/api/pages/2994962433

JSON attributes

(for each item in items)

isbn

Required

ISBN of the book you are reporting numbers for, mandatory

periodFrom

Required

Start of the reporting period on the format yyyy-MM

periodTo

Required

End of the reporting period on the format yyyy-MM

productOwnerId

Required

Numeric ID of the publisher who owned the rights to the book during the reporting period

productOwnerName

Optional

Name of the publisher who owned the rights to the book during the reporting period

cost.totalCost

Required

The total cost that will be billed for this ISBN

cost.paidCost

Optional

Can be sent in addition to cost.totalCost if you separate between trial and subscription

cost.trialCost

consumption.total

Required

The total amount of books read

consumption.paid

Optional

Can be sent in addition to consumption.total if you separate between trial and subscription

consumption.trial

price.ppu

Optional

The price per book read (price per unit)

price.paidPpu

Optional

Can be sent in addition to price.ppu if you separate between trial and subscription

price.trialPpu

currency

Optional

The currency of the cost/ppu-fields

market

Optional

The market you are reporting for

Response headers

 

 

Response body

Empty on success

Returns

204

No success

40x

On errors

 

413 new

If payload is too big (6MB limit)

 

Example (curl)

curl -v -X POST \ -H "Authorization: Boknett TGT-232156-LFKUYpgAsxobxOMCAXnBXd7YxdmCRhWx91BYrgTHbcrfuflWRV-login.boknett.no" \ -H "Date: Thu, 12 Aug 2021 09:09:00 GMT" \ -H "Content-Type: application/json" \ --data-binary "@sales_data.json" \ https://api.dds.boknett.no/usage/streaming

 

Example content of sales_data.json

{ items: [ { "isbn": "9782123456789", "period": "2021-05", "productOwnerId": "9999", "productOwnerName": "Example name", "cost": { "totalCost": "600", "paidCost": "450", "trialCost": "150" }, "consumption": { "total": "30", "paid": "15", "trial": "15" }, "price": { "ppu": "20", "paidPpu": "30", "trialPpu": "10" }, "currency": "NOK", "market": "NO" } ], ... }