> ## Documentation Index
> Fetch the complete documentation index at: https://apidoc.crowdchange.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Traiter une transaction

> Soumettez une transaction de don CrowdChange avec un jeton de paiement de votre processeur pour débiter le donateur et enregistrer le don à la campagne.

## Corps

<ParamField body="amount" type="number" required>
  Montant total de la transaction au format xxx.xx.
</ParamField>

<ParamField body="frequency" type="string" required>
  Fréquence de paiement. Valeurs permises : `once`, `month`, `year`
</ParamField>

<ParamField body="email" type="string">
  Courriel de l'utilisateur.
</ParamField>

<ParamField body="fundraiser_id" type="integer" required>
  ID de la campagne.
</ParamField>

<ParamField body="card" type="object" required>
  Informations de la carte.

  <Expandable title="propriétés">
    <ParamField body="type" type="string" required>
      Valeurs permises : `VI`, `VISA`, `MC`, `AMEX`, `DC`, `DISC`, `JCB`, `CUP`
    </ParamField>

    <ParamField body="token" type="string" required>
      Jeton de carte de crédit reçu du processeur de paiement.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="billing" type="object" required>
  Informations de facturation.

  <Expandable title="propriétés">
    <ParamField body="is_foundation" type="boolean">
      Indique si le paiement est effectué au nom d'une fondation.
    </ParamField>

    <ParamField body="title" type="string">
      Titre de civilité. Par exemple, M. / Mlle / Mme.
    </ParamField>

    <ParamField body="business_name" type="string">
      Nom de l'entreprise
    </ParamField>

    <ParamField body="first_name" type="string" required>
      Prénom.
    </ParamField>

    <ParamField body="last_name" type="string" required>
      Nom de famille.
    </ParamField>

    <ParamField body="address" type="string" required>
      Adresse municipale.
    </ParamField>

    <ParamField body="city" type="string" required>
      Ville.
    </ParamField>

    <ParamField body="state" type="string" required>
      État ou province, en deux lettres.
    </ParamField>

    <ParamField body="zip" type="string" required>
      Code postal.
    </ParamField>

    <ParamField body="country" type="string" required>
      Code de pays ISO 3166-1 alpha-2.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="custom_data" type="object">
  Données supplémentaires de la transaction.
</ParamField>

<ParamField body="tax_receipt" type="object">
  Informations pour un reçu fiscal émis au nom d'une autre personne.

  <Expandable title="propriétés">
    <ParamField body="title" type="string">
      Titre de civilité. Par exemple, M. / Mlle / Mme.
    </ParamField>

    <ParamField body="business_name" type="string">
      Nom de l'entreprise
    </ParamField>

    <ParamField body="first_name" type="string">
      Prénom.
    </ParamField>

    <ParamField body="last_name" type="string">
      Nom de famille.
    </ParamField>

    <ParamField body="email" type="string">
      Courriel.
    </ParamField>

    <ParamField body="address" type="string">
      Adresse municipale.
    </ParamField>

    <ParamField body="city" type="string">
      Ville.
    </ParamField>

    <ParamField body="state" type="string">
      État ou province, en deux lettres.
    </ParamField>

    <ParamField body="zip" type="string">
      Code postal.
    </ParamField>

    <ParamField body="country" type="string">
      Code de pays ISO 3166-1 alpha-2.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="tribute" type="object">
  Informations pour un reçu fiscal émis au nom d'une autre personne.

  <Expandable title="propriétés">
    <ParamField body="fundraiser_tribute_id" type="integer">
      ID de l'hommage.
    </ParamField>

    <ParamField body="type" type="string">
      Type d'hommage. Valeurs permises : `in_honor`, `in_memory`, `donation`
    </ParamField>

    <ParamField body="honoree" type="string">
      Personne honorée.
    </ParamField>

    <ParamField body="message" type="string">
      Message.
    </ParamField>

    <ParamField body="method" type="string">
      Méthode de livraison. Valeurs permises : `mail`, `email`, `sms`
    </ParamField>

    <ParamField body="address" type="object">
      Adresse.

      <Expandable title="propriétés">
        <ParamField body="address" type="string">
          Adresse municipale.
        </ParamField>

        <ParamField body="city" type="string">
          Ville.
        </ParamField>

        <ParamField body="state" type="string">
          État ou province, en deux lettres.
        </ParamField>

        <ParamField body="zip" type="string">
          Code postal.
        </ParamField>

        <ParamField body="country" type="string">
          Code de pays ISO 3166-1 alpha-2.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField body="email" type="string">
      Courriel.
    </ParamField>

    <ParamField body="phone" type="string">
      Numéro de téléphone.
    </ParamField>

    <ParamField body="name" type="string">
      Nom.
    </ParamField>

    <ParamField body="donor_copy" type="boolean">
      Envoyer une copie au donateur.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="extra" type="object">
  Informations supplémentaires.

  <Expandable title="propriétés">
    <ParamField body="mail_receipt" type="boolean">
      Envoyer le reçu par la poste
    </ParamField>

    <ParamField body="donation_setting_item_id" type="integer">
      ID de l'énoncé d'impact.
    </ParamField>

    <ParamField body="installments" type="object">
      Paiement à versements fixes. Lorsqu'activée, cette option répartit le don total en versements mensuels égaux. Nécessite que `frequency` soit `once`, que la campagne ait les paiements à versements activés, et un processeur de paiement compatible avec les paiements récurrents (Stripe ou Paysafe). Le premier versement est débité immédiatement; les suivants sont débités le `day` choisi de chaque mois subséquent. Le champ `amount` de la requête est ignoré et remplacé côté serveur par `total_amount / duration`.

      <Expandable title="propriétés">
        <ParamField body="total_amount" type="number">
          Montant total du don à répartir sur l'ensemble des versements, au format `xxx.xx`. Chaque versement est de `total_amount / duration` (arrondi à 2 décimales).
        </ParamField>

        <ParamField body="duration" type="integer">
          Nombre de versements mensuels. Doit correspondre à l'une des durées configurées sur la campagne (par défaut `3`, `6` ou `12`).
        </ParamField>

        <ParamField body="day" type="integer">
          Jour du mois où chaque versement est débité après le premier paiement. Doit correspondre à l'un des jours configurés sur la campagne (par défaut `1` ou `15`).
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="mail" type="object">
  Informations postales.

  <Expandable title="propriétés">
    <ParamField body="same_as_billing" type="boolean">
      L'adresse est la même que l'adresse de facturation
    </ParamField>

    <ParamField body="address" type="string">
      Adresse municipale.
    </ParamField>

    <ParamField body="city" type="string">
      Ville.
    </ParamField>

    <ParamField body="state" type="string">
      État ou province, en deux lettres.
    </ParamField>

    <ParamField body="zip" type="string">
      Code postal.
    </ParamField>

    <ParamField body="country" type="string">
      Code de pays ISO 3166-1 alpha-2.
    </ParamField>
  </Expandable>
