Paramètres

La donnée attendue consiste en un objet Payment sauf que seul l'attribut purchase_amount est requis, le reste des attributs est optionnel.

curl -X POST https://api.getalma.eu/v1/payments/eligibility \
-H "Authorization: Alma-Auth sk_live_<API key>" \
-H "Content-Type: application/json" \
-d '{ "payment": { "purchase_amount": 20000 } }'

Éligibilité pour plusieurs échéanciers

Il est possible de demander l'éligibilité de plusieurs échéanciers en même temps.
Pour cela, il vous suffit de passer la liste des nombres d'échéances dont vous souhaitez vérifier l'éligibilité dans le paramètre installments_count :

curl -X POST https://api.getalma.eu/v1/payments/eligibility \
-H "Authorization: Alma-Auth sk_live_<API key>" \
-H "Content-Type: application/json" \
-d '{ "payment": { "purchase_amount": 20000, "installments_count": [3, 4] } }'

Réponse

Si jamais le compte marchand rattaché à la clef d'API utilisée n'est pas encore activé, cet appel renverra une erreur 400.
Sinon, le code HTTP renvoyé est 200 et la réponse dépend du résultat d'éligibilité.

Achat éligible

Si l'achat est éligible au paiement en plusieurs fois, la réponse contient l'échéancier qui serait appliqué au client (dates d'échéances, montants et frais appliqués au client) :

ChampTypeDescription
eligiblebooleantrue
deferred_daysintegerNombre de jours de décalage pour du paiement différé.
deferred_monthsintegerNombre de mois de décalage pour du paiement différé.
installments_countinteger Nombre d'échéances dans l'échéancier (3 par défaut).
customer_total_cost_amountintegerMontant total des frais et intérêts payés par le client en centimes. Les intérêts sont calculés à partir d'un échéancier commençant à la date de l'appel à eligibility.
customer_total_cost_bpsintegerPourcentage en bps de la part de frais et intérêts payés par le client. Les intérêts sont calculés à partir d'un échéancier commençant à la date de l'appel à eligibility.

Dans le cas du p3x et p4x cela correspond le plus souvent au customer_fee_variable.

Pour du crédit (plus de 4 fois) cette valeur change en fonction du calcul des intérêts et donc de la date de début de l'échéancier. Elle a alors une valeur pédagogique mais n'est pas contractuelle. Il n'est donc pas recommandé de l'afficher dans le parcours de paiement.
payment_planArray of ObjectsListe des échéances pour cet achat :
payment_plan.purchase_amountinteger Montant de la part de capital remboursé par l'échéance, en centimes.
payment_plan.customer_feeintegerÉventuels frais de paiement appliqués au client sur cette échéance, en centimes.
payment_plan.customer_interestintegerÉventuels intérêts appliqués au client sur cette échéance, en centimes. Les intérêts sont calculés à partir d'un échéancier commençant à la date de l'appel à eligibility.
payment_plan.due_datetimestampDate à laquelle le paiement de cette échéance est dû.
payment_plan.total_amountintegerMontant de l'échéance total en centimes. Cela inclus le capital remboursé, les frais et les intérêts de l'échéance.

Exemple de réponse pour un achat éligible :

[
  {
    "customer_total_cost_amount": 310, 
    "customer_total_cost_bps": 155, 
    "deferred_days": 0, 
    "deferred_months": 0, 
    "eligible": true, 
    "installments_count": 3, 
    "payment_plan": [
      {
        "customer_fee": 310, 
        "customer_interest": 0, 
        "due_date": 1636386621, 
        "purchase_amount": 6668, 
        "total_amount": 6978
      }, 
      {
        "customer_fee": 0, 
        "customer_interest": 0, 
        "due_date": 1638978621, 
        "purchase_amount": 6666, 
        "total_amount": 6666
      }, 
      {
        "customer_fee": 0, 
        "customer_interest": 0, 
        "due_date": 1641657021, 
        "purchase_amount": 6666, 
        "total_amount": 6666
      }
    ]
  }, 
  {
    "customer_total_cost_amount": 360, 
    "customer_total_cost_bps": 180, 
    "deferred_days": 0, 
    "deferred_months": 0, 
    "eligible": true, 
    "installments_count": 4, 
    "payment_plan": [
      {
        "customer_fee": 360, 
        "customer_interest": 0, 
        "due_date": 1636386621, 
        "purchase_amount": 5000, 
        "total_amount": 5360
      }, 
      {
        "customer_fee": 0, 
        "customer_interest": 0, 
        "due_date": 1638978621, 
        "purchase_amount": 5000, 
        "total_amount": 5000
      }, 
      {
        "customer_fee": 0, 
        "customer_interest": 0, 
        "due_date": 1641657021, 
        "purchase_amount": 5000, 
        "total_amount": 5000
      }, 
      {
        "customer_fee": 0, 
        "customer_interest": 0, 
        "due_date": 1644335421, 
        "purchase_amount": 5000, 
        "total_amount": 5000
      }
    ]
  }
]

Si, dans la requête, installments_count a été passé comme un tableau (même avec un seul élément), alors la réponse est un tableau de ces objets, un par nombre d'échéances, dans le même ordre que la liste fournie en entrée.

Note: il est tout à fait possible que eligible soit true pour certains échéanciers et false pour d'autres. Il convient donc de toujours vérifier la réponse pour chaque échéancier afin de ne présenter à l'utilisateur que les échéanciers auxquels il est éligible.

Achat non éligible

Dans le cas où l'achat n'est pas éligible, la réponse contient :

  • L'attribut qui constitue la cause de l'éligibilité, et la raison
  • Un ensemble de "contraintes" qui peuvent expliquer pourquoi l'attribut n'a pas été accepté
ChampTypeDescription
eligibleboolean false
installments_countinteger Nombre d'échéances dans l'échéancier (3 par défaut).
deferred_daysintegerNombre de jours de décalage pour du paiement différé.
deferred_monthsintegerNombre de mois de décalage pour du paiement différé.
reasonsobject Attributs en cause de l'échec d'éligibilité
reasons.<attribut>stringRaison du rejet pour l'attribut nommé en clef
constraintsobjectContraintes que l'achat doit respecter :
constraints[purchase_amount]objectContraintes sur le montant d'achat
constraints[purchase_amount[minimum]]integerMontant minimum éligible, en centimes
constraints[purchase_amount[maximum]]integerMontant maximum éligible, en centimes

Exemple de réponse pour un achat non éligible :

{
    "constraints": {
        "purchase_amount": {
            "maximum": 1000000,
            "minimum": 100
        }
    },
    "deferred_days": 0,
    "deferred_months": 0,
    "eligible": false,
    "installments_count": 3,
    "reasons": {
        "purchase_amount": "invalid_value"
    }
}

Si, dans la requête, installments_count a été passé comme un tableau (même avec un seul élément), alors la réponse est un tableau de ces objets, un par nombre d'échéances, dans le même ordre que la liste fournie en entrée.

Language
Authorization
Header