Mise à jour d'une commande réglée en plusieurs fois
Il est possible de modifier les transactions après le paiement et tant que les transactions en question sont en attente (i.e à l'état PENDING).
- le montant de la transaction (attribut amount) ;
- la date de capture de la transaction (attribut expected_capture_date).
- Tout comme avec une commande mono-transactionnelle, il n'est pas possible d'accroître le montant d'une transaction au-delà de son montant initial, tel qu'enregistré dans l'attribut en lecture seule initial_amount.
- Les items doivent être obligatoirement transmis dans la requête PUT (?expand=items).
- Il est possible de supprimer une (ou plusieurs) transaction(s) (cf. ci-dessous), mais il n'est actuellement pas possible d'en ajouter.
Procédure :
- Il faut ajouter la liste complète des transactions de la commande dans le
corps de la requête PUT ORDER dans une liste de transactions,
comprenant chacune les attributs trans_uuid,
expected_capture_date et amount
éventuellement modifiés.
Par exemple :
{ "marketplace": "2434c0a2-9d46-4e96-9553-1536c898625b", "reference": "MyMultitransactionOrder01", "description": "Mise à jour de la commande.", "currency": "EUR", "url_return": "https://www.my-website.com/", "language": "en", "items": [ { "seller": "4d20a9d4-0526-4474-b452-e936dc25418d", "reference": "0000001", "description": "TV Ecran plat", "amount": 390000, "quantity": 1, "is_commission": false }, { "seller": "72ccc2ff-b455-4653-847e-deb6fee99f8d", "reference": "0000002", "description": "Commission", "amount": 14755, "quantity": 1, "is_commission": true } ], "transactions": [ { "trans_uuid": "c383739d12a6489badc3bb6847db84cc", "payment_scheme": "CB", "amount": 14755, "expected_capture_date": "201909185743" }, { "trans_uuid": "d0c4d34249d540af87ff8df3a2fa314a", "payment_scheme": "CB", "amount": 190000, "expected_capture_date": "201905175352" }, { "trans_uuid": "8c5a6788b3334d368185b0a567dd7bcd", "payment_scheme": "CB", "amount": 200000, "expected_capture_date": "201904205352" } ], "buyer": { … } }
- Il est impératif d'ajouter transactions dans l'attribut url
expand.
Vous devez donc envoyer une ressource PUT ORDER sur :
https://secure.lyra.com/marketplace/orders/{order_uuid}?expand=items,transactions
Si la valeur transactions n'est pas indiquée, aucune modification de transaction ne pourra être prise en compte.
Lors de la mise à jour, l'application vérifie la cohérence des montants entre les items et les transactions. En toute logique, le total des montants de l'item doit être identique au montant total des transactions. Et par conséquent, une réduction des montants sur les items doit s'accompagner d'une réduction des montants sur les transactions.
Cas particulier d'une suppression de transactions
Il se peut que la réduction des montants sur la partie items soit supérieure au montant d'une des transactions. Si, au lieu de répartir la réduction sur l'ensemble des transactions, vous choisissez de supprimer une transaction, il suffit de l'omettre dans la liste des transactions envoyées en requête de modification. Elle est alors interprétée comme annulée, et son statut passe à CANCELLED.
Autres remarques
- L'application renvoie une erreur si la mise à jour ne comporte aucune modification (ni des transactions, ni des items, ni des valeurs de la commande).
- La nouvelle valeur de expected_capture_date ne doit pas être antérieure à la date et heure de modification.