Skip to main content
Skip table of contents

Vente d'une publication

Cette API permet de déclarer la vente d'une publication. La vente est requise afin de permettre l'accès à la publication (téléchargement, lecteur en ligne).

Seule la réponse 201 (created) confirme que la vente a bien été créée, et qu'il est possible de passer à l'étape suivante du processus d'achat.

Déclaration

Adresse :  /api/organisations/[:organisation_id]/publications/[:publication]/sales

Méthode : POST

Sécurité : Bearer Token (jeton d'authentification) ou HTTP Basic (nom d'utilisateur et mot de passe)

Paramètres

ParamètreObligatoireDescription
:organisation_idObligatoireNuméro d'organisation. Fourni lors de l'inscription.
:publicationObligatoireIdentifiant (ISBN, EAN) de la publication.
customer_idObligatoireNuméro unique du client. Caractères alphanumériques seulement («-» et «_» aussi acceptés).
transaction_idObligatoireNuméro unique de la transaction / du panier d'achat. Plusieurs ventes avec le même numéro de transaction sont possibles, tant qu'il s'agit du même panier d'achat. Caractères alphanumériques seulement («-» et «_» aussi acceptés).
formatObligatoireFormat de la publication vendue (pdf/epub/mobi/audio/proof).
protectionObligatoire

Type de protection de la publication vendue (open/watermark/acs4/acs4_timelimited/drm/drm_timelimited). Optionnel si la vente est pour le prêt numérique en bibliothèque.

countryObligatoirePays qui sera considéré pour valider le prix de la publication. Valeur par défaut: le pays de l'organisation. Format ISO 3166-1 Alpha-3 (can, fra, ita)  ou Alpha-2 (CA, FR, IT) .
costObligatoirePrix de vente en centime (Ex. 19,99 $ => 1999).
currencyObligatoireLa devise qui sera utilisée pour la validation du prix de la publication. Codes à 3 lettres ISO-4217.
cost_without_taxesOptionnelPrix hors taxes, dans le pays du client, en centimes (ex. : 19,99$ => 1999)
price_typeOptionnelLe type de prix ONIX qui sera utilisé pour la validation du prix de la publication. Valeurs acceptées de la liste 58 : 01, 02, 03, 04, 41 et 42.
drm_typeOptionnelType de verrou de la publication vendue: acs (verrou Adobe - fichier PDF ou EPUB) ou lcp (verrou LCP - fichier EPUB, PDF ou audio). Obligatoire si protection=drm.
sale_stateOptionnelStatut de la vente. Valeur possible: active, test, customer_service. Par défaut : active.
unameOptionnelRequis pour l'application du filigrane (si protection=watermark). Prénom et nom de l'utilisateur. La valeur de ce paramètre apparaîtra dans le texte du filigrane qui sera apposé sur le fichier.
outputOptionnel

Format de la réponse à l'appel API. Valeur possible : json. Par défaut: texte.

Utiliser output=json pour obtenir les éléments status_document_url et access_token qui permettent d'accéder à la publication (téléchargement, lecteur en ligne) en passant par un Licence Status Document.

quantityOptionnel

Pour les ventes pour prêt numérique en bibliothèque. Nombre d'unités (exemplaires) commandés. Nombre entier positif. Par défaut: 1.

passphraseOptionnel

Pour la DRM LCP. La phrase secrète est le mot de passe qui permettra à l'utilisateur d'ouvrir le contenu dans une application de lecture compatible. Ce même mot de passe doit être fourni par le libraire à l'utilisateur final. La valeur fournie dans ce paramètre, une représentation du mot de passe, doit subir les transformations suivantes, et ce, dans cet ordre:

  • mot de passe encodé en SHA256;
  • valeur précédente encodée en base64;
  • valeur précédente encodée pour URL.
passphrase_hintOptionnel

Pour la DRM LCP. Indice qui sera affiché à l'utilisateur comme aide-mémoire pour retrouver son mot de passe. La valeur du paramètre doit être encodée pour URL. 

help_urlOptionnel

Pour la DRM LCP. URL d'une page d'aide spécifique à l'ouverture de contenus protégés par LCP, fournie par le libraire. L'utilisateur sera dirigé au besoin vers cette page. La valeur du paramètre doit être encodée pour URL. (255 caractères maximum)

aggregatorOptionnelLorsqu'un revendeur parent vend une publication pour un de ses revendeurs enfants, ce champ représente l'id du parent, ou agrégateur.
loanOptionnel

Pour faire la vente d'une publication dans un contexte de prêt numérique en bibliothèque. Si l'identifiant de la publication correspond à un produit bibliothèques, ce paramètre n'est pas nécessaire.

credit_card_prefixOptionnel4 premiers numéros de la carte de crédit utilisée par le client. Ceci permet à l'éditeur de valider si le territoire de vente (déterminé par ces 4 premiers caractères) est respecté.


Réponses

Code HTTPValeurDescription
201createdLa vente a été créée avec succès.
400cannot_sellL'organisation ne peut pas vendre cette publication.

duplicateLa vente existe déjà.

missing_formatLe format était absent de la requête.

invalid_formatLe format fourni n'est pas disponible pour cette publication.

invalid_sale_parametersLa valeur d'un des paramètres cost, country, currency ou price_type est invalide.

missing_costLe prix était absent de la requête.

missing_customer_idLe numéro unique du client était absent de la requête.

missing_transaction_idLe numéro unique de la transaction était absent de la requête.

missing_protectionLe type de protection était absent de la requête.

invalid_protectionCette protection n'est pas disponible dans ce format.

invalid_sale_stateL'état de vente n'est pas valide

invalid_countryLe code de pays est invalide.

invalid_price_typeLe type de prix est invalide.

invalid_drm_typeLe type de verrou est invalide.

unauthorized_drm_type_for_retailerLes paramètres du libraire ne l’autorisent pas à livrer des fichiers protégés avec ce type de verrou.

unauthorized_drm_type_by_publisherLes paramètres de l’éditeur n’autorisent pas ce type de verrou.

invalid_passphraseLe mot de passe est invalide.

invalid_passphrase_urlL’URL pour la page d’aide est trop longue.

invalid_quantityLa quantité fournie n'est pas valide.
401access_deniedAccès refusé à la ressource.
404not_foundL'organisation ou l'ISBN n'ont pu être trouvés.
503service_unavailableLe serveur n'est pas disponible.

Notes

  1. Les ventes déclarées via cette API sont facturées. Cependant, afin d'effectuer une vente de test (par exemple, lors du développement de la connexion à cette API), le paramètre sale_state=test peut être ajouté; la vente ne sera ainsi pas comptabilisée.

  2. Dans le cas d'une erreur de type 400, le détail de l'erreur est fourni dans un tableau.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.