# Bewegen von Geld mit DebitReversal-Objekten Erfahren Sie, wie Sie Geldmittel zurückerhalten können, die von einem Finanzkonto von einem externen Kontoinhaber abgebucht wurden. Durch die Rückgabe von Geldern aus einer [ReceivedDebit](https://docs.stripe.com/api/treasury/received_debits.md) wird eine [DebitReversal](https://docs.stripe.com/api/treasury/debit_reversals.md) erzeugt. Sie können die Gelder von einer `ReceivedDebit` nur in wenigen Szenarien zurückerlangen (weitere Details in der folgenden Tabelle). Ob Sie die Gelder einer `ReceivedDebit` zurückgeben können hängt vom Netzwerk und dem quellseitigen Ablauf ab. Der Sub-Hash `reversal_details` für die `ReceivedDebit`-Ressource kann folgende Wertekombinationen aufweisen. Diese bestimmen, ob Sie die `ReceivedDebit`-Gelder zurückgeben können. | GRUND FÜR EINSCHRÄNKUNG | FRIST (EPOCHENZEITSTEMPEL) | BEISPIELSZENARIO | | ------------------------ | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `null` | 7940828047 | Eine `ReceivedDebit`, aus der Sie Gelder zurückgeben können, aber nur bis zum Zeitstempel am `deadline`. ACH-`ReceivedDebits` haben eine Frist, die festlegt, wie lange Sie sie zurückgeben können. | | `deadline_passed` | 1629480538 | Eine `ReceivedDebit`, deren Gelder vor dem Zeitstempel in `deadline` zurückgegeben konnten, die aber nicht mehr über die API zurückgegeben werden können, da die `deadline` verstrichen ist. ACH-`ReceivedDebits` können für eine begrenzte Zeit über die API zurückgegeben werden, nachdem sie erstellt wurden. | | `already_reversed` | null | Eine `ReceivedDebit`, die bereits zurückgegeben wurde. Ihr `deadline`-Wert kann ungleich null sein. | | `source_flow_restricted` | null | Eine `ReceivedDebit`, die nicht zurückgegeben werden kann, da ihr `source_flow` nicht rückgängig gemacht werden kann. | ## Fristen für Rückgabe Sie haben etwa einen Werktag Zeit, um ACH-Lastschriften nach Erhalt über die API zurückzugeben. Nach Ablauf dieser Frist können ACH-Lastschriften zwar immer noch zurückgegeben werden, die Rückgabe ist jedoch nicht garantiert. Wenden Sie sich an den Support, um die Rückgabe von Geldern anzufordern, wenn die Stornofrist vergangen ist. Informationen zu Rückgaben von `ReceivedDebit`-Geldern aufgrund einer Aktivität auf `Issuing`-Karten finden Sie im Leitfaden [Angefochtene Zahlungen in Issuing](https://docs.stripe.com/issuing/purchases/disputes.md). ## DebitReversal erstellen Verwenden Sie `POST /v1/treasury/debit_reversals`, um ein `DebitReversal` zu erstellen. Geben Sie die ID der zu stornierenden `ReceivedDebit` mit dem Parameter `received_debit` im Text der Anfrage an. > `DebitReversals` können nicht aktualisiert werden, alle optionalen [Metadaten](https://docs.stripe.com/api/treasury/debit_reversals/object.md#debit_reversal_object-metadata) müssen daher bei der Erstellung festgelegt werden. Mit der folgenden Anfrage wird ein `DebitReversal` basierend auf dem Wert der `ReceivedDebit`-ID des erforderlichen `received_debit`-Parameters erstellt. Die Anfrage legt auch einen optionalen Metadatenwert fest. ```curl curl https://api.stripe.com/v1/treasury/debit_reversals \ -u "<>:" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d received_debit={{RECEIVED_DEBIT_ID}} \ -d "metadata[reason]=Because" ``` Bei Erfolg gibt die Antwort das neue `DebitReversal`-Objekt zurück. ```json { "id": "{{DEBIT_REVERSAL_ID}}", "object": "debit_reversal", "amount": 1000, "currency": "usd", "financial_account": "{{FINANCIAL_ACCOUNT_ID}}", "hosted_regulatory_receipt_url": "https://payments.stripe.com/regulatory-receipt/{{URL_ID}}", "linked_flows": null, "livemode": false, "metadata": {}, "network": "ach", "received_debit": "{{RECEIVED_DEBIT_ID}}", "resolution": null, "status": "processing", "status_transitions": { "completed_at": null }, "transaction": "{{TRANSACTION_ID}}" } ``` ## Ein DebitReversal abrufen Verwenden Sie `GET /v1/treasury/debit_reversals/{{DEBIT_REVERSAL_ID}}`, um das `DebitReversal` mit der zugehörigen ID abzurufen. ```curl curl https://api.stripe.com/v1/treasury/debit_reversals/{{DEBIT_REVERSAL_ID}} \ -u "<>:" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" ``` Bei Erfolg gibt die Antwort das erkannte `DebitReversal` zurück. #### JSON (mit Kommentar) ```json { "id": "{{DEBIT_REVERSAL_ID}}", "object": "debit_reversal", "livemode": true | false, "created": "{{Timestamp}}", "financial_account": "{{FINANCIAL_ACCOUNT_ID}}", "amount": 1000, "currency": "usd", // the ReceivedDebit being returned "received_debit": "{{RECEIVED_DEBIT_ID}}", // whether funds have been returned depending on the DebitReversal outcome "resolution": null | "won", "status": "processing" | "canceled" | "completed", "status_transitions": { "processing_at": "{{Timestamp}}", "canceled_at": null | "{{Timestamp}}", "completed_at": null | "{{Timestamp}}" }, // Transaction representing balance impact of the DebitReversal "transaction": "{{TRANSACTION_ID}}", // A unique, Stripe-hosted direct link to the regulatory receipt for the DebitReversal "hosted_regulatory_receipt_url": "{{Url}}", // A map of String-String intended for users to use custom data "metadata": {} } ``` ## DebitReversals auflisten Verwenden Sie `GET /v1/treasury/debit_reversals`, um eine Liste von `DebitReversals` für das Finanzkonto mit der im erforderlichen Parameter `financial_account` angegebenen ID abzurufen. Sie können die Liste unter Verwendung des Parameters `received_debit` nach Standardlistenparametern, `status` oder nach `ReceivedDebit`-ID sortieren. ``` { // Standard list parameters "limit", "starting_after", "ending_before", // Filter by financial account (Required) "financial_account": "{{FINANCIAL_ACCOUNT_ID}}", // Filter by `status` "status": "processing" | "canceled" | "completed" // Filter by ReceivedDebit "received_debit": "{{RECEIVED_DEBIT_ID}}", } ``` Die folgende Anfrage ruft die letzten drei [DebitReversal-Objekte](https://docs.stripe.com/api/treasury/debit_reversals/object.md) für das erkannte Finanzkonto ab. ```curl curl -G https://api.stripe.com/v1/treasury/debit_reversals \ -u "<>:" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d "financial_account={{TREASURYFINANCIALACCOUNT_ID}}" \ -d limit=3 ``` ## DebitReversals testen Um `DebitReversals` zu testen, müssen Sie zunächst eine [Test-ReceivedDebit](https://docs.stripe.com/treasury/connect/moving-money/out-of/debit-reversals.md#testdebrev) erstellen. Verwenden Sie anschließend `POST /v1/treasury/debit_reversals` und geben Sie die Test- `ReceivedDebit-ID` im Parameter `received_debit` an, um eine Test- `DebitReversal` zu erstellen. ## DebitReversal-Webhooks Stripe gibt die folgenden `DebitReversal`-Ereignisse an Ihren [Webhook](https://docs.stripe.com/webhooks.md)-Endpoint aus: - `treasury.debit_reversal.created` bei Erstellung des `DebitReversal`. - `treasury.debit_reversal.completed`, wenn das `DebitReversal` abgeschlossen wird.