</ParamField>

## Réponse

<ResponseField name="id" type="integer">
  ID de la transaction.
</ResponseField>

<ResponseField name="ref_id" type="string">
  ID de référence ou de confirmation du processeur de paiement.
</ResponseField>

<ResponseField name="amount" type="number">
  Montant total de la transaction.
</ResponseField>

<ResponseField name="currency" type="string">
  Code de devise.
</ResponseField>

<ResponseField name="currency_symbol" type="string">
  Symbole de devise.
</ResponseField>

<ResponseField name="frequency" type="string">
  Fréquence de paiement. Valeurs permises : `once`, `month`, `year`
</ResponseField>

<ResponseField name="fundraiser_id" type="integer">
  ID de la campagne.
</ResponseField>

<ResponseField name="parent_id" type="integer">
  ID de la transaction parente pour les paiements récurrents ou à versements, sinon `null`.
</ResponseField>

<ResponseField name="fundraiser_page_id" type="integer">
  ID de la page personnelle à laquelle la transaction est attribuée, le cas échéant.
</ResponseField>

<ResponseField name="fundraiser_team_id" type="integer">
  ID de l'équipe à laquelle la transaction est attribuée, le cas échéant.
</ResponseField>

<ResponseField name="organization_id" type="integer">
  ID de l'organisation.
</ResponseField>

<ResponseField name="fundraiser_name" type="string">
  Nom de la campagne.
</ResponseField>

<ResponseField name="organization_name" type="string">
  Nom de l'organisation.
</ResponseField>

<ResponseField name="organization_code" type="string">
  ID personnalisé de l'organisation.
</ResponseField>

<ResponseField name="user_id" type="integer">
  ID de l'utilisateur.
</ResponseField>

<ResponseField name="email" type="string">
  Courriel de contact du donateur.
</ResponseField>

<ResponseField name="mail" type="object">
  Adresse postale pour le reçu, retournée seulement lorsqu'un reçu postal a été demandé. Sinon `null`.

  <Expandable title="propriétés">
    <ResponseField name="address" type="string">
      Adresse municipale.
    </ResponseField>

    <ResponseField name="city" type="string">
      Ville.
    </ResponseField>

    <ResponseField name="state" type="string">
      État ou province.
    </ResponseField>

    <ResponseField name="zip" type="string">
      Code postal.
    </ResponseField>

    <ResponseField name="country" type="string">
      Code de pays.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="statement_descriptor" type="string">
  Descripteur qui apparaît sur le relevé de carte du donateur.
</ResponseField>

