# 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.

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 façon dont les fonds ont été envoyés et, dans la mesure du possible, sur l’expéditeur. Vous pouvez envoyer des fonds vers un compte financier à l’aide des numéros de routage et de compte pour les transferts `ach` et `us_domestic_wire`, ou de l’ID du compte financier pour les transferts entre deux 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",
  // 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.

## 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` ou sur `us_domestic_wire`.

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`
