<!--
{
  "availability" : [
    "iOS: 15.4.0 -",
    "iPadOS: 15.4.0 -",
    "macCatalyst: 17.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "ProximityReader",
  "identifier" : "/documentation/ProximityReader/PaymentCardReader/linkAccount(using:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "ProximityReader"
    ],
    "preciseIdentifier" : "s:15ProximityReader011PaymentCardB0C11linkAccount5usingyAC5TokenV_tYaKF"
  },
  "title" : "linkAccount(using:)"
}
-->

# linkAccount(using:)

Presents a sheet for the merchant to accept Tap to Pay on iPhone’s Terms and Conditions on a device.

```
func linkAccount(using token: PaymentCardReader.Token) async throws
```

## Parameters

`token`

The token from your payment service provider. This token contains the
merchant identifier.

## Discussion

To use Tap to Pay on iPhone, your participating payment service provider must provide the merchant using your app with a secure token.
This token contains an unique identifier for each merchant.
This merchant must accept Tap to Pay on iPhone’s Terms and Conditions.
After a merchant accepts the Terms and Conditions for their specific merchant identifier on one device,
they don’t need to accept it again on additional devices that use the same identifier.

Use the [`isAccountLinked(using:)`](/documentation/ProximityReader/PaymentCardReader/isAccountLinked(using:)) method to confirm calling [`linkAccount(using:)`](/documentation/ProximityReader/PaymentCardReader/linkAccount(using:)) is required.

If the merchant hasn’t accepted the Terms and Conditions, calling
[`prepare(using:)`](/documentation/ProximityReader/PaymentCardReader/prepare(using:)) throws [`PaymentCardReaderError.accountNotLinked`](/documentation/ProximityReader/PaymentCardReaderError/accountNotLinked).

If the merchant has already accepted the Terms and Conditions, calling
this method throws [`PaymentCardReaderError.accountAlreadyLinked`](/documentation/ProximityReader/PaymentCardReaderError/accountAlreadyLinked).

> throws: ``doc://com.apple.ProximityReader/documentation/ProximityReader/PaymentCardReaderError/accountAlreadyLinked`` if the merchant already
> accepted the Tap to Pay on iPhone’s Terms and Conditions. The method throws
> ``doc://com.apple.ProximityReader/documentation/ProximityReader/PaymentCardReaderError/accountLinkingFailed``,
> ``doc://com.apple.ProximityReader/documentation/ProximityReader/PaymentCardReaderError/accountLinkingCancelled``,
> or other relevant errors in ``doc://com.apple.ProximityReader/documentation/ProximityReader/PaymentCardReaderError`` if a problem occurs.

---

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)