Afin de s’authentifier auprès de l’API Payment de OYST, il est nécessaire de passer dans le header de la requête la clé API du marchand concerné (voir exemple décrit dans la suite de ce document).
Le format de données à transmettre lors de l'appel à la méthode POST/payments de l'API Payment est le suivant :

URL environnement de sandbox: https://api.sandbox.oyst.eu/payment/payments
URL environnement de production: https://api.oyst.com/payment/payments

NomTypeRequisDescription
amountJson ObjectouiL’objet amount contient les champs «value» et «currency»
value IntegerouiMontant en centimes
currencyStringoui"EUR"
is_3dBooleanoui
order_idStringnonLe champ label correspond au descripteur dynamique qui apparaît sur le relevé de compte de l'acheteur. Si ce
champ n’est pas renseigné, les paramètres par défaut du marchand seront appliqués.
labelStringnonLe champ is_3d correspond à l'activation ou non du 3DS par le marchand.
notification_urlString (uri)ouiRéférence marchand de la commande.
redirectsJson ObjectouiL’objet redirects contient les champs «cancel_url», «error_url» et «return_url»
cancel_urlString (uri)ouiUrl où sera redirigé le client en cas d’annulation du paiement.
error_urlString (uri)nonUrl où sera redirigé le client en cas d’erreur lors du paiement
return_urlString (uri)ouiUrl où sera redirigé le client après avoir effectué un paiement avec succès
userJson ObjectouiDonnées de l’utilisateur
additional_dataObjectnonDonnées complémentaires de l’utilisateur
addressesArray(items(address))nonAdresse de livraison
billing_addressesArray(items(address))nonAdresse de facturation
emailString(email)ouiEmail
first_nameStringnonPrénom
languageString(lenght(2))nonPays, norme ISO 3166-1
last_nameStringnonNom de famille
phoneStringnonTéléphone

Le champ «addresses» est un tableau pouvant contenir plusieurs items «address» qui sont eux même des objets Json reprenant l’ensemble des données rattachées à l’adresse d’un user. L’objet Json address est décrit dans le tableau ci-dessous :

NomTypeRequisDescription
adressJson ObjectL’objet json address contient l’ensemble des champs suivants
cityStringouiVille
company_nameStringnonNom de la société
complementaryStringnonDonnées complémentaires
countryStringouiPays
first_nameStringouiPrénom
labelStringouiLe nom de l’adresse donné par l’utilisateur. Par défaut la valeur est «maison»
last_nameStringouiNom
postcodeStringouiCode postal
regionStringnonRégion
streetStringouiRue
POST /payments
headers: {Authorization: 'Bearer MerchantApiKey'}

body : format json
{
	"amount":{
		"value":10000,
		"currency":"EUR"
	},
	"is_3d":false,
  "order_id":"wc_freepay_12243",
	"label":"ThisWillAppearOnTheShoppersBankStatement",
	"notification_url":"http://merchantdomain.fr/notify",
	"redirects":{
		"cancel_url":"https://merchantdomain.fr/cancel",
		"error_url":"https://merchantdomain.fr/error",
		"return_url":"https://merchantdomain.fr/return"
	},
	"user":{
		"additional_data":{
			"data":"data"
		},
		"addresses":[{
			"city":"Paris",
			"company_name":"Work",
			"complementary":"additional",
			"country":"france",
			"first_name":"Jean",
			"label":"maison",
			"last_name":"dupond",
			"postcode":"75000",
			"region" : "ile-de-france",
			"street":"1 rue des coquelicots"
		}],
		"billing_addresses":[{
			"city":"Paris",
			"company_name":"Work",
			"complementary":"additional",
			"country":"france",
			"first_name":"Jean",
			"label":"maison",
			"last_name":"dupond",
			"postcode":"75000",
			"region" : "ile-de-france",
			"street":"1 rue des coquelicots"
		}],
		"email":"[email protected]",
		"first_name":"shopperFirstName",
		"language":"FR",
		"last_name":"shopperLastName",
		"phone":"+33611111111"
	}
}
{
	"live":false,
	"notification":{
		"amount":{
			"currency":"EUR",
			"value":4200
		},
		"event_code":"AUTHORISATION",
		"event_date":"2017-05-29T10:10:30+02:00",
		"order_id":null,
		"payment_id":"1d871140-4446-11e7-81a6-77846633af96",
		"success":true,
		"is_3d":false,
		"additional_data":{
			"auth_code":"56789",
			"card_summary":"1234,
			"expiry_date":"04/2022"
		},
		"operations":[
			"CANCEL",
			"CAPTURE",
			"REFUND"
		]
	}
}