# ApplePay recurring merchant integration ApplePay one time payment devdoc -> https://hackmd.io/RVV4eSn-Sse_sUFOS_YD2w Changes to enable "**vault with purchase**". ## Customer Initiated Transaction (CIT) ### Create Order Request ```json { "intent": "AUTHORIZE", "purchase_units": [ { "reference_id": "d9f80740-38f0-11e8-b467-0ed5f89f718b", "amount": { "currency_code": "USD", "value": "100.00" } } ], "payment_source": { "apple_pay": { "attributes": { "customer": { "id": "wxj1234" }, "vault": { "store_in_vault": "ON_SUCCESS" } }, "stored_credential": { "payment_initiator": "CUSTOMER", "payment_type": "RECURRING", "usage": "FIRST" } } } } ``` ### Create ApplePay Session ``` javascript // Note: the `applepayConfig` object in this request is the response from `paypal.Applepay().config()`. const paymentRequest = { countryCode: applepayConfig.countryCode, merchantCapabilities: applepayConfig.merchantCapabilities, supportedNetworks: applepayConfig.supportedNetworks, currencyCode: "USD", requiredShippingContactFields: ["name", "phone", "email", "postalAddress"], requiredBillingContactFields: ["name", "phone", "email", "postalAddress"], recurringPaymentRequest: { paymentDescription: "A description of the recurring payment to display to the user in the payment sheet.", regularBilling: { label: "Recurring", amount: "4.99", paymentTiming: "recurring", recurringPaymentStartDate: "2022-08-03T07:56:44.582Z" }, trialBilling: { label: "7 Day Trial", amount: "1.99", paymentTiming: "recurring", recurringPaymentEndDate: "2022-08-03T07:56:44.582Z" }, billingAgreement: "A localized billing agreement displayed to the user in the payment sheet prior to the payment authorization.", managementURL: "https://merchant.com/billingagreement1234", tokenNotificationURL: applepayConfig.tokenNotificationURL }, total: { label: "Demo", type: "final", amount: "1.99" } }; const session = new ApplePaySession(4, paymentRequest); ``` ### Authorize Order Response ```json { "id": "5O190127TN364715T", "status": "COMPLETED", "payment_source": { "apple_pay": { "name": "John Doe", "card": { "name": "John Doe", "last_digits": "5421", "brand": "VISA", "type": "DEBIT", "billing_address": { "address_line_1": "2211 N First Street", "admin_area_2": "San Jose", "admin_area_1": "CA", "postal_code": "95131", "country_code": "US" } }, "attributes": { "vault": { "id": "nkq2y9g", "status": "VAULTED", "links": [ { "href": "https://api-m.paypal.com/v3/vault/payment-tokens/nkq2y9g", "rel": "self", "method": "GET" }, { "href": "https://api-m.paypal.com/v3/vault/payment-tokens/nkq2y9g", "rel": "delete", "method": "DELETE" }, { "href": "https://api-m.paypal.com/v2/checkout/orders/5O190127TN364715T", "rel": "up", "method": "GET" } ] } } } }, "purchase_units": [ { "reference_id": "d9f80740-38f0-11e8-b467-0ed5f89f718b", "payments": { "authorizations": [ { "id": "3C679366HH908993F", "status": "CREATED", "amount": { "currency_code": "USD", "value": "100.00" }, "seller_protection": { "status": "NOT_ELIGIBLE" }, "expiration_time": "2022-12-08T18:11:02Z", "create_time": "2022-12-08T18:11:02Z", "update_time": "2022-12-08T18:11:02Z", "links": [ { "href": "https://api-m.paypal.com/v2/payments/authorizations/5O190127TN364715T", "rel": "self", "method": "GET" }, { "href": "https://api-m.paypal.com/v2/payments/authorizations/5O190127TN364715T/capture", "rel": "capture", "method": "POST" }, { "href": "https://api-m.paypal.com/v2/payments/authorizations/5O190127TN364715T/void", "rel": "void", "method": "POST" }, { "href": "https://api-m.paypal.com/v2/checkout/orders/5O190127TN364715T", "rel": "up", "method": "GET" } ] } ] } } ], "links": [ { "href": "https://api-m.paypal.com/v2/checkout/orders/5O190127TN364715T", "rel": "self", "method": "GET" } ] } ``` ## Merchant Initiated Transaction (MIT) ### Create Order #### Request ```json { "intent": "AUTHORIZE", "purchase_units": [ { "reference_id": "d9f80740-38f0-11e8-b467-0ed5f89f718b", "amount": { "currency_code": "USD", "value": "100.00" } } ], "payment_source": { "apple_pay": { "vault_id": "8kk845", "stored_credential": { "payment_initiator": "MERCHANT", "payment_type": "RECURRING", "usage": "SUBSEQUENT" } } } } ``` #### Response ```json { "id": "5O190127TN364715T", "status": "COMPLETED", "payment_source": { "apple_pay": { "name": "John Doe", "card": { "name": "John Doe", "last_digits": "5421", "brand": "VISA", "type": "DEBIT", "billing_address": { "address_line_1": "2211 N First Street", "admin_area_2": "San Jose", "admin_area_1": "CA", "postal_code": "95131", "country_code": "US" } } } }, "purchase_units": [ { "reference_id": "d9f80740-38f0-11e8-b467-0ed5f89f718b", "payments": { "authorizations": [ { "id": "0AW2184448108334S", "status": "CREATED", "amount": { "currency_code": "USD", "value": "100.00" }, "seller_protection": { "status": "NOT_ELIGIBLE" }, "expiration_time": "2022-03-22T21:20:49Z", "create_time": "2022-12-20T21:20:49Z", "update_time": "2022-12-20T21:20:49Z", "links": [ { "href": "https://api-m.paypal.com/v2/payments/authorizations/0AW2184448108334S", "rel": "self", "method": "GET" }, { "href": "https://api-m.paypal.com/v2/payments/authorizations/0AW2184448108334S/capture", "rel": "capture", "method": "POST" }, { "href": "https://api-m.paypal.com/v2/payments/authorizations/0AW2184448108334S/void", "rel": "void", "method": "POST" }, { "href": "https://api-m.paypal.com/v2/payments/authorizations/0AW2184448108334S/reauthorize", "rel": "reauthorize", "method": "POST" }, { "href": "https://api-m.paypal.com/v2/checkout/orders/5O190127TN364715T", "rel": "up", "method": "GET" } ] } ] } } ], "links": [ { "href": "https://api-m.paypal.com/v2/checkout/orders/5O190127TN364715T", "rel": "self", "method": "GET" } ] } ```