Enabling Apple Pay Service

This document will guide you on how to correctly enable Apple Pay on PowerBoard using your own merchant certificates.

Enabling Apple Pay Service

This document will guide you on how to correctly enable Apple Pay on PowerBoard using your own merchant certificates.

applepay icon

📘

Before you begin

To enable Apple Pay using your own certificate, you need to have:

  • Apple Pay Developer Account
  • PowerBoard PreProduction and Production Accounts

❗️

Important

Please call PowerBoard Tech Support on 1800 230 177 options 1-3-1, Monday-Friday, 7am-7pm Australian Eastern Standard Time zone (GMT+10) or email the support team at [email protected] so that our team can assist you with the following steps.


Step 1) Create Merchant Identifiers

  1. Log in to your Apple Developer account.
  2. Navigate to the 'Certificates' section.
  3. In Certificates, Identifiers & Profiles, click Identifiers in the sidebar, then click the add button (+) on the top left.
apple certificate
  1. Select Merchant IDs, then click Continue.
register
  1. Enter the merchant description and identifier name, then click Continue.
register-merchant
  1. Review the settings, then click Register.
confirm registration

Step 2) Create payment processing certificate

❗️

Important!

A payment processing certificate is associated with your merchant identifier and used to encrypt payment information.

The payment processing certificate expires every 25 months. If the certificate is revoked, you can recreate it.

  • In Certificates, Identifiers & Profiles, click Identifiers in the sidebar.
  • Under Identifiers, select Merchant IDs using the filter on the top right.
  • On the right, select your merchant identifier.
profiles
  • Under Apple Pay Payment Processing Certificate, click Create Certificate.
create certificate
  • Create a certificate signing request on your Mac, then click Continue.
  • In the dialog that appears, select the certificate request file (a file with a .cer file extension), then click Choose.
  • Download and save the generated merchant identity certificate (.cer file).

Step 3) Register and validate your merchant domain

  • In Certificates, Identifiers & Profiles, click Identifiers in the sidebar, then select Merchant IDs from the pop-up menu on the top right.
register merchant domain
  • Under Merchant Domains, click Add Domain.
configure merchant domain
  • Enter the fully qualified domain name, then click Save.
save config
  • Under Merchant Domains, click Verify next to the domain, then follow the instructions.

Step 4) Convert your Apple Pay Certificates

🚧

PowerBoard requires you to convert both certificates with OpenSSL.

You may need to install OpenSSL and related command tools on your local machine to be able to run the below commands.

Apple Pay Payment Processing Certificate

a) Convert .cer to .pem

openssl x509 -inform DER -outform PEM -in apple_pay.cer -out temp.pem

b) Generate .p12 key

openssl pkcs12 -export -out key.p12 -inkey private.key -in temp.pem

c) Generate .pem from .cer

openssl x509 -inform DER -outform PEM -in apple_pay.cer -out certificate_passphrase.pem

d) Convert .p12 to .pem

openssl pkcs12 -in key.p12 -out signature.pem -nocerts -nodes

After following the above conversion steps, you will be left with two main files:

  • certificate_passphrase.pem
    • used for certificate_passphrase
  • signature.pem
    • used for signature

Apple Pay Merchant Identity Certificate

a) Convert .cer to .pem

openssl x509 -inform DER -outform PEM -in merchant_id.cer -out temp.pem

b) Generate .p12 key

openssl pkcs12 -export -out key.p12 -inkey private.key -in temp.pem

c) Generate .pem from .cer

openssl x509 -inform DER -outform PEM -in merchant_id.cer -out username.pem

d) Convert .p12 to .pem

openssl pkcs12 -in key.p12 -out password.pem -nocerts -nodes

After following the above conversion steps, you will be left with two main files:

  • username.pem
    • used for username
  • password.pem
    • used for password

Step 5) Encode your Certificates (Base64)

