# ApplePay Merchant Registration

Apple requires e-commerce sites to be registered in order to process ApplePay. GoDaddy Payments, as Payment Service Provider, will interface all clients interaction between ApplePay server. Learn more on how to enable your e-commerce business for ApplePay.

# Pre-requisite

To proceed, you will need to have Developer Account for GoDaddy Payments API to have the necessary credential to access our following environment servers:

Development Host Testing Host Production Host
https://services-ci.poynt.net https://services-ote.poynt.net https://services.poynt.net

Node support

Our Node SDK provides APIs to fetch domain-association-file and to register merchant.

Learn how to set it up (opens new window)

# Merchant registration in ApplePay flow:

  1. Your server registers merchant for ApplePay
  2. (Production-only) Apple will validate your domain-association-file behind the scene by
GET {your.website.com}/.well-known/apple-developer-merchantid-domain-association
  1. Registration succeeded
  2. Your buyer clicks on ApplePay button'
  3. Apple checks for merchant registration
  4. Upon success, ApplePay payment sheet will show

# Domain Association File Preparation

# Get domain-association-file

Fetch domain file from GoDaddy Payments host based on environment

GET /businesses/{business-uuid}/apple-pay/domain-association-file

or via Node SDK

poynt.getApplePayDomainAssociationFile(
  {
    businessId: "business-uuid",        // required
  },
  function (err, doc) {
    if (err) {
      // handle error
    } else {
      // do stuff with doc
    }
});

::: details Sample Request using cURL curl --location 'https://services.poynt.net/businesses/2989f251-147f-4acf-ad8f-4b6795523d43/apple-pay/domain-association-file'
--header 'Content-Type: text/plain' :::

# Host domain association file required

https://{my.website.com}/.well-known/apple-developer-merchantid-domain-association

# Merchant Registration API

# Register merchant required

Register new domain for ApplePay (up to 99 domains per call)

  • Node SDK
poynt.updateApplePayRegistration(
  {
    businessId: "business-uuid",                        // required
    registerDomains: ["fully.qualified.domain.name"],     // required
    merchantName: "GDP Test Merchant",                  // required
    merchantUrl: "https://www.optional.com"             // optional
  },
  function (err, doc) {
    if (err) {
      // handle error
    } else {
      // do stuff with doc
    }
});
  • Cloud API
    • Request pattern:
    POST /businesses/{business-uuid}/apple-pay/registration
    
    • Request Header
      • Authorization: {access_token}
      • Content-Type : application/json
    • Request body
      • registerDomains : List of fully qualified domain names where Apple Pay button is displayed
      • merchantName: Merchant's e-commerce name
      • merchantUrl: Merchant site where e-commerce store is hosted
      {
          "registerDomains": ["fully.qualified.domain.name"], // required
          "merchantName": "GDP Test Merchant",                // required
          "merchantUrl": "https://www.optional.com"           // optional
      }
      
    • Sample response:
      {
          "domain": ["fully.qualified.domain.name"],
          "merchantName": "GDP Test Merchant",
          "merchantUrl": "https://www.optional.com"
      }
      

# Get Merchant Details optional

Verify your merchant registration details

  • Node SDK
    poynt.getApplePayMerchant(
      {
        businessId: "business-uuid",        // required
      },
      function (err, doc) {
        if (err) {
          // handle error
        } else {
          // do stuff with doc
        }
    });
    
  • Cloud API
    • Request pattern: GET
      GET /businesses/{business-id}/apple-pay/registration
      
    • Request Header
      • Authorization: {access_token}
      • Content-Type : application/json
    • Sample response:
    {
        "domain": ["fully.qualified.domain.name"],
        "merchantName": "GDP Test Merchant",
        "merchantUrl": "https://www.optional.com"
    }
    

::: details Sample Request using cURL

curl --location 'https://services.poynt.net/businesses/2989f251-147f-4acf-ad8f-4b6795523d43/apple-pay/registration' \
  --header 'Authorization: BEARER {access_token}' \
  --header 'Content-Type: application/json'

:::

# Update Merchant optional

In case merchant migrates to new domain, unregister merchant's old domain then register with the new domain

  • Node SDK
poynt.updateApplePayRegistration(
  {
    businessId: "business-uuid",                        // required
 
    // info for register
    registerDomains: ["fully.qualified.domain.name"],
    merchantName: "for-rename-merchant",                // optional
     
    // info for unregister
    unregisterDomains: ["fully.qualified.domain.name"],
    reason: "insert human-readable reason"                // optional
  },
  function (err, doc) {
    if (err) {
      // handle error
    } else {
      // do stuff with doc
    }
});
  • Cloud API
    • Request pattern:
      POST /businesses/{business-id}/apple-pay/registration
      
    • Request Header
      • Authorization: Bearer {Access Token}
      • Content-Type : application/json
    • Request body
    {
        "registerDomains": ["fully.qualified.domain.name"],
        "merchantName": "for-rename-merchant",                  // optional
        "unregisterDomains": ["fully.qualified.domain.name"],
        "reason" : "human readable unregistration reason"       // optional
    }
    
    • Sample response
    {
        "domain": ["fully.qualified.domain.name"],
        "merchantName": "GDP Test Merchant",
        "merchantUrl": "https://www.optional.com"
    }
    

::: details Sample Request using cURL

curl --location 'https://services.poynt.net/businesses/2989f251-147f-4acf-ad8f-4b6795523d43/apple-pay/registration' \
    --header 'Authorization: BEARER {access_token}' \
    --header 'Content-Type: application/json' \
    --data '{
      "unregisterDomains": [
          "my1.domain.com"
      ],
      "registerDomains": [
          "my2.domain.com",
          "my3.domain.com"
      ],
      "merchantName":"Business DBA",
      "merchantUrl":"https://my1.domain.com"
    }'

:::

Last Updated: 8/12/2024, 10:01:45 AM