# Automatischer Abgleich Stripe kümmert sich um den Barzahlungsabgleich für Zahlungsmethoden mit Saldotransfer. If your integration uses [customer-configured Accounts](https://docs.stripe.com/api/v2/core/accounts/create.md#v2_create_accounts-configuration-customer), replace `Customer` and event references in the code examples with the equivalent Accounts v2 API references. For more information, see [Represent customers with Account objects](https://docs.stripe.com/accounts-v2/use-accounts-as-customers.md). > #### Veraltet > > Dieser Leitfaden dokumentiert die veraltete Implementierung von Überweisungen mit der Sources API. Wenn Sie derzeit Credit Transfers integrieren, müssen Sie eine [Migration zur Payment Methods API vornehmen](https://docs.stripe.com/payments/payment-methods/transitioning.md). Wir senden Ihnen eine E-Mail mit weiteren Informationen über die Einstellung der Unterstützung für die Sources API. Überweisungszahlungen werden von Unternehmen häufig für große Transaktionen oder neue Geschäftsbeziehungen genutzt. Dadurch kann ein großer manueller Aufwand für Ihr Team entstehen. Stripe vereinfacht diesen Prozess durch das Annehmen von Überweisungen, mit denen offene Rechnungen bezahlt werden. Stripe generiert für alle Ihre Kund/innen automatisch eine virtuelle US-Bankkontonummer, an die USD-Zahlungen per ACH- oder Banküberweisung gesendet werden können. Wenn Ihre Kund/innen eine Rechnung mit diesem virtuellen Bankkonto sehen, können sie eine Zahlung an dieses Konto senden. Stripe gleicht die Zahlung automatisch mit dem virtuellen Bankkonto und der Rechnung ab. Anschließend wird die Rechnung als bezahlt gekennzeichnet. ### Überweisung im Vergleich zu Lastschrift Bei der Zahlung mittels Kreditkarte oder Bankkonto handelt es sich um eine _Lastschrift_zahlungsmethode: Mit einer Lastschriftzahlungsmethode erfolgen die Zahlungen durch Abbuchen von Geldern. Bei einer Zahlung per *Überweisung* werden die Gelder Stripe dagegen manuell gutgeschrieben. Mit dem automatischen Abgleich müssen Sie keine sensiblen Bankkontodetails offenlegen und keine offenen Rechnungen mit Ihrer Bank abgleichen. Mit automatischem Abgleich für Rechnungen kann Stripe: - Eingehende Rechnungen mit Rechnungsbeträgen abgleichen. - Über- und Unterzahlungen handhaben, wenn der gezahlte Betrag nicht mit der Rechnung übereinstimmt. - Anzahl von API-Aufrufen zum Übertragen von Geldern zu Stripe reduzieren. - Erneute Zahlungsversuche für offene Rechnungen verwalten. ## Eine Rechnung bezahlen Wenn ein Kunde/eine Kundin über keinen [ach_credit_transfer](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-ach_credit_transfer)-Subhash verfügt, erstellt Stripe einen für jede Rechnung. Alle Rechnungen enthalten Anweisungen zum Zahlungsziel. Außerdem hat jeder Kunde/jede Kundin eine einmalige Zahlungsadresse, die auf seinen/ihren Rechnungen verwendet wird. Mit dem Subhash `ach_credit_transfer` können Kundinnen/Kunden Gelder entweder über das ACH-System der USA oder per Inlandsüberweisung senden und im Rechnungsvermerk die Rechnungsnummer angeben. > ACH-Überweisungen unterstützen nur USD. Sobald eine Kundin/ein Kunde eine Überweisung getätigt hat, gleicht Stripe anhand der im Feld für Rechnungsvermerke angegebenen Rechnungsnummer die Zahlung mit einer Rechnung ab. Alle übereinstimmenden Rechnungen werden realisiert. Falls keine Übereinstimmung vorliegt, wird die älteste ausstehende Rechnung realisiert, die denselben Betrag hat. Wenn wir keine ausstehende Rechnung mit demselben Betrag finden können, werden so viele ausstehende Rechnungen realisiert, wie mit dem Überweisungsbetrag realisiert werden können, beginnend mit der ältesten zahlbaren Rechnung. Wenn eine Rechnung realisiert wurde, wird das Ereignis `invoice.paid` ausgelöst. Sie können dieses Ereignis mithilfe von [Webhooks](https://docs.stripe.com/invoicing/integration/workflow-transitions.md) empfangen. Sie können den Status einer ACH-Überweisung überprüfen, indem Sie die Liste der Zahlungsmethoden für die Kundin/den Kunden anzeigen. Sie können das im [Dashboard](https://dashboard.stripe.com/customers). Sie können den Status auch sehen, indem Sie die Quellen eines/einer Kund/in in der API anzeigen. ```bash curl https://api.stripe.com/v1/customers/cus_9jWC3097MQwYwF/sources \ -u <>: ``` Stripe gibt eine Liste von Quellen zurück, die mit dieser Kundin/diesem Kunden verknüpft sind. Der `type` der Quelle für ACH-Überweisungen hat den Wert `ach_credit_transfer`. Im folgenden Antwortbeispiel wartet der/die Empfänger/in der ACH-Überweisung auf die Zahlung des/der Kund/in. ```json { "object": "list", "data": [ { "id": "src_19Q3AILlRB0eXbMt81RVDnM9", "object": "source", "amount": null, "client_secret": "src_client_secret_Z0zPIgnR0BVafiMLaJcxI3HS", "created": 1481585102, "currency": "usd", "customer": "cus_9jWC3097MQwYwF", "flow": "receiver", "livemode": false, "metadata": {}, "owner": { "address": null, "email": "jenny.rosen@example.com", "name": null, "phone": null, "verified_address": null, "verified_email": null, "verified_name": null, "verified_phone": null }, "receiver": { "address": "110000000-test_12e2b7d44ea6", "amount_charged": 0, "amount_received": 0, "amount_returned": 0, "refund_attributes_method": "email", "refund_attributes_status": "missing" }, "status": "chargeable", "type": "ach_credit_transfer", "usage": "reusable", "ach_credit_transfer": { "account_number": "test_12e2b7d44ea6", "fingerprint": "3eoX8Ufbxh0oVDim", "routing_number": 110000000 } } ], "has_more": false, "url": "/v1/customers/cus_9jWC3097MQwYwF/sources" } ``` Es kann vorkommen, dass Kund/innen Zahlungsmethoden außerhalb von Stripe verwenden möchten, z. B. Papierschecks. In diesem Fall ist es bei Stripe möglich, über den Zahlungsstatus Ihrer Rechnungen den Überblick zu behalten. Nachdem Sie eine Zahlung für eine Rechnung von einer Kundin/einem Kunden außerhalb von Stripe empfangen haben, können Sie die entsprechende Rechnung manuell als bezahlt markieren. ```curl curl https://api.stripe.com/v1/invoices/in_18jwqyLlRB0eXbMtrUQ97YBw/pay \ -u "<>:" \ -d paid_out_of_band=true ``` ## Umgang mit Ausnahmen Wenn Ihre Kundin/Ihr Kunde einen Betrag zahlt, der nicht mit einem Rechnungsbetrag übereinstimmt, werden die Gelder nicht abgebucht und verbleiben im `Source​`-Objekt. Wenn Sie mithilfe dieser Gelder Ihre Rechnung realisieren möchten, stehen Ihnen einige Optionen zur Verfügung: - **Überzahlung:** Wenn eine Kundin/ein Kunde mehr Gelder sendet, als für die Rechnung erforderlich sind, kennzeichnet Stripe die Rechnung automatisch als bezahlt und verwendet dabei die mit der offenen Rechnung übereinstimmenden Gelder. Die restlichen Gelder verbleiben bei dem/der `Source`-Empfänger/in. Sie können diese Gelder manuell auf eine Rechnung anwenden. Falls mehrere übereinstimmende offene Rechnungen vorliegen, wendet Stripe die Gelder auf die älteste Rechnung an. - **Unterzahlung:** Im Abschnitt **Teilzahlungen** in Ihren [Einstellungen für Abonnements und E-Mails](https://dashboard.stripe.com/settings/billing/automatic) können Sie Regeln für Unterzahlungen festlegen. Sie können zum Beispiel eine Regel definieren, bei der Stripe innerhalb einer bestimmten Fehlertoleranz Rechnungen automatisch abgleicht und die Differenz dem/der Kund/in gutschreibt. In einem typischen Szenario für Unterzahlung könnte es vorkommen, dass die Bank einen Teil des Zahlungsbetrags einbehält. Beispiel: Eine Kundin/ein Kunde überweist 100 USD, um eine Rechnung über 100 USD zu bezahlen. Die Bank der Kundin/des Kunden zieht 20 USD von diesem Betrag ab, sodass Sie effektiv 80 USD erhalten. Wenn diese Differenz (meistens nicht über 20 USD) für Sie akzeptabel ist, können Sie diese Fehlertoleranz im Voraus festlegen, um manuellen Aufwand zu vermeiden. Sonstige Ausnahmen: - Wenn der/die Empfänger/in über genügend Geld verfügt, um Ihre Rechnung zu bezahlen, können Sie diese Gelder im Dashboard beanspruchen, indem Sie auf der Rechnung auf die Schaltfläche **Kundenkonto belasten** klicken oder indem Sie den Endpoint [Rechnung bezahlen](https://docs.stripe.com/api.md#pay_invoice) aufrufen und das ACH-Überweisungsobjekt als Quelle angeben. - Wenn die Gelder zum Bezahlen der Rechnung nicht ausreichen und Sie die Differenz nicht erlassen, können Sie Ihre Kundin/Ihren Kunden den Restbetrag auf anderem Wege zahlen lassen. Alternativ können Sie die alte Rechnung stornieren, eine neue Rechnung für den kleineren Betrag erstellen und sofort auf die dafür angezeigte Schaltfläche **Kundenkonto belasten** klicken. Wenn Ihr Kunde/Ihre Kundin über eine ACH-Überweisungsquelle mit ausreichenden Geldern verfügt oder eine Kreditkarte oder ein Bankkonto hinterlegt ist, können Sie diese Quellen zum Bezahlen der Rechnung verwenden, indem Sie den Endpoint [Rechnung bezahlen](https://docs.stripe.com/api.md#pay_invoice) mit der Quelle aufrufen, die Sie verwenden möchten. ## Rückerstattung für Zahlungen Sie können Zahlungen per ACH-Überweisung und per Scheck entweder über das [Dashboard](https://dashboard.stripe.com/payments) oder die [API](https://docs.stripe.com/api.md#create_refund) zurückerstatten. Die Kundin/der Kunde muss jedoch das Konto angeben, an das die Gelder zurückgesendet werden sollen. Stripe kontaktiert die Kundin/den Kunden automatisch unter der angegebenen E-Mail-Adresse. Sobald uns die Kontoinformationen der Kundin/des Kunden vorliegen, wird die Rückerstattung automatisch abgewickelt. Der Anfangsstatus einer Rückerstattung ist `pending`. Wenn die Rückerstattung fehlschlägt, empfangen Sie das Ereignis `refund.failed` und der Status der Rückerstattung wechselt auf `failed`. Das bedeutet, dass Stripe die Rückerstattung nicht bearbeiten kann und Sie die Gelder außerhalb von Stripe an Ihren Kunden/Ihre Kundin zurückerstatten müssen. Dies ist selten, kann aber vorkommen, wenn das Konto für Rückerstattungen gesperrt ist. Abgeschlossene Rückerstattungen haben den Status `succeeded`. ## Zahlung testen Wenn Sie sich in einer *Sandbox* (A sandbox is an isolated test environment that allows you to test Stripe functionality in your account without affecting your live integration. Use sandboxes to safely experiment with new features and changes) befinden, können Sie eine Geldüberweisung an den/die Empfänger/in simulieren. Aktualisieren Sie dazu die E-Mail-Adresse der Inhaberin/des Inhabers für die Quelle in `amount_XXXX@any_domain.com`, wobei `XXXX` den Geldbetrag darstellt, dessen Überweisung Sie simulieren möchten. Die Zahlung wird nur mit der Rechnung verknüpft, wenn Stripe die Rechnung eingefroren hat und sie nicht bearbeitet werden kann. Dies geschieht entweder eine Stunde nach dem Empfang entsprechender *Webhooks* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests) oder wenn Sie eine E-Mail für die Rechnung an den Kunden/die Kundin gesendet haben. Im Dashboard können Sie sofort eine E-Mail senden, indem Sie für die Rechnung auf die Schaltfläche **Rechnung senden** klicken. ```curl curl https://api.stripe.com/v1/sources/src_19Q3AILlRB0eXbMt81RVDnM9 \ -u "<>:" \ --data-urlencode "owner[email]=amount_1000@example.com" ``` Kurz nach der Aktualisierungsanfrage können Sie den Parameter `receiver` abrufen: ```curl curl https://api.stripe.com/v1/sources/src_19Q3AILlRB0eXbMt81RVDnM9 \ -u "<>:" ``` Wenn die Aktualisierungsanfrage erfolgreich war, zeigt die Eigenschaft `receiver` das Geld an: ```json { "object": "list", "data": [ { "id": "src_19Q3AILlRB0eXbMt81RVDnM9", "object": "source", "amount": null, "client_secret": "src_client_secret_Z0zPIgnR0BVafiMLaJcxI3HS", "created": 1481585102, "currency": "usd", "customer": "cus_4fdAW5ftNQow1a", "flow": "receiver", "livemode": false, "metadata": {}, "owner": { "address": null, "email": "amount_1000@test.com", "name": null, "phone": null, "verified_address": null, "verified_email": null, "verified_name": null, "verified_phone": null }, "receiver": { "address": "110000000-test_12e2b7d44ea6", "amount_charged": 1000, "amount_received": 1000, "amount_returned": 0, "refund_attributes_method": "email", "refund_attributes_status": "missing" }, "status": "chargeable", "type": "ach_credit_transfer", "usage": "reusable", "ach_credit_transfer": { "account_number": "test_12e2b7d44ea6", "fingerprint": "3eoX8Ufbxh0oVDim", "routing_number": 110000000 } } ], "has_more": false, "url": "/v1/customers/cus_4fdAW5ftNQow1a/sources" } ``` In diesem Beispiel geht der Status der offenen Rechnung (mit demselben Betrag) des/der Kund/in in „bezahlt“ über. Das entsprechende Zahlungsobjekt zeigt die Details der Zahlung an.