---
title: PKPaymentError.Code
framework: passkit
role: symbol
role_heading: Enumeration
path: passkit/pkpaymenterror/code
---

# PKPaymentError.Code

An error code that you provide to indicate problems with address or contact information on an Apple Pay sheet.

## Declaration

```swift
enum Code
```

## Overview

Overview The user must resolve any errors that you report on the Apple Pay sheet before they’re able to authorize the transaction.  You return any errors in PKPaymentAuthorizationResult or PKPaymentRequestShippingContactUpdate. You can build your own payment error (NSError), or use one of the following convenience methods from PKPaymentRequest to build it for you. For an error with contact information: paymentContactInvalidError(withContactField:localizedDescription:). For a shipping address that is unserviceable: paymentShippingAddressUnserviceableError(withLocalizedDescription:). For an error with the billing address: paymentBillingAddressInvalidError(withKey:localizedDescription:). For an error with the shipping address: paymentShippingAddressInvalidError(withKey:localizedDescription:). The following code example shows: How to create a payment error directly. How to create a payment error using a convenience method. Creating payment errors: // Creating a general shipping address error with NSError NSError *addressError = [[NSError alloc] initWithDomain:PKPaymentErrorDomain                         code:PKPaymentShippingContactInvalidError                         userInfo:@{NSLocalizedDescriptionKey: @"Address is invalid",                         PKPaymentErrorContactFieldUserInfoKey: PKContactFieldPostalAddress}];

// Creating a shipping address error specific to the zip code: NSError *zipCodeError = [[NSError alloc] initWithDomain:PKPaymentErrorDomain                         code:PKPaymentShippingContactInvalidError                         userInfo:@{NSLocalizedDescriptionKey: @"Zip code is invalid",                          PKPaymentErrorContactFieldUserInfoKey: PKContactFieldPostalAddress,                                               PKPaymentErrorPostalAddressUserInfoKey:CNPostalAddressPostalCodeKey}];

// Creating a billing address error specific to the street with a convenience method NSError *billingAddressInvalidStreet = [PKPaymentRequest                              paymentBillingAddressInvalidErrorWithKey:CNPostalAddressStreetKey                               localizedDescription:@"Invalid Street"];

## Topics

### Error codes

- [PKPaymentError.Code.couponCodeExpiredError](passkit/pkpaymenterror/code/couponcodeexpirederror.md)
- [PKPaymentError.Code.couponCodeInvalidError](passkit/pkpaymenterror/code/couponcodeinvaliderror.md)
- [PKPaymentError.Code.billingContactInvalidError](passkit/pkpaymenterror/code/billingcontactinvaliderror.md)
- [PKPaymentError.Code.shippingContactInvalidError](passkit/pkpaymenterror/code/shippingcontactinvaliderror.md)
- [PKPaymentError.Code.shippingAddressUnserviceableError](passkit/pkpaymenterror/code/shippingaddressunserviceableerror.md)
- [PKPaymentError.Code.unknownError](passkit/pkpaymenterror/code/unknownerror.md)

### Initializers

- [init(rawValue:)](passkit/pkpaymenterror/code/init(rawvalue:).md)

## Relationships

### Conforms To

- [BitwiseCopyable](swift/bitwisecopyable.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [RawRepresentable](swift/rawrepresentable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Errors

- [PKDisbursementError](passkit/pkdisbursementerror.md)
- [PKDisbursementErrorKey](passkit/pkdisbursementerrorkey.md)
- [PKPaymentError](passkit/pkpaymenterror.md)
- [PKPaymentErrorKey](passkit/pkpaymenterrorkey.md)
- [PKDisbursementError.Code](passkit/pkdisbursementerror/code.md)
- [PKPaymentErrorDomain](passkit/pkpaymenterrordomain.md)
- [PKDisbursementErrorDomain](passkit/pkdisbursementerrordomain.md)
