# Compliance

Learn about PayPal's implementation requirements and suggested best practices for iOS.

## Branding and appearance

|  | Description | Requirement |
|  --- | --- | --- |
| **Logos** | PayPal logos and acceptance marks are displayed in parity with other payment methods across the integration and cart page. |  |
| **Logos** | PayPal logos are taken from official sources and aren't modified. |  |
| **Branding** | The correct capitalisation and spelling of `PayPal` is always used in both text and images (instead of `Paypal`, `Pay Pal`, etc.) |  |
| **Accessibility** | The app follows iOS accessibility guidelines and supports VoiceOver screen reader. |  |
| **Accessibility** | The app provides adequate touch target sizes (minimum 44pt x 44pt) for all interactive elements. |  |
| **Buttons** | The PayPal button is presented with equal prominence and close proximity to other payment methods. |  |
| **Buttons** | PayPal checkout buttons are placed above other payment options. |  |
| **Buttons** | The PayPal button is sized in parity with other payment buttons or otherwise in keeping with other elements in the app. See the PayPal style guide. |  |


## Behaviour

|  | Description | Requirement |
|  --- | --- | --- |
| **Fees** | You don't add any additional surcharge or fee for PayPal transactions. |  |
| **Customer journey** | Selecting the PayPal payment method takes the shopper directly to PayPal, without any deviations or intermediate steps, and then back to your app. |  |
| **Payment methods** | If you allow payment methods to be stored and/or set as a preference, PayPal can also be stored as a payment method or and/or payment preference. |  |
| **Payment methods** | For the customer's first payment, no payment method should be preselected by default. For subsequent payments, the customer's previously used payment method may be preselected. |  |
| **Payment methods** | When a payment method is selected, any fields specific to other payment methods are hidden (e.g., credit card fields are hidden if a customer selects PayPal). |  |
| **Account** | The customer isn't required to log into or create a store/application account. |  |
| **Thank-you screen** | The buyer should see a "Thank you" screen on return to your app after the PayPal checkout process. PayPal details or logos should be presented such that behaviour is in parity with other payment methods. |  |
| **Shipping address validation** | When a customer enters an invalid shipping address, your own address validation corrects the address, preventing the invalid address from being sent to PayPal. If address data validation isn't performed, then the PayPal failure error is handled. The customer is notified and asked to correct the address. |  |
| **Lifecycle management** | The PayPal component is properly managed through SwiftUI view lifecycle to prevent memory leaks. |  |
| **Navigation handling** | Navigation back gesture correctly cancels PayPal flow and returns user to previous screen with proper state restoration. |  |