Précision sur les données personnalisées pouvant être ajoutées aux paiements

Notre objet paiement dispose d'une variable custom_data permettant de spécifier un ensemble de valeurs libres en format JSON.

Cas d'usages

Vos données

Cela vous permet de faire transiter des informations provenant de vos systèmes pour relier les paiements Alma à vos propres objets.

Par exemple, Alma utilise custom_data dans ses modules d'intégration e-commerce pour conserver l'ID de base de données du panier ou de la commande pour lequel le paiement Alma a été créé, ce qui aide à la validation finale du paiement lors du retour client ou du callback IPN.

Ces données peuvent aussi être remontées dans vos exports comptables, vous pouvez donc également y intégrer des données opérationnelles telles que des ID magasin, ID vendeur, ou toute autre information qui pourra faciliter la réconciliation des transactions.

Données produits

Notre API accepte un objet cart dans les données de création du paiement, avec les informations suivantes :

FieldNameData typeRequiredComment
itemsarray of objectrequired
items.skustringoptionalproduct SKU
items.vendorstringoptionalproduct vendor/brand
items.titlestringrequiredproduct name
items.variant_titlestringoptionalproduct variant name
items.quantityintegerrequiredproduct quantity
items.unit_priceintegeroptionalproduct price in cents
items.line_priceintegerrequiredunit x quantity price in cents
items.is_giftbooleanoptionalis product being offered
items.categoriesarray of stringsoptionalproduct categories
items.urlstringoptionalproduct page URL
items.picture_urlstringoptionalproduct picture URL
items.requires_shippingbooleanoptionalwhether product is physical
items.taxes_includedbooleanoptionalwhether price is taxes included
discountsarray of objectoptionaldiscounts applied to the purchase
discounts.namestringoptionalmarketing campaign name
discounts.amountintegerrequireddiscounted amount in cents
{
  “payment”: {
    ...
    “cart”: {
      “items”: [
        {
          “sku”: “product SKU - optional”,
          “vendor”: “product vendor/brand - optional”,
          “title”: “product name - required”,
          “variant_title”: “product variant name - optional”,
          “quantity”: <product quantity (int) - required>,
          “unit_price”: <product price in cents (int) - optional>,
          “line_price”: <unit * quantity price in cents (int) - required>,
          “is_gift”: <is product being offered (boolean) - optional>,
          “categories”: [“product”, “categories”, “optional”],
          “url”: “product page URL - optional”,
          “picture_url”: “product picture URL - required”,
          “requires_shipping”: <whether product is physical (boolean) - optional>,
          “taxes_included”: <whether price is taxes included - optional>
        },
        ...
      ],
      “discounts”: [  // optional - discounts applied to the purchase
        {
           “name”: “marketing campaign name - optional”,
           “amount”: <discounted amount in cents (int) - required>
         },
         ...
       ]
      },
    ...
  }
}

Données spécifiques à l'industrie Tourisme & Loisirs

Si vous êtes en mesure de les fournir, notre algorithme de scoring utilise plusieurs données spécifiques à l'industrie Tourisme & Loisirs permettant de mieux scorer vos clients.

Spécifications

Nous vous invitons à les renseigner dans un sous-objet scoring de cette façon:

Field NameSub field nameData TypeFormatExempleCommentPresenceApply to travel (flight, cruise)Apply to hospitalityApply to others (ticketing, ...)
departure_datedateISO 86012023-02-27date of departure or beginning of the event/activitymandatoryYesYesYes
return_datedateISO 86012023-02-27date of return or end of the event/activityoptionalYesYesYes
destination_namestring60 characters maxcity at arrivaloptionalYesYesYes
destination_countrystringISO 3166-1 alpha-2FRcountry of arrivalmandatoryYesYesYes
refund_policystring60 characters max"exchangeable", "refundable", "both", "none"refund or exchange policy of the servicemandatoryYesYesYes
passengersadult_countint2number of adults on the bookingmandatoryYesYesYes
children_countintno specified age thresholdnumber of children on the bookingmandatoryYesYesYes
infant_countintno specified age thresholdnumber of infant on the bookingmandatoryYesYesYes
hostingroom_typestring"single", "double", "suite"...type of roomoptionalYes
nightsint7number of nightsoptionalYes
categoryint1 to 5hostel categorydesiredYes
flightmain_departure_companystring3 characters maximum"AF" for Air Francecompany name for the first flightmandatoryYes
departure_airportstringIATA code on 3 characterscode of the departure airportdesiredYes
arrival_airportstringIATA code on 3 characterscode of the arrival airportdesiredYes
has_transfersboolean"true" or "false"true if there are at least one stopover.
false for direct flights
optionalYes
round_tripboolean"true" or "false"optionalYes
travel_classstring"economy", "business" or "first"desiredYes
insurancenamestring150 characters maximum"Sans Assurance" if no insurancetype of the insurancemandatoryYesYesYes
priceintamount in cents.58.12 => 5812price of the insurancedesiredYesYesYes
activitystring"concert", "rafting", ...type of activity or servicemandatoryYes
loyalty_programhas_loyaltyboolean"true" or "false"true if the consumer benefits from any kind of loyalty program (excluding welcome offers)mandatoryYesYesYes
namestring60 characters maxName of the loyalty programdesiredYesYesYes
  • Par mandatory nous souhaitons disposer de cette information utilisée pour augmenter votre taux de conversion en affinant la gestion du risque.
  • Par desired nous souhaiterions disposer de cette information qui nous semble pertinente dans la gestion du risque.
  • Par optional nous pensons que ces données pourraient potentiellement être intéressantes.

Exemple

{
 "payment": {
  // ...
   "custom_data": {
      "scoring": {
         "departure_date": "2021-12-19",     // ISO 8601
         "return_date": "2021-12-22",        // ISO 8601
         "destination_name": "Lisbonne",     // string 
         "destination_country": "PT",        // ISO Alpha-2
         "refund_policy": "refundable",      // string
         "passengers": {
           "adult_count": 2,                 // int
           "children_count": 0,              // int
           "infant_count": 0                 // int
         },
         "hosting": {
           "room_type": "double",            // string
           "nights": 7,                      // int
           "category": 4                     // int
         },
         "flight": {
           "main_departure_company": "AF",   // string max 3 characters
           "departure_airport": "CDG",       // IATA code on 3 characters
           "arrival_airport": "LIS",         // IATA code on 3 characters
           "has_transfers": "false",         // Boolean "true" or "false"
           "round_trip": "true",             // Boolean "true" or "false"
           "travel_class": "economy"         // Should be the best class among the possible values
         },
         "insurance": {
           "name": "Assurance Multirisques", // string  max 150 characters
           "price": 5812                     // int in cents
         },
         "activity": "concert",              // string 
         "loyalty_program": {
           "has_loyalty": "true",            // Boolean "true" or "false"
           "name": "vip"                     // string
         }
      }
   },
  // ...
 }
}