> ## Documentation Index
> Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
> Use this file to discover all available pages before exploring further.

# PayPal

> Wie Sie PayPal in WEBSALE V8s als Zahlungsart und als Express Checkout einbinden, welche Anbindungsart wann passt und was beim Wechsel zu beachten ist.

PayPal lässt sich auf zwei Ebenen in den Shop bringen. Als **Zahlungsart** steht es bei den anderen zur Auswahl, der Käufer durchläuft den gewohnten Bestellablauf und zahlt am Ende bei PayPal. Als **Express Checkout** steht es schon am Warenkorb: Ein Klick, und der Käufer springt an Anmeldung und Adresseingabe vorbei, weil PayPal seine Adresse mitliefert.

Darunter liegt eine zweite Entscheidung, nämlich wie der Shop technisch mit PayPal spricht.

## Die beiden Anbindungsarten

| | Direktanbindung | über Computop |
| - | - | - |
| Vertrag mit Computop nötig | nein | ja |
| PayPal Express Checkout möglich | ja | nein |
| sinnvoll, wenn | Sie PayPal eigenständig betreiben oder Express Checkout wollen | andere Zahlungsarten ohnehin schon über Computop laufen |

> [!WARNING]
>
> Die Entscheidung fällt vor der Einrichtung, nicht danach. Express Checkout gibt es nur mit der Direktanbindung. Wer über Computop anbindet und später Express Checkout möchte, muss die Anbindung wechseln, und das begleitet die WEBSALE-Technik.

Neben der hier beschriebenen Anbindung gibt es in WEBSALE V8s auch **PayPal Checkout** als eigene, neuere Zahlungsart mit eigenem Konfigurationsabschnitt. Klären Sie mit Ihrem WEBSALE-Ansprechpartner, welche Variante für Ihren Shop vorgesehen ist, bevor Sie anfangen.

