# Geld bewegen mit CreditRestorsal-Objekten Erfahren Sie, wie Sie Geldmittel von empfangenen Gutschriften zurückerstatten können, die Ihrem Finanzkonto Geld hinzufügen. Durch die Stornierung einer [ReceivedCredit](https://docs.stripe.com/api/treasury/received_credits.md) wird ein [CreditReversal](https://docs.stripe.com/api/treasury/credit_reversals.md) erstellt. `ReceivedCredits` können nur in bestimmten Szenarien storniert werden (siehe nachfolgende Tabelle). Ob Sie eine `ReceivedCredit` stornieren können, hängt vom Netzwerk und dem quellseitigen Ablauf ab. Der Sub-Hash `reversal_details` für das `ReceivedCredit`-Objekt kann folgende Wertekombinationen aufweisen. Diese bestimmen, ob Sie die `ReceivedCredit` stornieren können oder nicht. | GRUND FÜR EINSCHRÄNKUNG | FRIST (EPOCHENZEITSTEMPEL) | BEISPIELSZENARIO | | ------------------------ | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `source_flow_restricted` | `null` | Eine `ReceivedCredit` eines Stripe-Netzwerks als Resultat eines anderen Ablaufs als des `OutboundPayment`. Stripe lässt nicht zu, dass Nutzer/innen solche `ReceivedCredits` stornieren. | | `network_restricted` | `null` | Aufgrund von Netzwerkeinschränkungen kann Stripe die Stornierung einiger `ReceivedCredits` (z. B. einer `ReceivedCredit` aus einer Überweisung) nicht zulassen. | | `null` | `{{TIMESTAMP}}` | Eine `ReceivedCredit`, die stornierbar ist, aber nur bis zum Zeitstempel am `deadline`. ACH-`ReceivedCredits` haben eine Frist, die festlegt, wie lange sie storniert werden können. | | `deadline_passed` | `{{TIMESTAMP}}` | Eine `ReceivedCredit`, die bis zum Zeitstempel am `deadline` stornierbar war, es aber jetzt nicht mehr ist, da die `deadline` abgelaufen ist. ACH-`ReceivedCredits` sind nach ihrer Erstellung nur für einige Zeit stornierbar. | | `already_reversed` | `null` | Eine `ReceivedCredit`, die bereits storniert wurde, hat diesen `restricted_reason`. Ihr `deadline`-Wert kann ungleich null sein. | | `null` | `null` | Sie können `ReceivedCredits` jederzeit stornieren, wenn sowohl für `restricted_reason` als auch für `deadline` `null` festgelegt ist. | ## CreditReversal erstellen Verwenden Sie `POST /v1/treasury/credit_reversals`, um ein `CreditReversal` zu erstellen. Legen Sie den Parameter `received_credit` im Text der Anfrage auf den Wert der zu stornierenden `ReceivedCredit`-ID fest. > `CreditReversals` können nicht aktualisiert werden, also müssen Sie bei Erstellung alle optionalen [Metadaten](https://docs.stripe.com/api/treasury/credit_reversals/create.md#create_credit_reversal-metadata) festlegen. Die folgende Anfrage erstellt ein `CreditReversal` basierend auf dem Wert der `ReceivedCredit`-ID des erforderlichen `received_credit`-Parameters. Die Anfrage legt auch einen optionalen Metadatenwert fest. ```curl curl https://api.stripe.com/v1/treasury/credit_reversals \ -u "<>:" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d received_credit={{RECEIVED_CREDIT_ID}} \ -d "metadata[reason]=Because" ``` Bei Erfolg gibt die Antwort das neue `CreditReversal`-Objekt zurück. ```json { "id": "{{CREDIT_REVERSAL_ID}}", "object": "credit_reversal", "amount": 1000, "currency": "usd", "financial_account": "{{FINANCIAL_ACCOUNT_ID}}", "hosted_regulatory_receipt_url": "https://payments.stripe.com/regulatory-receipt/{{URL_ID}}", "livemode": false, "metadata": { "csr_id": "CSR-12" }, "network": "ach", "received_credit": "{{RECEIVED_CREDIT_ID}}", "status": "processing", "status_transitions": { "posted_at": null }, "transaction": "{{TRANSACTION_ID}}" } ``` ## CreditReversal abrufen Verwenden Sie `GET /v1/treasury/credit_reversals/{{CREDIT_REVERSAL_ID}}`, um das `CreditReversal` mit der zugehörigen ID abzurufen. ```curl curl https://api.stripe.com/v1/treasury/credit_reversals/{{CREDIT_REVERSAL_ID}} \ -u "<>:" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" ``` Die Antwort gibt das spezielle `CreditReversal`-Objekt zurück. #### JSON (mit Kommentar) ```json { "id": "{{CREDIT_REVERSAL_ID}}", "object": "credit_reversal", "livemode": "{{Boolean}}", "created": "{{Timestamp}}", "financial_account": "{{FINANCIAL_ACCOUNT_ID}}", "amount": 1000, "currency": "usd", // The ReceivedCredit that was reversed "received_credit": "{{RECEIVED_CREDIT_ID}}", // The rails used to reversed. Always the same as that of the ReceivedCredit "network": "ach", "status": "processing" | "posted", "status_transitions": { "posted_at": null | "{{Timestamp}}" }, // Transaction representing balance impact of the CreditReversal "transaction": "{{TRANSACTION_ID}}", // A unique, Stripe-hosted direct link to the regulatory receipt for the CreditReversal "hosted_regulatory_receipt_url": "{{Url}}", // A map of String-String intended for users to use custom data "metadata": {} } ``` ## CreditReversals auflisten Verwenden Sie `GET /v1/treasury/credit_reversals`, um eine Liste von `CreditReversals` für das Finanzkonto mit der im erforderlichen Parameter `financial_account` angegebenen ID abzurufen. Sie können die Liste unter Verwendung des Parameters `received_credit` nach Standardlistenparametern, `status` oder nach `ReceivedCredit`-ID sortieren. ``` { // Standard list parameters "limit", "starting_after", "ending_before", // Filter by status "status": "processing" | "posted", // Filter by FinancialAccount (Required) "financial_account": "{{FINANCIAL_ACCOUNT_ID}}", // Filter by ReceivedCredit "received_credit": "{{RECEIVED_CREDIT_ID}}" } ``` Die folgende Anfrage gibt die letzten drei Stornos mit dem Status `posted` für das angegebene Finanzkonto zurück. ```curl curl -G https://api.stripe.com/v1/treasury/credit_reversals \ -u "<>:" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d limit=3 \ -d status=posted \ -d "financial_account={{TREASURYFINANCIALACCOUNT_ID}}" ``` Bei Erfolg gibt die Antwort die relevante Liste der [CreditReversal-Objekte](https://docs.stripe.com/api/treasury/credit_reversals.md) zurück. ## CreditReversals testen Um CreditReversals zu testen, müssen Sie zunächst [ReceivedCredits im Testmodus](https://docs.stripe.com/treasury/connect/moving-money/into/credit-reversals.md#testcr) erstellen. Verwenden Sie dann `POST /v1/treasury/credit_reversals` und geben Sie die `ReceivedCredit`-ID im Testmodus im Parameter `received_credit` an, um einen `CreditReversal` im` Testmodus zu erstellen. ## CreditReversal-Webhooks Stripe gibt die folgenden `CreditReversal`-Ereignisse an Ihren [Webhook](https://docs.stripe.com/webhooks.md)-Endpoint aus: - `treasury.credit_reversal.created` bei Erstellung des `CreditReversal`. - `treasury.credit_reversal.posted`, wenn das `CreditReversal` veröffentlicht wird