<!--
{
  "availability" : [
    "iOS: 16.0.0 -",
    "iPadOS: 16.0.0 -",
    "macCatalyst: -",
    "macOS: 13.0.0 -",
    "visionOS: -",
    "watchOS: 9.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "PassKit",
  "identifier" : "/documentation/PassKit/PayWithApplePayButton",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "PassKit (Apple Pay and Wallet)",
      "SwiftUI"
    ],
    "preciseIdentifier" : "s:16_PassKit_SwiftUI012PayWithAppleE6ButtonV"
  },
  "title" : "PayWithApplePayButton"
}
-->

# PayWithApplePayButton

A type that provides a button to pay with Apple pay.

```
@MainActor @preconcurrency struct PayWithApplePayButton<Fallback> where Fallback : View
```

## Overview

Use this structure as the SwiftUI equivalent to [`PKPaymentButton`](/documentation/PassKit/PKPaymentButton). For design guidance, see Human Interface Guidelines > Apple Pay > [Using Apple Pay buttons](https://developer.apple.com/design/human-interface-guidelines/apple-pay#Using-Apple-Pay-buttons).

This example shows an implementation of the Pay with Apple Pay button.

```swift
// Create a payment request.
@State private var paymentRequest = PKPaymentRequest()

// Create a payment authorization change method.
func paymentAuthorizationDidChange(phase: PayWithApplePayButtonPaymentAuthorizationPhase) { ... }

@ViewBuilder var payButton: some View {
    PayWithApplePayButton(
        .plain,
        request: paymentRequest,
        onPaymentAuthorizationChange: paymentAuthorizationDidChange
    ) {
        // Display a fallback view if the payment request fails.
    }
    .frame(width: 250, height: 50)
    .payWithApplePayButtonStyle(.automatic)
}
```

## Topics

### Creating the button

[`init(_:action:)`](/documentation/PassKit/PayWithApplePayButton/init(_:action:))

[`init(_:action:fallback:)`](/documentation/PassKit/PayWithApplePayButton/init(_:action:fallback:))

[`init(_:request:onPaymentAuthorizationChange:)`](/documentation/PassKit/PayWithApplePayButton/init(_:request:onPaymentAuthorizationChange:))

[`init(_:request:onPaymentAuthorizationChange:fallback:)`](/documentation/PassKit/PayWithApplePayButton/init(_:request:onPaymentAuthorizationChange:fallback:))

[`init(_:request:onPaymentAuthorizationChange:onMerchantSessionRequested:)`](/documentation/PassKit/PayWithApplePayButton/init(_:request:onPaymentAuthorizationChange:onMerchantSessionRequested:))

[`init(_:request:onPaymentAuthorizationChange:onMerchantSessionRequested:fallback:)`](/documentation/PassKit/PayWithApplePayButton/init(_:request:onPaymentAuthorizationChange:onMerchantSessionRequested:fallback:))



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)