Wegweiser: [PayPal-Checkout](https://dokumentation.websale.de/v8s/zahlungsarten-anlegen/paypal-checkout.md) · [Computop](https://dokumentation.websale.de/v8s/zahlungsarten-anlegen/computop.md)

> [!WARNING]
>
> giropay lässt sich bei PayPal nicht mehr als Zahlungsmittel wählen. Als eigenständige Zahlungsart im Shop steht es weiterhin zur Verfügung.

Wegweiser: giropay Online-Überweisung

## PayPal als Zahlungsart

![Paypal Zahlungsart](https://mintcdn.com/websaleag-44ee7ea6/qbW8uRSswcI46vuk/images/paypal_zahlungsart.png?fit=max\&auto=format\&n=qbW8uRSswcI46vuk\&q=85\&s=d984975469409c78510084735f98b591)

### Wie der Bezahlvorgang abläuft

![Paypalstandardflow](https://mintcdn.com/websaleag-44ee7ea6/qbW8uRSswcI46vuk/images/paypalstandardflow.png?fit=max\&auto=format\&n=qbW8uRSswcI46vuk\&q=85\&s=f5464efd6bf018ef144f3348db49bb7a)

1. Der Käufer gibt seine Adressdaten wie gewohnt ein.
2. Auf der Zahlungs- und Versandartenseite wählt er PayPal und seine Versandart.
3. Auf der Bestellübersicht bestätigt er. Dabei öffnet sich PayPal.
4. Er meldet sich bei PayPal an, bestätigt und kommt zurück in den Shop.
5. Der Shop zeigt die Bestelleingangsbestätigung `ws_confirm.htm`.

### Schritt 1: Konto und Freischaltung

Sie brauchen ein PayPal-Geschäftskonto. Bei der Anbindung über Computop kommt ein Händlervertrag mit Computop dazu.

Anschließend schaltet WEBSALE die gewählte Anbindung frei.

### Schritt 2: Zahlungsart anlegen

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<PaymentPaypal-Txt>
   Allow            = yes
   TestMode         = yes
   Name             = PayPal
   NameSuffix       = Schnell und sicher online bezahlen.
   Img              = logo-paypal.png
   RadioOnClick     = selectPayment('~ID~');
   ImgOnClick       = selectPaymentImage('~ID~');
   DelivererID-List = standard,express

   LanguageCode = de_DE
</PaymentPaypal-Txt>
```

`LanguageCode` ist optional und bestimmt die Sprache der PayPal-Seite. Zulässig sind der zweistellige Sprachcode oder der fünfstellige Locale-Code.

Referenz: [Abschnitt PaymentPaypal-Txt](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/zahlungsarten.md#paymentpaypal-txt) · [Abschnitt PaymentXXX-Txt](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/zahlungsarten.md)

### Schritt 3: Hinweismeldungen hinterlegen

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<NotifyMessages-Txt>
   PayPal-ClearingDeny            = Der Bezahlvorgang mit PayPal wurde abgelehnt.
   PayPal-ClearingError           = Der Bezahlvorgang mit PayPal wurde abgelehnt oder abgebrochen.
   PayPal-PaymentUnsupportedError = Das bei PayPal gewählte Zahlungsmittel wird nicht unterstützt. Bitte wählen Sie dort ein anderes.
</NotifyMessages-Txt>
```

Bei Online-Zahlungsarten lohnt sich zusätzlich ein Sicherheitshinweis im Shop, der erklärt, was beim Wechsel zur Zahlungsseite passiert.

Referenz: [Abschnitt NotifyMessages-Txt](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/texte-und-meldungen.md#notifymessages-txt) · Wegweiser: [Sicherheitshinweis bei Online-Zahlungsarten](https://dokumentation.websale.de/v8s/zahlungsarten-anlegen/sicherheitshinweis-bei-online-zahlungsarten.md)

### Schritt 4: Testen

Mit `TestMode = yes` ist die Zahlungsart nur im Zahlungsarten-Testmodus sichtbar.

Dabei müssen Sie wissen, gegen welches PayPal-Konto Sie testen.

| Fall | Aufruf |
| - | - |
| gegen Ihr reguläres PayPal-Konto | `?test=on&payment-test=on` |
| gegen ein Sandbox-Konto von PayPal | `?test=on&payment-test=on&paypalaccount-test=on` |

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
https://www.ihre-shop-url.de/?test=on&payment-test=on&paypalaccount-test=on
```

Zum Beenden setzen Sie die jeweiligen Parameter auf `off` und danach `TestMode` auf `no`.

Der PayPal-Testmodus lässt sich im Template sichtbar machen:

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{ST-PaymentTest}<p class="hinweis">Zahlungsarten-Testmodus aktiv</p>{/ST-PaymentTest}
{ST-PayPalAccountTest}<p class="hinweis">PayPal-Testmodus aktiv</p>{/ST-PayPalAccountTest}
```

Der Sandbox-Betrieb muss von WEBSALE eingerichtet werden, dafür brauchen wir Ihre PayPal-Sandbox-Zugangsdaten. Er ist auch der richtige Weg, wenn Sie die Anbindungsart wechseln oder auf andere Zugangsdaten umstellen wollen.

Wegweiser: [Testmodi des Shops ein- und ausschalten](https://dokumentation.websale.de/v8s/domains/testmodi-des-shops-ein-ausschalten.md)

## PayPal Express Checkout

![Paypalexpresscheckout Flow](https://mintcdn.com/websaleag-44ee7ea6/qbW8uRSswcI46vuk/images/paypalexpresscheckout_flow.png?fit=max\&auto=format\&n=qbW8uRSswcI46vuk\&q=85\&s=25a5a073ec7a66969c47d62db6e0e74f)

Der Express Checkout setzt einen Knopf neben den Warenkorb. Wer darauf klickt, landet direkt bei PayPal, meldet sich an und kommt mit Adresse und Zahlungsmittel zurück auf die Bestellübersicht. Die Zahlungs- und Versandartenseite überspringt er dabei.

Das verkürzt den Weg erheblich, bringt aber Einschränkungen mit sich, die Sie vorher kennen sollten.

> [!WARNING]
>
> Diese Funktionen sind mit dem Express Checkout **nicht** möglich:
>
> * Mehrwertsteuererlass für Firmenkunden nach Abfrage der Umsatzsteuer-Identifikationsnummer
> * Reseller-Bestellungen
> * Frachtkostenkalkulator
> * Auswahl des Adress- oder Kundentyps über UserTypes bei abweichender Rechnungsadresse
>
> Brauchen Sie eine davon, bleibt es bei PayPal als gewöhnlicher Zahlungsart.
>
> Im Express Checkout kann der Käufer auf der Bestellübersicht **weder den Warenkorb noch die Lieferadresse noch die Zahlungsart ändern**. PayPal erfährt von solchen Änderungen nichts mehr. Wer etwas ändern will, muss abbrechen und neu anfangen. Genau deshalb müssen Sie die entsprechenden Knöpfe dort ausblenden, siehe Schritt 5.

Was er ändern darf, ist die Versandart und die Rechnungsadresse. Beides müssen Sie auf der Bestellübersicht einbauen, denn die gewohnte Seite dafür entfällt.

### Voraussetzungen

PayPal muss als Zahlungsart über die **Direktanbindung** eingerichtet sein. Zum Testen richtet WEBSALE zusätzlich eine Test-Direktanbindung mit Ihren Sandbox-Daten ein und entfernt sie danach wieder.

Für die Testbestellungen brauchen Sie ein PayPal-Testkonto. An dessen E-Mail-Adresse gehen auch die Bestätigungsmails des Shops. Verwenden Sie deshalb eine Adresse, auf die derjenige Zugriff hat, der die Integration baut.

### Schritt 1: Express Checkout einschalten

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<PaymentPaypal-Txt>
   ExpressCheckout-Allow                  = yes
   InstantPaymentOnly-Allow               = yes
   PaypalPaymentAction                    = sale
   ExpressCheckoutMaxAmountAddition       = 100
   ExpressCheckoutNoShipping              = 0
   PaypalDenyPendingPayments-Allow        = no
   PassBasketToPayPal-ModeExpressCheckout = AllEntriesAsSingleLineItem-TotalSum
   PassBasketToPayPal-DummyAddition       = Zusatzkosten
   PassBasketToPayPal-DummyReduction      = abzüglich gewährter Rabatte
</PaymentPaypal-Txt>
```

| Parameter | Bedeutung |
| - | - |
| `ExpressCheckout-Allow` | schaltet den Express Checkout ein |
| `ExpressCheckoutMaxAmountAddition` | Reserve, um die der Gesamtbetrag nach der Freigabe noch wachsen darf |
| `ExpressCheckoutNoShipping` | steuert, ob PayPal eine Lieferadresse abfragt |
| `PaypalPaymentAction` | Zeitpunkt des Einzugs, siehe unten |
| `InstantPaymentOnly-Allow` | `yes` lässt nur sofort gutgeschriebene Zahlungsmittel zu, siehe „Schwebender Status" |
| `PassBasketToPayPal-ModeExpressCheckout` | wie der Warenkorb übergeben wird, siehe unten |

`ExpressCheckoutMaxAmountAddition` ist nötig, weil der Käufer seine Versandart erst **nach** der Freigabe bei PayPal wählt. PayPal muss deshalb vorher wissen, wie viel teurer die Bestellung dadurch höchstens wird. Setzen Sie den Wert so, dass die teuerste Versandart hineinpasst, sonst scheitert die Bestellung am Ende.

### Schritt 2: Versandarten freigeben

Versandarten müssen für den Express Checkout ausdrücklich zugelassen werden.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<+Deliverer>
   AllowForCheckouts-List = Standard,PayPalExpress
</+Deliverer>
```

> [!WARNING]
>
> Sobald Sie diesen Parameter irgendwo verwenden, brauchen auch die Versandarten des gewöhnlichen Bestellablaufs den Wert `Standard`. Vergessen Sie ihn, verschwinden sie aus dem normalen Ablauf.

Referenz: [Abschnitt +Deliverer](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/versand-und-lieferung.md#deliverer)

### Schritt 3: Knopf auf die Warenkorbseite

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<form action="~FORM-Basket~" method="post">
   {ST-PayPalExpressCheckout}
      <input type="image" name="~BT-PayPalExpressCheckout~"
         src="https://www.paypalobjects.com/webstatic/de_DE/i/de-btn-expresscheckout.gif"
         alt="Direkt zu PayPal">
   {/ST-PayPalExpressCheckout}
</form>
```

Die Klammerung `{ST-PayPalExpressCheckout}` blendet den Knopf aus, wenn der Express Checkout gerade nicht möglich ist. Das ist der Fall, wenn er nicht freigeschaltet ist, wenn der Warenkorb nicht bestellbereit ist, wenn die Gesamtsumme null oder kleiner ist oder wenn ein Filter PayPal für diese Bestellung ausschließt.

Verschiedene Knopfgestaltungen stellt PayPal in seinem Logo-Center bereit.

### Schritt 4: Fehlermeldungen auf der Warenkorbseite

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{ST-PayPalExpressCheckout_error}
   <p>Beim PayPal Express Checkout ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut
      oder nutzen Sie den gewöhnlichen Bestellablauf.</p>
{/ST-PayPalExpressCheckout_error}

{ST-PayPalExpressCheckout_cancel}
   <p>Sie haben den PayPal Express Checkout abgebrochen. Sie können ihn erneut starten
      oder den gewöhnlichen Bestellablauf nutzen.</p>
{/ST-PayPalExpressCheckout_cancel}
```

### Schritt 5: Bestellübersicht umbauen

Hier liegt die eigentliche Arbeit. Die Bestellübersicht bekommt zwei Gesichter: eines für den gewöhnlichen Ablauf, eines für den Express Checkout.

| Klammerung | Enthält |
| - | - |
| `{!ST-PayPalExpressCheckout_selected}` | alles, was nur im gewöhnlichen Ablauf gilt: Adressanzeige, Bankdaten, Kreditkartendaten, die Ändern-Knöpfe |
| `{ST-PayPalExpressCheckout_selected}` | alles, was nur im Express Checkout gilt: PayPal-Daten, Versandartenauswahl, die eigenen Knöpfe |

**Ändern-Knöpfe ausblenden**

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{!ST-PayPalExpressCheckout_selected}
   <input type="submit" name="~BT-Change_Addr~" value="Rechnungs- und Lieferadresse ändern">
   <input type="submit" name="~BT-Change_PayDeliv~" value="Zahlungs- und Versandart ändern">
   <a href="~WS-BasketLink~">Warenkorb ändern</a>
{/!ST-PayPalExpressCheckout_selected}
```

**Die von PayPal gelieferten Daten anzeigen**

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{ST-PayPalExpressCheckout_selected}
   <h2>Ihre bei PayPal hinterlegten Daten</h2>
   <p>E-Mail-Adresse: ~PAYPALEXPRESS-EMAIL~</p>
   <p>Name: ~PAYPALEXPRESS-FIRSTNAME~ ~PAYPALEXPRESS-LASTNAME~</p>

   <h2>Lieferadresse</h2>
   <p>~PAYPALEXPRESS-PAYMENTREQUEST_0_SHIPTONAME~</p>
   <p>~PAYPALEXPRESS-PAYMENTREQUEST_0_SHIPTOSTREET~</p>
   <p>~PAYPALEXPRESS-PAYMENTREQUEST_0_SHIPTOZIP~ ~PAYPALEXPRESS-PAYMENTREQUEST_0_SHIPTOCITY~</p>
   <p>~PAYPALEXPRESS-PAYMENTREQUEST_0_SHIPTOCOUNTRYNAME~</p>
{/ST-PayPalExpressCheckout_selected}
```

**Abweichende Rechnungsadresse zulassen**

Standardmäßig wird die Lieferadresse von PayPal auch als Rechnungsadresse verwendet. Nimmt der Käufer den Haken heraus, erscheinen die Felder für eine eigene Rechnungsadresse, per AJAX nachgeladen.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<div id="AjaxPayPalAddress">
   {ST-AJAX}<WS-Ajax-AjaxPayPalAddress>{/ST-AJAX}

      <label>
         <input type="checkbox" name="~WS-PayPalExpressUseDeliveryAddressForBilling_input~"
            ~WS-PayPalExpressUseDeliveryAddressForBilling_checked~
            onchange="ws_AJAXRefreshAddressInput('place_order_form','~BT-Addr_Refresh~','~WS-Charset~')">
         Diese Lieferadresse als Rechnungsadresse verwenden
      </label>

      {!WS-PayPalExpressUseDeliveryAddressForBilling_checked}
         ~WS-Fast_Include(Incl-InvoiceAddressFields)~
      {/!WS-PayPalExpressUseDeliveryAddressForBilling_checked}

   {ST-AJAX}</WS-Ajax-AjaxPayPalAddress>{/ST-AJAX}
</div>
```

> [!WARNING]
>
> Tragen Sie im Aufruf die ID Ihres eigenen Formulars ein, hier beispielhaft `place_order_form`.

**Versandart auswählen lassen**

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{ST-PayPalExpressCheckout_selected}
   <h2>Zustellung</h2>
   ~WS-DeliveryFields~
{/ST-PayPalExpressCheckout_selected}
```

> [!WARNING]
>
> Das JavaScript, das die Versandartenauswahl auf `ws_pay_deliv.htm` bedient, brauchen Sie hier ebenfalls. Diese Seite wird im Express Checkout übersprungen, ihr Skript kommt also nicht zum Zuge. Ohne das Skript lässt sich die Versandart nicht wählen.

**Knöpfe und Hinweise**

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{ST-PayPalExpressCheckout_selected}
   <input type="submit" name="~BT-PayPalExpressCheckout_reloadplaceorder~" value="Aktualisieren">
   <input type="submit" name="~BT-PayPalExpressCheckout_cancel~" value="Abbrechen">
{/ST-PayPalExpressCheckout_selected}

{ST-PayPalExpressCheckout_locked}
   <p>Sie befinden sich im PayPal Express Checkout. Ein Wechsel auf eine andere Seite ist
      derzeit nicht möglich. Schließen Sie die Bestellung ab oder brechen Sie sie ab.</p>
{/ST-PayPalExpressCheckout_locked}
```

Dazu gehören die Meldungsbereiche, die sonst auf anderen Seiten stehen, sowie die Fehlermeldungen zu Liefer- und Rechnungsland.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{MSG-PayDeliv_Notify}~MSG-PayDeliv_Notify~{/MSG-PayDeliv_Notify}
{MSG-Basket_Notify}~MSG-Basket_Notify~{/MSG-Basket_Notify}

{ST-PayPalExpressCheckout_selected}
   {ST-DelivCountryDiffers_error}
      <p>Liefer- und Rechnungsland müssen übereinstimmen. Bitte geben Sie ein passendes
         Rechnungsland an oder brechen Sie ab und starten Sie neu.</p>
   {/ST-DelivCountryDiffers_error}

   {ST-DelivCountryDiffersWrongDelivCountry_error}
      <p>In das angegebene Lieferland können wir nicht liefern. Bitte brechen Sie ab und
         starten Sie mit einem anderen Lieferland neu.</p>
   {/ST-DelivCountryDiffersWrongDelivCountry_error}

   {ST-PayPalExpressCheckout_paymentnotallowederror}
      <p>Die Abwicklung mit PayPal Express Checkout ist nicht möglich. Bitte brechen Sie ab
         und bestellen Sie ohne Express Checkout.</p>
   {/ST-PayPalExpressCheckout_paymentnotallowederror}
{/ST-PayPalExpressCheckout_selected}
```

### Schritt 6: AGB auf die Bestellübersicht

> [!WARNING]
>
> Steht Ihre AGB-Zustimmung nicht auf der Bestellübersicht, müssen Sie sie für den Express Checkout dort zusätzlich einbauen. Der Käufer kommt sonst an keiner Seite vorbei, auf der er zustimmen könnte.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{ST-PayPalExpressCheckout_selected}
   <label>
      <input type="checkbox" name="~WS-AcceptTermsAndConditions_input~"
         ~WS-AcceptTermsAndConditions_checked~>
      Ich akzeptiere die AGB.
   </label>
{/ST-PayPalExpressCheckout_selected}
```

### Schritt 7: Die übrigen Bestätigungen anpassen

Was Sie auf der Bestellübersicht ein- und ausgeklammert haben, gilt genauso für `ws_confirm.htm`, `mail_customer_order.htm` und `pdf_confirm.htm`.

Referenz: [ST-PayPalExpressCheckout](https://dokumentation.websale.de/v8s/referenz/tags/st/seitenzustand-und-navigation.md) · [ST-PayPalExpressCheckout\_selected](https://dokumentation.websale.de/v8s/referenz/tags/paypalexpress.md#wann-die-tags-arbeiten) · [PAYPALEXPRESS-Tags](https://dokumentation.websale.de/v8s/referenz/tags/paypalexpress.md) · [WS-DeliveryFields](https://dokumentation.websale.de/v8s/referenz/tags/ws/zahlung-versand-und-bestellabschluss.md#die-tags-im-uberblick)

## Wichtige Einstellungen

### Zeitpunkt des Zahlungseinzugs

`PaypalPaymentAction` bestimmt, was beim Bestellabschluss tatsächlich passiert.

| Wert | Wirkung |
| - | - |
| `sale` | das Geld wird sofort eingezogen |
| `authorization` | die Zahlung wird nur autorisiert, PayPal prüft die Bonität. Gültig bis zu 29 Tage, in denen Sie ganz oder teilweise einziehen oder stornieren können |
| `order` | der Käufer stimmt einer späteren Zahlung zu, ohne dass PayPal die Deckung prüft. Auf diese Zustimmung setzen Sie später eine Autorisierung auf. Länger als 29 Tage haltbar, die Frist lässt sich bei PayPal verlängern |

Wer erst nach Versand abrechnet, nimmt `authorization` oder `order`. Wer sofort versendet, nimmt `sale`.

### Schwebender Status

PayPal meldet am Ende nicht immer ein klares Ja oder Nein. Der dritte Fall heißt „Pending": Ob das Geld kommt, steht noch nicht fest.

Der Shop schließt die Bestellung in diesem Fall trotzdem ab und speichert den Status mit den Bestelldaten.

> [!WARNING]
>
> Eine Bestellung mit dem Status „Pending" dürfen Sie nicht behandeln wie eine bezahlte. Prüfen Sie vor der Bearbeitung, ob das Geld bei PayPal eingegangen ist, so wie bei Vorauskasse.

Seltener wird dieser Fall, wenn Sie Ihr PayPal-Händlerkonto entsprechend einstellen und im Shop nur sofort gutgeschriebene Zahlungsmittel zulassen:

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<PaymentPaypal-Txt>
   InstantPaymentOnly-Allow = yes
</PaymentPaypal-Txt>
```

### Wie der Warenkorb an PayPal geht

Der Käufer sieht bei PayPal, wofür er zahlt. Wie ausführlich, bestimmt die Art der Übergabe.

| Wert | Was PayPal sieht |
| - | - |
| `AllEntriesAsSingleLineItem-TotalSum` | eine einzige Position mit der Gesamtsumme |
| `OneEntryPerLineItemWithDummies-TotalSum` | jede Warenkorbposition einzeln, dazu Sammelpositionen für Zuschläge und Rabatte |
| `OneEntryPerLineItem-SubTotalSum` | jede Position einzeln, nur der Warenwert. Nur im Express Checkout möglich |

Der Parameter heißt `PassBasketToPayPal-ModeBasisCheckout` für den gewöhnlichen Ablauf und `PassBasketToPayPal-ModeExpressCheckout` für den Express Checkout.

> [!WARNING]
>
> Übergeben Sie die Positionen einzeln, brauchen Zuschläge und Rabatte eigene Sammelpositionen, denn PayPal kennt keine Korrekturbeträge. Ohne sie geht die Rechnung bei PayPal nicht auf.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<PaymentPaypal-Txt>
   PassBasketToPayPal-DummyAddition  = Zusatzkosten
   PassBasketToPayPal-DummyReduction = abzüglich gewährter Rabatte
</PaymentPaypal-Txt>
```

Betroffen sind Shops mit Rabatten, Gutscheinen oder Aufschlägen, beispielsweise für Web-to-Print-Produkte.

### Lieferung nach Nordamerika

Nach USA, Kanada und Mexiko erwartet PayPal zusätzlich den Bundesstaat, die Provinz beziehungsweise den Bundesdistrikt der Lieferadresse. Hat der Käufer keine Lieferadresse gewählt, gilt die Rechnungsadresse.

Diese Angabe fragen Sie als Zusatzinformation der Zahlungsart ab, mit je einem `<+CountryRule>`-Abschnitt pro Land.

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<PaymentPaypal-Txt>
   <+CountryRule>
      CountryList-ISO           = USA
      FieldDescr-Txt            = Bundesstaat
      Required                  = yes
      RequiredErrorMessage-Txt  = Bitte geben Sie den Bundesstaat der Lieferadresse an.
      HideInReadableOrder-Allow = yes
      MaxLength                 = 50
      ID                        = ws_clearing_paypal_state
      Type                      = listbox
      <+listentry>
         ID        =
         Entry-Txt = Bitte wählen Sie
      </+listentry>
      <+listentry>
         ID        = AL
         Entry-Txt = Alabama
      </+listentry>
   </+CountryRule>
</PaymentPaypal-Txt>
```

Die Kennung `ws_clearing_paypal_state` ist fest vorgegeben und für alle drei Länder dieselbe. Der Shop setzt bei dieser Kennung außerdem von sich aus die Lieferadresse als Bezugsadresse, unabhängig davon, was Sie bei `UseAddressInput` eintragen.

Die vollständigen Listen der Bundesstaaten, Provinzen und Distrikte finden Sie in den Materialien. Vergessen Sie nicht die allgemeine Fehlermeldung für fehlende Zusatzangaben:

```ini theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<NotifyMessages-Txt>
   PaymentInputSuffix = Bitte ergänzen Sie die erforderlichen Angaben zu Ihrer gewählten Zahlungsart.
</NotifyMessages-Txt>
```

Referenz: [Abschnitt +CountryRule](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/zahlungsarten.md#countryrule) · Materialien: PayPal, vollständige Länderlisten

### Was mit Express Checkout nicht geht

| Funktion | Grund |
| - | - |
| Mehrwertsteuererlass nach Umsatzsteuer-Identifikationsnummer | PayPal unterstützt das im Express Checkout nicht |
| Reseller-Bestellungen | nicht unterstützt |
| Frachtkostenkalkulator | nicht unterstützt |

Brauchen Sie eine dieser Funktionen, bieten Sie PayPal als gewöhnliche Zahlungsart an.

Wegweiser: [USt-IdNr. abfragen](https://dokumentation.websale.de/v8s/adressdaten/ust-idnr-abfragen.md) · [Reseller-Bestellungen unterstützen](https://dokumentation.websale.de/v8s/weitere-funktionen-im-bestellprozess-kontext/reseller-bestellungen-unterstuetzen.md)

## Anbindungsart wechseln

Der Wechsel zwischen Direktanbindung und Computop läuft über einen Parallelbetrieb: Die neue Anbindung wird im Testmodus aufgebaut, während die alte produktiv weiterläuft.

> [!WARNING]
>
> Die Umstellung begleitet die WEBSALE-Technik. Stimmen Sie den Ablauf vorher ab.

1. Legen Sie einen **zweiten** Abschnitt `<PaymentPaypal-Txt>` für die neue Anbindung an, mit `Allow = yes` und `TestMode = yes`.
2. Rufen Sie den Shop mit `?test=on&payment-test=on&paypalaccount-test=on` auf und bauen Sie die neue Anbindung fertig. Der Produktivbetrieb bleibt unberührt.
3. Beenden Sie den Testmodus mit `paypalaccount-test=off`.
4. Setzen Sie im Abschnitt der **alten** Anbindung `Allow = no`.
5. Melden Sie sich bei Ihrem WEBSALE-Ansprechpartner, damit die Umkonfiguration erfolgt.
6. Löschen Sie den alten Abschnitt und setzen Sie im neuen `TestMode = no`.

## Bestelldaten

Eine Bestellung über den Express Checkout ist in den Bestelldaten an drei Stellen erkennbar.

| Abschnitt | Eintrag |
| - | - |
| `<ID>` | `ExpressCheckout = yes` und `ExpressCheckoutType = PayPal` |
| `<CustomerAddress>` | `ExpressCheckoutAddressUsed = yes` |
| `<PayPalDirect>` | `ExpressCheckoutUsed = yes`, `PayPalPaymentAction` und der Unterabschnitt `<ExpressCheckoutDetails>` |

> [!WARNING]
>
> `ExpressCheckoutAddressUsed = yes` ist ein Hinweis an Ihre Warenwirtschaft, dass die Adressdaten aus einem Express Checkout stammen. Daraus können fehlende oder doppelte Adressangaben entstehen. Prüfen Sie, wie Ihr System damit umgeht.

## Verwandte Themen

* Wegweiser: [Zahlungsarten anlegen, für die allgemeinen Parameter und die Ausgabe im Template](https://dokumentation.websale.de/v8s/zahlungsarten-anlegen/zahlungsarten-anlegen.md)
* Wegweiser: PayPal-Checkout, für die neuere Anbindung
* Wegweiser: [Computop, für den Payment-Service-Provider](https://dokumentation.websale.de/v8s/zahlungsarten-anlegen/computop.md)
* Wegweiser: [AGB akzeptieren](https://dokumentation.websale.de/v8s/bestelluebersicht-bestelleingangsbestaetigung/agb-akzeptieren.md)


## Related topics

- [PayPal PLUS](https://dokumentation.websale.de/v8s/zahlungsarten-anlegen/paypal-plus.md)
- [PayPal Checkout](https://dokumentation.websale.de/v8s/zahlungsarten-anlegen/paypal-checkout.md)
- [PPP- (PayPal PLUS)](https://dokumentation.websale.de/v8s/referenz/tags/ppp-paypal-plus.md)
- [PPC- (PayPal Checkout)](https://dokumentation.websale.de/v8s/referenz/tags/ppc-paypal-checkout.md)
- [Materialien PayPal-Länderlisten](https://dokumentation.websale.de/v8s/materialien/materialien-paypal-laenderlisten.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.