Payments

Send payments between users or pay bills.

Overview

With the payments domain, users can pay bills or initiate monetary transfers between themselves and other individuals using Siri. Your Intents app extension facilitates bill payment from the user to any vendors (such as public utilities) that you previously configured in your app. For all payments, your Intents app extension works with your back-end services to initiate the transfers. The user then follows up on the progress of those transactions in your app.

Figure 1

Sending money to a friend using Siri

Sending money to a friend using Siri

SiriKit automatically asks the user to unlock their device when processing any payment-related intents. You can provide a custom interface for payment-related intents using an Intents UI app extension.

Topics

First Steps

Handling Payment Requests with SiriKit

Add an Intent Extension to your app to handle money transfer requests with Siri.

Send a Payment

protocol INSendPaymentIntentHandling

The handler interface for transferring money from the current user’s account to a different user’s account.

class INSendPaymentIntent

A request to transfer money from the current user’s account to a different user’s account.

class INSendPaymentIntentResponse

Your app’s response to a send payment intent.

Request a Payment

protocol INRequestPaymentIntentHandling

The handler interface for delivering a request for payment from another user of your app.

class INRequestPaymentIntent

An intent for requesting money from another user’s account.

class INRequestPaymentIntentResponse

Your app’s response to a request payment intent.

Pay a Bill

protocol INPayBillIntentHandling

The handler interface for paying a bill using money from the user’s account.

class INPayBillIntent

A request to transfer of money to facilitate payment of a bill.

class INPayBillIntentResponse

Your app’s response to a request to pay a bill.

Search for Bills

protocol INSearchForBillsIntentHandling

The handler interface for searching for bills associated with the user.

class INSearchForBillsIntent

A request for the list of bills matching the specified criteria.

class INSearchForBillsIntentResponse

Your app’s response to a request to a search for bills.

Search for Accounts

protocol INSearchForAccountsIntentHandling

The handler interface for searching for account information.

class INSearchForAccountsIntent

A request for information about the user’s accounts in your app.

class INSearchForAccountsIntentResponse

Your app’s response to a request to search for account information.

Transfer Money

protocol INTransferMoneyIntentHandling

The handler interface for transferring money between accounts.

class INTransferMoneyIntent

A request to transfer money between two accounts.

class INTransferMoneyIntentResponse

Your app’s response to a request to transfer money.

Data Objects

enum INAccountType

Constants indicating the type of account involved in a financial transaction.

class INBillDetails

The detailed information associated with a bill.

class INBillPayee

The entity that receives the proceeds from a bill payment.

class INCurrencyAmount

An amount of money to transfer during a financial transaction.

class INPaymentAccount

A user account that provides the funds when making a payment.

class INPaymentAmount

The amount of money to apply to a bill payment.

class INPaymentMethod

Information about a form of payment supported by your app.

class INPaymentRecord

Detailed information about a financial transaction made between two users.

enum INPaymentStatus

Constants indicating the state of the financial transaction.

class INPerson

The information about a user involved in a SiriKit interaction.

Resolution Results

class INAccountTypeResolutionResult

A resolution result for account types.

class INBalanceTypeResolutionResult

A resolution result for balance types.

class INBillTypeResolutionResult

A resolution result for the types of bills a user might pay.

class INBillPayeeResolutionResult

A resolution result for the recipient of a bill payment.

class INCurrencyAmountResolutionResult

A resolution result for a currency amount associated with an intent.

class INPaymentAccountResolutionResult

A resolution result for the user account that provides the funds to pay a bill.

class INPaymentAmountResolutionResult

A resolution result for the amount to pay for a bill.

class INPaymentMethodResolutionResult

Describes the result of resolving a payment method.

Beta
class INPaymentStatusResolutionResult

A resolution result for the payment status of a bill during a search.

class INRequestPaymentCurrencyAmountResolutionResult

A resolution result for the currency amount associated with a payment request.

class INRequestPaymentPayerResolutionResult

A resolution result for the person making the payment.

class INSendPaymentCurrencyAmountResolutionResult

A resolution result for the currency amount to send to another user.

class INSendPaymentPayeeResolutionResult

A resolution result for the recipient of a payment.

class INVisualCodeTypeResolutionResult

A resolution result for the type of visual code used to exchange information.

See Also

Siri Domains

Messaging

Send messages and search the user’s received messages.

Lists and Notes

Create and manage notes and to-do list items.

Workouts

Start, end, and manage fitness routines.

VoIP Calling

Initiate calls and search the user’s call history.

Visual Codes

Convey contact and payment information using Quick Response (QR) codes.

Photos

Search for and display photos.

Ride Booking

Book rides and report their status.

Car Commands

Manage vehicle door locks and get the vehicle’s status.

CarPlay

Interact with a vehicle’s CarPlay system.

Restaurant Reservations

Create and manage restaurant reservations with help from the Maps app.

Media

Listen and control audio through Siri Intents or listen and watch media content from your app with shortcuts.

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software