Before you send your certificates to PowerBoard's API, you are required to encode them in Base64, this can be done via various online and offline tools.

Note: Please only encode contents inclusive of 'BEGIN' and 'END' tags.

Remove Bag Attributes and Key Attributes when encoding your private keys: password.pem and signature.pem.


Step 6) Send your Apple Pay certificates to PowerBoard

📘

You can get your gateway_id from PowerBoard Merchant Portal, under Services.

API Endpointhttps://api.preproduction.powerboard.commbank.com.au/v1/gateways/{{gateway_id}}
HTTP Method
PUT
Headersx-user-secret-key- POWERBOARD_SECRET_KEY - This is your PowerBoard API Secret Key.
Content-Type - application/jsonContent - Type will always be application/json.
Request Parameterswallets.apple.merchant - string - Apple Pay Merchant ID.
wallets.apple.certificate_passphare - string - Apple Pay Payment Processing Certificate
(converted .pem file).
wallets.apple.signature - string - Apple Pay Payment Processing Certificate Private Key
(converted .pem file).
wallets.apple.username - string - Apple Pay Merchant Identity Certificate
(converted .pem file).
wallets.apple.password - string - Apple Pay Merchant Identity Certificate Private Key
(converted .pem file).

{
    "wallets": {
        "apple": {
            "merchant": "YOUR_MERCHANT_WEBSITE",
            "certificate_passphrase": "LS0tLS1CRUdJTiBDRUSUZJQ0FURS0tLS0tCk1JSUdHekNDQlFPZ0F3SUJBZ0lRQnRIQk4vOUhQWTRkL2I1SkJGSS84REFOQmdrcWhraUc5dzBCQVFzRkFEQjEKTVVRd1FnWURWUVFERER0QmNIQnNaU0JYYjNKc1pIZHBaR1VnUkdWMlpXeHZjR1Z5SUZKbGJHRjBhVzl1Y3lCRApaWEowYVdacFkyRjBhVzl1SUVGMWRHaHZjbWwwZVRFTE1Ba0dBMVVFQ3d3Q1J6TXhFekFSQmdOVkJBb01Da0Z3CmNHeGxJRWx1WXk0eEN6QUpCZ05WQkFZVEFsVlRNQjRYRFRJek1EY3hPVEE1TWpZeU9Gb1hEVEkxTURneE56QTUKTWpZeU4xb3dnWjB4S3pBcEJnb0praWFKay9Jc1pBRUJEQnR0WlhKamFHRnVkQzVqYjIwdVkySmhMbkJ2ZDJWeQpZbTloY21ReFFEQStCZ05WQkFNTU4wRndjR3hsSUZCaGVTQk5aWEpqYUdGdWRDQkpaR1Z1ZEdsMGVUcHRaWEpqCmFHRnVkQzVqYjIwdVkySmhMbkJ2ZDJWeVltOWhjbVF4RXpBUkJnTlZCQXNNQ2swek1rTmFXVlZWVlVjeEZ6QVYKQmdOVkJBb01Ea1J2YldWdWFXTWdWWEp6YVc1dk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQgpDZ0tDQVFFQTFYV1FJSWM0YXF2TU1rSFFNL0hGdGtmNzdlWDR6MFM3RWg4SlU1NkxDbm9wK2JVQml4RmdvMkdpCitDREsvSGRXTGR2RUFHaTkremtYQmxNMExwSzZ5dkwxNFdRWlR0R0FpN0lQVmZMTFdUUlo3YUQ2dnBVSFNleWUKQ2FGY3NZcHZ6MFVZcDdEaVhzSTdvaElCazBuZGxvOEZyV1FZNFcwV3pIRzQ0ZjErbjBORGthT3hCNTFhV3ZBUgpVWkpNUEh6aUM1OWx3WG13dVQyVVZJWFMrQTU5SEdteWhCQysrV053V2Q3QVNPdkRBSXJ4TDZDenBxT09DVVFSClBYNUhKUC85UlNtKzMwK2FPRENZdzcxampVelBRb1FYYVdTVDl6Qy9tRGNwOU9hN1NBazNtcFg3dGpNSmZuZXcKK2hjYkNaRU94cUJtTE1ad1RZdmpQL0VZTmNCSDR3SURBUUFCbzRJQ2ZEQ0NBbmd3REFZRFZSMFRBUUgvQkFJdwpBREFmQmdOVkhTTUVHREFXZ0JRSi9zQVZrUG12WkFxU0Vya21LR01NbCt5bnNqQndCZ2dyQmdFRkJRY0JBUVJrCk1HSXdMUVlJS3dZQkJRVUhNQUtHSVdoMGRIQTZMeTlqWlhKMGN5NWhjSEJzWlM1amIyMHZkM2RrY21jekxtUmwKY2pBeEJnZ3JCZ0VGQlFjd0FZWWxhSFIwY0RvdkwyOWpjM0F1WVhCd2JHVXVZMjl0TDI5amMzQXdNeTEzZDJSeQpaek13T1RDQ0FTMEdBMVVkSUFTQ0FTUXdnZ0VnTUlJQkhBWUpLb1pJaHZkalpBVUJNSUlCRFRDQjBRWUlLd1lCCkJRVUhBZ0l3Z2NRTWdjRlNaV3hwWVc1alpTQnZiaUIwYUdseklFTmxjblJwWm1sallYUmxJR0o1SUdGdWVTQncKWVhKMGVTQnZkR2hsY2lCMGFHRnVJRUZ3Y0d4bElHbHpJSEJ5YjJocFltbDBaV1F1SUZKbFptVnlJSFJ2SUhSbwpaU0JoY0hCc2FXTmhZbXhsSUhOMFlXNWtZWEprSUhSbGNtMXpJR0Z1WkNCamIyNWthWFJwYjI1eklHOW1JSFZ6ClpTd2dZMlZ5ZEdsbWFXTmhkR1VnY0c5c2FXTjVJR0Z1WkNCalpYSjBhV1pwWTJGMGFXOXVJSEJ5WVdOMGFXTmwKSUhOMFlYUmxiV1Z1ZEhNdU1EY0dDQ3NHQVFVRkJ3SUJGaXRvZEhSd2N6b3ZMM2QzZHk1aGNIQnNaUzVqYjIwdgpZMlZ5ZEdsbWFXTmhkR1ZoZFhSb2IzSnBkSGt2TUJNR0ExVWRKUVFNTUFvR0NDc0dBUVVGQndNQ01CMEdBMVVkCkRnUVdCQlNDQm9LZ3dxcjl4emdadzZLWUFoMmRFRnNGMXpBT0JnTlZIUThCQWY4RUJBTUNCNEF3VHdZSktvWkkKaHZkalpBWWdCRUlNUUVFME1UWXlPVEpDUXpWRFFUTTFORGxGUlRoR1JEYzFNelZCT0RkRE1VWkNRVFpGTkVORgpPRFZETlVOR01rSTJSak16UkVFd01VRkdNekl6TXpaRU0wWXdEd1lKS29aSWh2ZGpaQVl1QkFJRkFEQU5CZ2txCmhraUc5dzBCQVFzRkFBT0NBUUVBZFE3eDZ4QTQvcnRjUWZzVG14OUNLT1NlZGYzVWpoRzB5TE5FTC9EOVRMNjIKMXAxWHpUb0ZzYTFRY2R4UTBPVVpGdGRZZi9KTTJYbXZ3NCtFNnRKMVZIQ3ZVd0syblRqWkZLWUpodFh6UytCZgppR1d6THdJSE1aUkJMaW9HTXhGbG5CdWROQkN0citTOXlIKzRNYlJ4N1dBNVN3QkFtQldBZnlNWVR3S3lQOE1GCjRjQjhXaExuV3h3Uld3VjBSU2JPL09XUVMvZVpSWG85N00yVU9yNS80Y2FBakZaYlZFa3JRM2NlVTdRaTAweGsKVEhxZjVaTTNxR3NUREczSCtvU3c3aGFFWDlxa1VsR1A4cjZ2YnNFWnNHU0kyUVdOM1dvQWZYVjJLZmZNSFVJaApaOWhRSU94NGVUS09lWGNyZC9DdzBtR3lqeVRiZElvOHJaeDFtemNrcWc9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0t",
            "signature": "LS0tLS1CRUdJTiBQUklWQVRFIEtFWSLS0tCk1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRRFZkWkFnaHpocXE4d3kKUWRBejhjVzJSL3Z0NWZqUFJMc1NId2xUbm9zS2VpbjV0UUdMRVdDallhTDRJTXI4ZDFZdDI4UUFhTDM3T1JjRwpVelF1a3JySzh2WGhaQmxPMFlDTHNnOVY4c3RaTkZudG9QcStsUWRKN0o0Sm9WeXhpbS9QUlJpbnNPSmV3anVpCkVnR1RTZDJXandXdFpCamhiUmJNY2JqaC9YNmZRME9SbzdFSG5WcGE4QkZSa2t3OGZPSUxuMlhCZWJDNVBaUlUKaGRMNERuMGNhYktFRUw3NVkzQlozc0JJNjhNQWl2RXZvTE9tbzQ0SlJCRTlma2NrLy8xRktiN2ZUNW80TUpqRAp2V09OVE05Q2hCZHBaSlAzTUwrWU55bjA1cnRJQ1RlYWxmdTJNd2wrZDdENkZ4c0prUTdHb0dZc3huQk5pK00vCjhSZzF3RWZqQWdNQkFBRUNnZ0VBWTBERDRHd2ZqbklOZzN6WW01NmF5UlFWajF1MFltUFovQ1lVUng1Y0ZtWVIKYUh1Q21UQmVWL25KTmtqQk9iMGZoRGxBbk5RWEtsNDBWNHVPb3UwMUQ3TURJMmRRNFRaRzZDM0dOYmVzVi9FZwpzMzU3dU94QXRGM2lhaVh1bk5yNi9FeHJsMldIREhxU0Vkei9nSVlERThPeTV4bTQrL0NtZmkrT3dQNEd4M1E4CjZhc1JLRmtnRmdZV1RZMDhWQkRoUTJub09Ubklxc29sV0JPMElYdkw4T0RhTmluZFYwNVBhY25QRC8zdm1PWEYKbTJBQStnRU9qZkl3YlZLR0pZMXB4RVVyQ0xBck5vMW9qRlpsbHllY3VjUlM4cUk0aElBVnN4allmVDN2V2MzQgpuSVd0NXpWelF4cm9LSjE2WlhMQUt3WGgvMDRNN3Jtc0VmSUx0Ui9lT1FLQmdRRHNqbHZwc1NZUTd5Q2VIM25kCmVXVnJCQXM5bmlhcVVCUHlTQk1MaGU1Wi9EdWtsaElHalYvbUJZdmpKL1lUT2hPRk5JYUFTUWdrbGt0THlyaS8KdHVIbm5XRXZUaFFmOGpUVXFQT1BEMmNMUk1BR3Y5Mm5lL2M3R2l6cEs2RlAxV2xvK0J6YmNqeGpxTUlHeUJyagpGbGU0OG5MT2dtK0JBTHpvVlUxdXlSR2g5UUtCZ1FEbkFUSjNrNG01SEEwSzRHaSsveEJVY05MU2JseGtscFozCkhCKytPRllrbE8vakhEbHlXMjcwMDVZMDNGM1Y5V3A0eUZiUFhyTHIyUGdQL2xHckptbExoQjlNSGl3VVk4MG0KRWNaVDFnbXdVbFpOTlN4bks0M1lDWjIzbVYvTElzNTh4QWcvalNIVkw1YlcrLzd1azlLRkp5TG9CdERwM2RZUwplL2NUdWxPamR3S0JnSDdWbVp5RVdqZXNMMTM0M0h1T2NuMWRyclU4RGRrMWxHeE1qc0dYN3dPYWhWUXJEc0VxCm5pZVVBN3dwR2Z5WElBNUU2blR3TTRpQ2VSN0xOQ0crNmdNbzFBbnNJRWc4c216dnBaK29ENFR3T05HbG9EQUQKL0x4WXZZbkwxZk1iSnlpY0Y4VGx6RkZYRTZsVk0yMWM5bTM0dU92VzdmaEtMLytXZFMwWWEvYmRBb0dCQU5KTQp6YlA4bGdIMlhvMUxWVENrSmlxcGQ5Um84aVlFemNCcjB4NHFUWW9LS1FXWitWWjVsTjdBRFZ2Y1RuVHRjbHU1CkR3YkVVS0RUcXFsc3ZzN1FMa1c0WjRHMWFpMjUyZGJSa2J0YS9RRVBSRkFQbTNmbE44RzRwMk93OW51SkdYQ08KU25BSXZRZEd4c3k3SncvdGRWY1JGUDhreldaTE5Zc29YZndRd2ZuckFvR0FLbjE5VWpTd2xMYkFxRGM2VFEvRQpNZnk4SVk1ZHhDay95YjdFYmV2SjJIUFhxUW9veDQvcXc0QndCZ3BXNmdmcHFsc0NzbGRJTXVXVkVPdk40endkCk91bVlRRi9TWHRkNUlSbUtjMXN0bTFpSXh6OFNsSGxyalBqaFB5TmxWcmxCa3o3SktsQkxWNElzRE1Kejg0TGQKQ0tnTGFDTElCY0JJNDBqbTIvREw0Zjg9Ci0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0K",
            "username": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0S0tCk1JSUVlakNDQkNDZ0F3SUJBZ0lJWm5MNHMvaHY3ZjR3Q2dZSUtvWkl6ajBFQXdJd2dZQXhOREF5QmdOVkJBTU0KSzBGd2NHeGxJRmR2Y214a2QybGtaU0JFWlhabGJHOXdaWElnVW1Wc1lYUnBiMjV6SUVOQklDMGdSekl4SmpBawpCZ05WQkFzTUhVRndjR3hsSUVObGNuUnBabWxqWVhScGIyNGdRWFYwYUc5eWFYUjVNUk13RVFZRFZRUUtEQXBCCmNIQnNaU0JKYm1NdU1Rc3dDUVlEVlFRR0V3SlZVekFlRncweU16QTNNVGt3T1RJMU5URmFGdzB5TlRBNE1UY3cKT1RJMU5UQmFNSUdyTVNzd0tRWUtDWkltaVpQeUxHUUJBUXdiYldWeVkyaGhiblF1WTI5dExtTmlZUzV3YjNkbApjbUp2WVhKa01VRXdQd1lEVlFRREREaEJjSEJzWlNCUVlYa2dVR0Y1YldWdWRDQlFjbTlqWlhOemFXNW5PbTFsCmNtTm9ZVzUwTG1OdmJTNWpZbUV1Y0c5M1pYSmliMkZ5WkRFVE1CRUdBMVVFQ3d3S1RUTXlRMXBaVlZWVlJ6RVgKTUJVR0ExVUVDZ3dPUkc5dFpXNXBZeUJWY25OcGJtOHhDekFKQmdOVkJBWVRBa0ZWTUZrd0V3WUhLb1pJemowQwpBUVlJS29aSXpqMERBUWNEUWdBRWFqRC9RWmpiTlpVc3pIZ3pOY3V1dVd6Y3ErV2J1WDBTU1plZUt3VEdMMlduCkRuckJ2cFlZQTVPamdPS1QzNjBXdWptUVJHQXd1eSthU3ZzZjlMQmJWNk9DQWxVd2dnSlJNQXdHQTFVZEV3RUIKL3dRQ01BQXdId1lEVlIwakJCZ3dGb0FVaExhRXpEcUdZbklXV1pUb0dxTzlTTjg2M3dzd1J3WUlLd1lCQlFVSApBUUVFT3pBNU1EY0dDQ3NHQVFVRkJ6QUJoaXRvZEhSd09pOHZiMk56Y0M1aGNIQnNaUzVqYjIwdmIyTnpjREEwCkxXRndjR3hsZDNka2NtTmhNakF4TUlJQkhRWURWUjBnQklJQkZEQ0NBUkF3Z2dFTUJna3Foa2lHOTJOa0JRRXcKZ2Y0d2djTUdDQ3NHQVFVRkJ3SUNNSUcyRElHelVtVnNhV0Z1WTJVZ2IyNGdkR2hwY3lCalpYSjBhV1pwWTJGMApaU0JpZVNCaGJua2djR0Z5ZEhrZ1lYTnpkVzFsY3lCaFkyTmxjSFJoYm1ObElHOW1JSFJvWlNCMGFHVnVJR0Z3CmNHeHBZMkZpYkdVZ2MzUmhibVJoY21RZ2RHVnliWE1nWVc1a0lHTnZibVJwZEdsdmJuTWdiMllnZFhObExDQmoKWlhKMGFXWnBZMkYwWlNCd2IyeHBZM2tnWVc1a0lHTmxjblJwWm1sallYUnBiMjRnY0hKaFkzUnBZMlVnYzNSaApkR1Z0Wlc1MGN5NHdOZ1lJS3dZQkJRVUhBZ0VXS21oMGRIQTZMeTkzZDNjdVlYQndiR1V1WTI5dEwyTmxjblJwClptbGpZWFJsWVhWMGFHOXlhWFI1THpBMkJnTlZIUjhFTHpBdE1DdWdLYUFuaGlWb2RIUndPaTh2WTNKc0xtRncKY0d4bExtTnZiUzloY0hCc1pYZDNaSEpqWVRJdVkzSnNNQjBHQTFVZERnUVdCQlJkUytLbkZmU00vMUJCQXAzZwpMZk5ENTZIbnBqQU9CZ05WSFE4QkFmOEVCQU1DQXlnd1R3WUpLb1pJaHZkalpBWWdCRUlNUUVFME1UWXlPVEpDClF6VkRRVE0xTkRsRlJUaEdSRGMxTXpWQk9EZERNVVpDUVRaRk5FTkZPRFZETlVOR01rSTJSak16UkVFd01VRkcKTXpJek16WkVNMFl3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQU5sRjVzaTJqQTQ5WEpaVmw1dUQ2V214NkRVSQpUSkRyL09wamd1SW90VEprQWlCSUg2Y0Z2Y1lUZWp4dGRqd1ZxOFFFTUlER1dVaGNNcUY5ajdJeFVJcTcrZz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0=",
            "password": "LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0t0tCk1JR0hBZ0VBTUJNR0J5cUdTTTQ5QWdFR0NDcUdTTTQ5QXdFSEJHMHdhd0lCQVFRZ25SU28rSittUEFGdWRBM0MKSDJPdzVKWU1pckNtcDdFV1BsRVYyczI1ZUxTaFJBTkNBQVJxTVA5Qm1OczFsU3pNZURNMXk2NjViTnlyNVp1NQpmUkpKbDU0ckJNWXZaYWNPZXNHK2xoZ0RrNk9BNHBQZnJSYTZPWkJFWURDN0w1cEsreC8wc0Z0WAotLS0tLUVORCBQUklWQVRFIEtFWS0tLS0t"
        }
    }
}