# Transférer des fonds à l'aide d'objets ReceivedCredit

En savoir plus sur le transfert d'argent vers un compte financier à partir d'un autre compte financier ou d'un compte bancaire.

> #### Ancienne intégration
> 
> La version&nbsp;v1 de Treasury pour les plateformes est une ancienne intégration qui ne prend pas en charge de nombreuses fonctionnalités introduites dans [Treasury pour les plateformes&nbsp;v2](https://docs.stripe.com/treasury/connect.md). Ne créez pas de nouvelle intégration&nbsp;v1.

Lorsque des fonds sont transférés vers un compte financier, Stripe crée un objet [ReceivedCredit](https://docs.stripe.com/api/treasury/received_credits.md) correspondant sur le compte. Un `ReceivedCredit` contient des informations sur la manière dont les fonds ont été envoyés et depuis quel compte, dans la mesure du possible. Vous pouvez envoyer des fonds vers un compte financier à l’aide des numéros d’acheminement et de compte pour `ach`, `us_domestic_wire` et `rtp`, ou l’ID du compte financier pour les transferts entre comptes financiers.

Lorsque l’origine des fonds est un autre compte financier, le `ReceivedCredit` contient une référence `linked_flows.source_flow` au mouvement de fonds d’origine. Dans ce cas, l’`OutboundPayment`a `stripe` comme valeur de `network`.

## Récupérer un ReceivedCredit

Utilisez `GET /v1/treasury/received_credits/{{RECEIVED_CREDIT_ID}}` pour récupérer l’objet [ReceivedCredit](https://docs.stripe.com/api/treasury/received_credits.md) avec l’ID indiqué.

La requête suivante permet de récupérer le `ReceivedCredit` avec l’ID spécifié. La réponse à cette requête inclut les informations développées relatives à l’[objet Transaction](https://docs.stripe.com/api/treasury/transactions.md).

```curl
curl -G https://api.stripe.com/v1/treasury/received_credits/{{RECEIVED_CREDIT_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \
  -d "expand[]=transaction"
```

Sauf échec de l’opération, la réponse renvoie l’objet `ReceivedCredit` demandé. Certains des paramètres de la réponse comportent des informations supplémentaires qui ne sont renvoyées que si vous les ajoutez comme valeurs au paramètre `expand[]` de votre demande. Les champs que vous pouvez développer affichent le commentaire `Expandable`, comme illustré dans l’exemple de réponse suivant. Pour en savoir plus sur le développement des objets renvoyés, consultez la section sur le [développement des réponses](https://docs.stripe.com/api/expanding_objects.md).

#### JSON (commenté)

```json
{
  "id": "{{RECEIVED_CREDIT_ID}}",
  "object": "received_credit",
  "livemode": true | false,
  "created": "{{Timestamp}}",
  // The FinancialAccount that received the funds
  "financial_account": "{{FINANCIAL_ACCOUNT_ID}}", // Expandable
  "amount": 1000,
  "currency": "usd",
  // The description of this movement sent by the originator
  "description": "Testing",
  // ReceivedCredits are created with a status of either `succeeded` (approved) or `failed`
  // (declined). When failed, no Transaction is created. The failure reason can be found
  // in the "failure_code" field.
  "status": "succeeded" | "failed",
  // The network that was used for this movement
  "network": "ach" | "stripe" | "us_domestic_wire" | "rtp",
  // Information about the originating account of the movement
  "received_payment_method_details": {
    "type": "us_bank_account" | "balance" | "financial_account",
    // Only set if type is `us_bank_account`.
    // This contains information of the source external bank account.
    "us_bank_account": null | {
      "bank_name": "{{String}}",
      "routing_number": "12341234",
      "last4": "6789"
    },
    // Only set if type is `financial_account`.
    // This contains information of the source FinancialAccount.
    "financial_account": nil | {
      "id": "{{FINANCIAL_ACCOUNT_ID}}"
    },
    // Only set if type is `balance`.
    // This is only set when the source is a Payout.
    "balance": null | "payments",
    "billing_details": null | {
      "name": null | "{{String}}",
      "phone": null | "{{String}}",
      "email": null | "{{String}}",
      "address": null | {
        "line1": null | "{{String}}",
        "line2": null | "{{String}}",
        "city": null | "{{String}}",
        "state": null | "{{String}}",
        "postal_code": null | "{{String}}",
        "country": null | "{{String}}"
      }
    }
  },
  // A unique, Stripe-hosted direct link to the regulatory receipt for the ReceivedCredit
  "hosted_regulatory_receipt_url": "{{URL}}",
  "reversal_details": {
    "restricted_reason": null | "source_flow_restricted" | "network_restricted" | "deadline_passed" | "already_reversed",
    "deadline": null | "{{Timestamp}}"
  },
  "linked_flows": {
    // When the platform can see both source and destination
    // accounts, we link to the originating flow
    // When the `network` type is `stripe`, this could be an OutboundPayment originated from another merchant, a
    // Payout originated from the same merchant (a balance transfer from payments),
    // or the result of reversing a Stripe network ReceivedCredit by the recipient
    // whom funds were sent to in the past.
    // When the `network` type is `ach`, this could be either nil or a Payout.
    "source_flow": null | "{{OUTBOUND_PAYMENT_ID}}" | "{{PAYOUT_ID}}",
    "source_flow_type": null | "outbound_payment" | "payout",
    // Includable by expanding linked_flows['source_flow_details']. When included, this field will
    // either be an OutboundPayment or a Payout.
    "source_flow_details": null,
    // CreditReversals allow you to reverse a ReceivedCredit as long as it's before the reversal_details['deadline']
    // If reversed, the ReceivedCredit will link to the CreditReversal.
    "credit_reversal": null | "{{CREDIT_REVERSAL_ID}}"
  },
  // Currently, the only failure reasons for ReceivedCredits are due to restrictions on the account.
  "failure_code": null |
    "account_closed" |
    "account_frozen",
  // Transaction created by the ReceivedCredit. Created synchronously.
  "transaction": "{{TRANSACTION_ID}}" // Expandable
}
```

## Répertorier les ReceivedCredits

Utilisez `GET /v1/treasury/received_credits` pour récupérer tous les `ReceivedCredits` du compte financier avec l’ID du paramètre obligatoire `financial_account`. Vous pouvez filtrer la liste en utilisant les paramètres de liste standard, par `status` ou `linked_flows.source_flow_type`.

```
{
  // Standard list parameters
  "limit", "starting_after", "ending_before",
  // Filter by FinancialAccount (required)
  "financial_account": "{{FINANCIAL_ACCOUNT_ID}}",
  // Filter by status
  "status": "succeeded" | "failed",
  // Filter by `source_flow_type`
  "linked_flows.source_flow_type": nil | "payout" | "outbound_payment"
}
```

Dans la requête suivante, les `ReceivedCredits` qui présentent un état `failed` sont récupérés sur le compte financier spécifié.

```curl
curl -G https://api.stripe.com/v1/treasury/received_credits \
  -u "<<YOUR_SECRET_KEY>>:" \
  -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \
  -d "financial_account={{TREASURYFINANCIALACCOUNT_ID}}" \
  -d status=failed
```

Sauf échec de l’opération, la réponse inclut les objets [ReceivedCredit](https://docs.stripe.com/api/treasury/received_credits.md) qui correspondent aux critères indiqués dans la requête.

## Crédits Real-Time Payments

Un `ReceivedCredit` dont le réseau (`network`) est `rtp` représente des fonds reçus via paiement en temps réel (RTP), le réseau de paiement instantané géré par The Clearing House. Les expéditeurs adressent les transferts RTP aux mêmes numéros d’acheminement et de compte que ceux utilisés pour ACH, de sorte que tout compte financier doté d’une fonctionnalité `financial_addresses.aba` active peut les recevoir.

Les crédits RTP diffèrent des crédits ACH et par virement bancaire de deux manières&nbsp;:

- **Les fonds sont disponibles immédiatement, à tout moment.** Le règlement RTP s’effectue en quelques secondes et fonctionne 24&nbsp;heures sur 24, y compris les week-ends et les jours fériés. Il n’y a pas d’heure limite ni de délai en jours ouvrés. L’augmentation du solde et la [Transaction](https://docs.stripe.com/api/treasury/transactions.md) correspondante sont donc publiées dès que Stripe reçoit le transfert.
- **Les crédits RTP sont définitifs.** Vous ne pouvez pas les annuler. Les `ReceivedCredits` RTP ont toujours `reversal_details.restricted_reason` défini sur `network_restricted` et `reversal_details.deadline` sur `null`. Toute tentative de création d’un [CreditReversal](https://docs.stripe.com/treasury/connect/legacy/v1/moving-money/into/credit-reversals.md) pour l’un d’eux renvoie une erreur. Étant donné que vous ne pouvez pas retourner les fonds, considérez un crédit RTP comme réglé dès son arrivée.

## Tester les ReceivedCredits

Utilisez `POST /v1/test_helpers/treasury/received_credits` pour simuler la réception de fonds sur un compte financier. Pour simuler un virement bancaire depuis un compte externe vers votre compte financier, définissez `initiating_payment_method_details` sur les valeurs du compte bancaire externe, et définissez `network` sur `ach`, `us_domestic_wire` ou `rtp`.

La requête suivante entraîne la création d’un `ReceivedCredit` de test à partir d’un compte bancaire externe en utilisant un `OutboundPayment` entre deux comptes financiers de la même plateforme.

```curl
curl https://api.stripe.com/v1/test_helpers/treasury/received_credits \
  -u "<<YOUR_SECRET_KEY>>:" \
  -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \
  -d financial_account={{DESTINATION_FINANCIAL_ACCOUNT_ID}} \
  -d network=ach \
  -d amount=1234 \
  -d currency=usd
```

Sauf échec de l’opération, la réponse renvoie un objet `ReceivedCredit`. Voici un exemple de réponse pour un virement bancaire.

```json
{
  "financial_account": "{{FINANCIAL_ACCOUNT_ID}}",
  "network": "ach",
  "amount": "1234",
  "currency": "usd",
  "description": "Test",
  "source_details": {
    "type": "aba",
    "aba": {
      "country": "US",
      "routing_number": "12341234",
      "account_number": "0123456789",
      "account_holder_name": "Jenny Rosen"
    }
  }
}
```

## Webhooks ReceivedCredit

Stripe envoie les événements `ReceivedCredit` suivants à votre endpoint de [webhook](https://docs.stripe.com/webhooks.md)&nbsp;:

- `treasury.received_credit.created` lors de la création de l’événement `ReceivedCredit`.
- `treasury.received_credit.{{new_status}}` lorsque l’état de l’événement`ReceivedCredit` change. Il peut prendre les états suivants&nbsp;:
  - `treasury.received_credit.succeeded`
  - `treasury.received_credit.failed`