<ResponseField name="summary" type="object">
  Répartition du montant de la transaction par catégorie.

  <Expandable title="propriétés">
    <ResponseField name="amount_covered_fee" type="number">
      Frais de traitement assumés par le donateur.
    </ResponseField>

    <ResponseField name="amount_custom_fee" type="number">
      Frais personnalisés appliqués à la transaction.
    </ResponseField>

    <ResponseField name="amount_donation" type="number">
      Montant du don.
    </ResponseField>

    <ResponseField name="amount_apparel" type="number">
      Montant dépensé en vêtements.
    </ResponseField>

    <ResponseField name="amount_ticket" type="number">
      Montant dépensé en billets.
    </ResponseField>

    <ResponseField name="amount_registration" type="number">
      Montant dépensé en inscription.
    </ResponseField>

    <ResponseField name="amount_sponsor" type="number">
      Montant dépensé en commandites.
    </ResponseField>

    <ResponseField name="amount_cards" type="number">
      Montant dépensé en cartes électroniques.
    </ResponseField>

    <ResponseField name="frequency" type="string">
      Fréquence de paiement. Valeurs permises : `once`, `month`, `year`
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="upsell" type="object">
  Détails de la proposition de don récurrent, lorsqu'une telle proposition a été présentée. Sinon `null`.
</ResponseField>

<ResponseField name="promo_code" type="string">
  Code promotionnel appliqué à la transaction, le cas échéant.
</ResponseField>

<ResponseField name="billing_address" type="object">
  Détails de facturation de la transaction.

  <Expandable title="propriétés">
    <ResponseField name="name" type="string">
      Nom complet de facturation.
    </ResponseField>

    <ResponseField name="email" type="string">
      Courriel de facturation.
    </ResponseField>

    <ResponseField name="business_name" type="string">
      Nom de l'entreprise.
    </ResponseField>

    <ResponseField name="title" type="string">
      Titre de civilité.
    </ResponseField>

    <ResponseField name="first_name" type="string">
      Prénom.
    </ResponseField>

    <ResponseField name="last_name" type="string">
      Nom de famille.
    </ResponseField>

    <ResponseField name="address" type="string">
      Adresse municipale.
    </ResponseField>

    <ResponseField name="city" type="string">
      Ville.
    </ResponseField>

    <ResponseField name="state" type="string">
      État ou province.
    </ResponseField>

    <ResponseField name="zip" type="string">
      Code postal.
    </ResponseField>

    <ResponseField name="country" type="string">
      Code de pays.
    </ResponseField>

    <ResponseField name="phone" type="string">
      Numéro de téléphone.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="dtd" type="object">
  Détails de jumelage employeur Double the Donation, lorsque fournis. Sinon `null`.

  <Expandable title="propriétés">
    <ResponseField name="company_id" type="string">
      ID de l'entreprise Double the Donation.
    </ResponseField>

    <ResponseField name="entered_text" type="string">
      Nom de l'employeur saisi par le donateur.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="created_at" type="string">
  Date et heure de création de la transaction.
</ResponseField>

<ResponseField name="status" type="string">
  Statut de la transaction.
</ResponseField>

**Autres réponses**

| Statut | Description      |
| ------ | ---------------- |
| `400`  | Requête invalide |
| `403`  | Interdit         |

<ResponseExample>
  ```json theme={null}
  {
    "id": 123123,
    "ref_id": "SCXXxxXxxxxxXXXx",
    "amount": 49.95,
    "currency": "USD",
    "currency_symbol": "$",
    "frequency": "once",
    "fundraiser_id": 1,
    "parent_id": null,
    "fundraiser_page_id": null,
    "fundraiser_team_id": null,
    "organization_id": 1,
    "fundraiser_name": "Gala Night",
    "organization_name": "Crowdchange",
    "organization_code": "CrowdchangeID",
    "user_id": 120120,
    "email": "john@example.com",
    "mail": null,
    "statement_descriptor": "XXX*CC XXX",
    "summary": {
      "amount_covered_fee": 1.95,
      "amount_custom_fee": 0,
      "amount_donation": 48,
      "amount_apparel": 0,
      "amount_ticket": 0,
      "amount_registration": 0,
      "amount_sponsor": 0,
      "amount_cards": 0,
      "frequency": "once"
    },
    "upsell": null,
    "promo_code": null,
    "billing_address": {
      "name": "Mr. John Snow",
      "email": "john@example.com",
      "business_name": null,
      "title": "Mr.",
      "first_name": "John",
      "last_name": "Snow",
      "address": "123 Main St",
      "city": "Toronto",
      "state": "ON",
      "zip": "M5V2T6",
      "country": "CA",
      "phone": null
    },
    "dtd": null,
    "created_at": "2024-01-01 12:00:00",
    "status": "received"
  }
  ```
</ResponseExample>
