---
updatedAt: 2025-11-13T14:35:16.000Z
agentTools:
  siteIndex: https://docs.affirm.com/llms.txt
  projectIndex: https://docs.affirm.com/developers/v1.0-Global-Integration/llms.txt
---

# Autoriser et capturer les transactions

Apprendre le flux d'autorisation et de capture.

## Autoriser la transaction

Le point de terminaison de la ressource [Autoriser](https://docs.affirm.com/developers/v1.0-Global-Integration/reference/authorize_transaction) crée un prêt et réserve les fonds. Lorsque vous autorisez, Affirm génère un `ID` unique que vous utiliserez pour faire référence à la transaction. Vous devez autoriser une transaction pour la créer entièrement.

<Image title="Screen Shot Authorization_& Capture flow_Isoflow_Diagram_7_8_2021.png" alt="Cela représente le flux d'autorisation et de capture." align="center" src="https://files.readme.io/fb07311-Authorization__Capture_flow_Isoflow_Diagram_7_8_2021.png">
  Cela représente le flux d'autorisation et de capture.
</Image>

> ❗️
>
> *Si vous n'autorisez pas une transaction, elle ne sera pas considérée comme active. Cela signifie que l'utilisateur ne verra pas le prêt et que vous ne pourrez pas récupérer les fonds. Pour cette raison, vous devez autoriser le prêt dès que vous recevez un`checkout_token`.*

Pour autoriser une transaction, vous aurez besoin du paramètre `checkout_token` renvoyé par votre [intégration client](https://docs.affirm.com/developers/docs/transactions-web) pour le transmettre au paramètre `transaction_id`.

```curl
curl https://api.global.sandbox.affirm.com/api/v1/transactions
     -X POST
     -u "{public_api_key}:{private_api_key}"
     -H "Content-Type: application/json"
     -H "country-code: CAN"
     -d '{"transaction_id": "{checkout_token}","order_id": "{order_id}"}'
```
```php
$endpoint = "https://sandbox.affirm.com/api/v1/transactions";
$data = '{"transaction_id": "' . $_POST["transactions_id"] . '"}';
try {
 $response = callAffirm($endpoint, $data);
 // Handle the response
} catch (Exception $e) {
 // Handle the exception
}
```
```c#
using(var httpClient = new HttpClient()) {
	using(var request = new HttpRequestMessage(new HttpMethod("POST"), "https://sandbox.affirm.com/api/v1/transactions")) {
		var base64authorization = Convert.ToBase64String(Encoding.ASCII.GetBytes("<public_api_key>:<private_api_key>"));
		request.Headers.TryAddWithoutValidation("Authorization", $ "Basic {base64authorization}");
		request.Content = new StringContent("{\"transaction_id\":\"<checkout_token>\"}");
		request.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");
		var response = await httpClient.SendAsync(request);
		HttpContent responseContent = response.Content;
		using(var reader = new StreamReader(await responseContent.ReadAsStreamAsync())) {
			Console.WriteLine(await reader.ReadToEndAsync());
		}
		Console.ReadKey();
	}
}
```

Vous devriez recevoir une réponse qui ressemble à ceci avec l'`ID`.

```json
{
    "status": "authorized",
    "amount_refunded": 0,
    "provider_id": 1,
    "created": "2021-06-23T23:25:55Z",
    "order_id": "ABC123",
    "checkout_id": "7WYDR0M83CGE47GJ",
    "currency": "CAN",
    "amount": 49999,
    "events": [
        {
            "currency": "CAN",
            "amount": 49999,
            "type": "auth",
            "id": "7M8T1AMJP01FLI6B",
            "created": "2021-06-23T23:26:28Z"
        }
    ],
    "remove_tax": false,
    "authorization_expiration": "2021-07-23T23:26:28Z",
    "id": "AMLC-5X0W"
}
```

Une fois que vous avez autorisé des frais et reçu l'objet de réponse, votre site doit effectuer les opérations suivantes :

* Valider que le montant autorisé est égal au total de la commande
* Enregistrez `charge_id`
* Marquez le paiement de la commande comme étant en attente

Si l'autorisation échoue, votre site peut potentiellement enregistrer cette tentative de paiement, car elle n'est **pas** requise de notre côté.

> 📘
>
> Vous ne devez autoriser un prêt Affirm donné qu'une seule fois, pour le montant total de la\
> transaction en cours d'achat. Si vous avez un cas d'utilisation spécifique pour lequel cela peut s'avérer difficile\
> , veuillez nous contacter à l'adresse <merchanthelp@affirm.com> ou utiliser le widget en bas de page.

# Sibling pages

* [Actions](https://docs.affirm.com/developers/v1.0-Global-Integration/docs/actions-fr-ca.md)