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
Nom | Type | Requis | Description |
---|---|---|---|
amount | Json Object | oui | L’objet amount contient les champs «value» et «currency» |
value | Integer | oui | Montant en centimes |
currency | String | oui | "EUR" |
is_3d | Boolean | oui | |
order_id | String | non | Le 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. |
label | String | non | Le champ is_3d correspond à l'activation ou non du 3DS par le marchand. |
notification_url | String (uri) | oui | Référence marchand de la commande. |
redirects | Json Object | oui | L’objet redirects contient les champs «cancel_url», «error_url» et «return_url» |
cancel_url | String (uri) | oui | Url où sera redirigé le client en cas d’annulation du paiement. |
error_url | String (uri) | non | Url où sera redirigé le client en cas d’erreur lors du paiement |
return_url | String (uri) | oui | Url où sera redirigé le client après avoir effectué un paiement avec succès |
user | Json Object | oui | Données de l’utilisateur |
additional_data | Object | non | Données complémentaires de l’utilisateur |
addresses | Array(items(address)) | non | Adresse de livraison |
billing_addresses | Array(items(address)) | non | Adresse de facturation |
String(email) | oui | ||
first_name | String | non | Prénom |
language | String(lenght(2)) | non | Pays, norme ISO 3166-1 |
last_name | String | non | Nom de famille |
phone | String | non | Té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 :
Nom | Type | Requis | Description |
---|---|---|---|
adress | Json Object | L’objet json address contient l’ensemble des champs suivants | |
city | String | oui | Ville |
company_name | String | non | Nom de la société |
complementary | String | non | Données complémentaires |
country | String | oui | Pays |
first_name | String | oui | Prénom |
label | String | oui | Le nom de l’adresse donné par l’utilisateur. Par défaut la valeur est «maison» |
last_name | String | oui | Nom |
postcode | String | oui | Code postal |
region | String | non | Région |
street | String | oui | Rue |
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"
]
}
}