### Get Private Key String Source: https://docs.payermax.com/en/doc-center/developer/config-settings.md Example of the private key string after processing. ```text MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQDM3q3H3xvgpkHW6oS5Ps/+dYetioV2LL4rOz0pnom1JBZvdvjmWg6x1TEV5oIC35knT580lEOfBzsCIo6WBvDQdP3dZFVlc/pzBBXUGDVfJsHG1ATg5wSr5TPOZ3tGgGRC42aMhSANi1Y8FJ6RKlkCFaSTh2Hw13tC/YG8k004hJUVxE4WAyBsbPzS/pah9HiedMR1MH6PilH9Dh2GchE6VpatqL6EE+f3mxqFD5SN/stmAvKGnJB5L7/Gwu/b2UMjoP7yd5HW2w5h06nx/xA3AOQ6ugyXPGRB5iwkMuksbynnzMdJ1ws6yilV7a7jW7N2tDyqOHDgVT14E6YWK16LAgMBAAECggEBAKFLC8yZdixHGPzohHgH4N94jsptjae9kDcfG4dB3y8y60r0gv9wlbMiotOYOHGkssKFaFWQCTESEz4aEOJDMqMcCKaeELGgPuUAqWLjcFmqfNNaJ0EeAMqI2GG/jQmzmbwjpqApS1P+iHUi0rh9e7gta/YOl2hzbgMO7W6XFivQpMIQZQE0WpmpK8cNgev/Xog8ZnHFC6XGUgK+mDVvJMYwmywUPIfLw2fvAZ29QogtqiGeFCJSwAL1VkxryXSjJJBKuoc3cXEcq/hjhz6G9rvd50Lj2kCWMd8iqm/dtFyhDnT5WSFYNPIH0Up9qtqeP+TqgI/SrztAVHgUXVB2ABkCgYEA9cSeHG04Pj3p9ZCeCc6qb6L2kFphb62BhmUSHZ50p6X1KsSMw4wnzbrgrvcSe97iWZNLC536eQVHE5gL4ZjIxylYkp+FuuPHMIDseASR2pNmY2sJ83iTB4C9Y+37+64wBceFiXWBERdJA1t2MnzWLR8ijFfmHQ4KX3DJOhR05qUCgYEA1WYroahttPyvMFHdmcCphF9jhF3U6SGuVndwTtqaGLHzCmSvHxLFyd8ziw/F344IGIn8fIbOqhFAijyliD53kGMiKSUqMH4QeP2RfxGrZqek3f6pvyUtxfjXAh6+7pfL46u0AzmyvcpaGXqQToecCF43MCdbxh7Z3CViGfBcWW8CgYEAvJRcufU4ddHuJoYMLfxNHRIPXV5sa1PYEjaVevKuEkGuaF2eoSF3HU4qvzZIEZJJXnA94jEbEydwjWFapIUmcmOQWhlbdLb4jYgvajwfanc11k04uoAnWVd4eygN9OWIZbbeCUaHfYS/ensAq+bMNJ0yVjvQDzVJ0kfpr84okR0CgYEA mBroNKTx9ZQ6Zu2jT2lVKuY27+1VygpY0ob1xS7psXp9asYTUMm3s0ll2tQWTV9W g+8uya/o9K2xXBcYQgGMhZ0zhzJXXRMuOJ88qt70VgpeaGGRqo4cj0TsNDWoEDag fJoxiC8DKWZnTEvhOihM3mYRXkBfmNr6nIEE6Mo7eP8CgYEA8KqzIk+5On3xmeES fQcLPYiaO9Hlttc7flyIpUL52Og7S1T/ekdiBVIDlePpjRx5H0iCtANyWmQq0Xbf SseQ9SFJ/4DLvDMawhvolmxHs98PNa8xZ9KdXgUNc7RcewUVhK2aLkxUQKNO0lww GGDGWfvePWzlVotJd0bM+a/X4qg= ``` -------------------------------- ### Sample Interface Request Source: https://docs.payermax.com/en/doc-center/acquiring/integration-guide.html This cURL example demonstrates a POST request to the PayerMax order and pay API, showcasing the use of appId and merchantNo. ```shell curl --request POST \ --url https://pay-gate-uat.payermax.com/aggregate-pay/api/gateway/orderAndPay \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --header 'sign: FPFVT3o227JrFRbqu19boZCpVVTF9KznxyRawUmxpfXilHV/0yK46haPhAjNu1hPUMy7Vw/ILXhfzffNm4Fj0apWknlTY9OJxnSoQxS9BTFtc61tn5yV1q69x/kkBl82/qwg+XTJ4fOzy7Mar3VaC1E2PlDA6RkkKBUyNE6RYgsdB+Su7an4+4HVTNAnoe74WyvBgxTLMNg28igBTdqxaO3w/UBY6ObVp7vkqkQGdL1Y+HgmMYaAVwrM3+ALWGId0sJ+YqTY4WJ+0xCRGhaSnybiIjZsQEYyID68WNUfuavDLDsEhaMm/HfQvf5p0R1Ltovp3wwJnEbQcjY458iX5A==' \ --data '{ \ "version": "1.4", \ "keyVersion": "1", \ "requestTime": "2025-05-14T06:29:50.085+00:00", \ "appId": "", \ "merchantNo": "", \ "data": \ }' ``` -------------------------------- ### Get Public Key String Source: https://docs.payermax.com/en/doc-center/developer/config-settings.md Example of the public key string after processing. ```text MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzN6tx98b4KZB1uqEuT7P/nWHrYqFdiy+Kzs9KZ6JtSQWb3b45loOsdUxFeaCAt+ZJ0+fNJRDnwc7AiKOlgbw0HT93WRVZXP6cwQV1Bg1XybBxtQE4OcEq+Uzzmd7RoBkQuNmjIUgDYtWPBSekSpZAhWkk4dh8Nd7Qv2BvJNNOISVFcROFgMgbGz80v6WofR4nnTEdTB+j4pR/Q4dhnIROlaWrai+hBPn95sahQ+Ujf7LZgLyhpyQeS+/xsLv29lDI6D+8neR1tsOYdOp8f8QNwDkOroMlzxkQeYsJDLpLG8p58zHSdcLOsopVe2u41uzdrQ8qjhw4FU9eBOmFiteiwIDAQAB ``` -------------------------------- ### Request Header Example Source: https://docs.payermax.com/en/doc-center/developer/isv-integration.md Example of how to pass merchant_auth_token and other required headers. ```json "headers": { "Accept": "application/json", "merchant_auth_token": "2024071***73504",// Required "sign": "Please refer to Config Settings and Signature Rules: https://docs-v2.payermax.com/en/doc-center/developer/config-settings.html",// Required "Content-Type": "application/json" } ``` -------------------------------- ### Transaction Inquiry/orderQuery API Response Example Source: https://docs.payermax.com/en/doc-center/acquiring/start-integration/related-capabilities/payment-result.md This code snippet shows an example of a successful response from the orderQuery API. ```json { "msg": "Success.", "code": "APPLY_SUCCESS", "data": { "reference": "reference查询和回调返回", "country": "SA", "totalAmount": 10, "outTradeNo": "DEVTest1669616467952", "currency": "SAR", "channelNo": "DMCP000000000177005", "thirdChannelNo": "4ikqJ6ktEqyRawE1dvqb9c", "paymentCode": "2312121212", "tradeToken": "T2024062702289232000001", "completeTime": "2023-10-20T03:28:23.092Z", "paymentDetails": [ { "targetOrg": "*", "cardInfo": { "cardOrg": "VISA", "country": "SA", "cardIdentifierNo": "400555******0001", "cardIdentifierName": "**ngwei" }, "payAmount": 10, "exchangeRate": "1", "paymentMethod": "CARD", "payCurrency": "SAR", "paymentMethodType": "CARD" } ], "fees": { "merFee": { "url": "https://cashier-n-test-new.payermax.com/static/invoice.html?country=AE&merchantNo=P01010113843429×tamp=1687769788704&version=1.0&orderTaxToken=XWXFKKBOPExplK4aX0r7wgiMtiAMLBKObPFdCMpM9HmCq3AAOob%252BcAZOkP27Kh3W", "amount": "100", "currency": "SAR" } }, "status": "SUCCESS", "resultMsg": "" } } ``` -------------------------------- ### Example for Initialization with Preset Theme Source: https://docs.payermax.com/en/doc-center/receipt/front-end-component/customization.md Shows how to apply a preset theme (e.g., 'dark') during the initialization of the card component. ```javascript PMdropin.create('card', { clientKey: '', sessionKey: '', theme: 'dark' }); ``` -------------------------------- ### Payment Result Notification API Response Example Source: https://docs.payermax.com/en/doc-center/acquiring/start-integration/related-capabilities/payment-result.md This is an example of a successful response from the PayerMax payment result notification API. ```json -- Response successful { "msg": "Success", "code": "SUCCESS" # PayerMax relies on the code to determine whether the notification is successful. If it is not SUCCESS, the notification is considered to have failed and PayerMax will resend it. } ``` -------------------------------- ### Example for Initialization with Preset Language Source: https://docs.payermax.com/en/doc-center/receipt/front-end-component/customization.md Demonstrates how to set a preset language during the initialization of the card component. ```javascript PMdropin.create('card', { clientKey: '', sessionKey: '', language: 'zh', ... }); ``` -------------------------------- ### Payment Result Notification API Request Example Source: https://docs.payermax.com/en/doc-center/acquiring/start-integration/related-capabilities/payment-result.md This is an example of a POST request to the PayerMax payment result notification endpoint. ```js curl --request POST \ --url https://pay-gate-uat.payermax.com/collectResultNotifyUrl \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --header 'sign: FPFVT3o227JrFRbqu19boZCpVVTF9KznxyRawUmxpfXilHV/0yK46haPhAjNu1hPUMy7Vw/ILXhfzffNm4Fj0apWknlTY9OJxnSoQxS9BTFtc61tn5yV1q69x/kkBl82/qwg+XTJ4fOzy7Mar3VaC1E2PlDA6RkkKBUyNE6RYgsdB+Su7an4+4HVTNAnoe74WyvBgxTLMNg28igBTdqxaO3w/UBY6ObVp7vkqkQGdL1Y+HgmMYaAVwrM3+ALWGId0sJ+YqTY4WJ+0xCRGhaSnybiIjZsQEYyID68WNUfuavDLDsEhaMm/HfQvf5p0R1Ltovp3wwJnEbQcjY458iX5A==' \ --data '{ \ "code": "APPLY_SUCCESS", \ "msg": "", \ "keyVersion": "1", \ "appId": "3b242b56a8b64274bcc37dac281120e3", \ "merchantNo": "020213827212251", \ "notifyTime": "2022-01-17T09:33:54.540+00:00", \ "notifyType": "PAYMENT", \ "data": { \ "outTradeNo": "P1642410680681", \ "tradeToken": "T2024062702289232000001", \ "totalAmount": 10000, \ "currency": "IDR", \ "country": "ID", \ "status": "SUCCESS", \ "completeTime": "2023-10-20T03:28:23.092Z", \ "paymentDetails": [ \ { \ "paymentMethodType": "WALLET", \ "targetOrg": "DANA", \ "paymentTokenID": "PMTOKEN20230710080439571142400031000" \ } \ ], \ "reference": "020213827524152" \ } \ }' ``` -------------------------------- ### Transaction Inquiry/orderQuery API Request Example Source: https://docs.payermax.com/en/doc-center/acquiring/start-integration/related-capabilities/payment-result.md This code snippet shows an example of a POST request to the orderQuery API for transaction inquiry. ```curl curl --request POST \ --url https://pay-gate-uat.payermax.com/aggregate-pay/api/gateway/orderQuery \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --header 'sign: FPFVT3o227JrFRbqu19boZCpVVTF9KznxyRawUmxpfXilHV/0yK46haPhAjNu1hPUMy7Vw/ILXhfzffNm4Fj0apWknlTY9OJxnSoQxS9BTFtc61tn5yV1q69x/kkBl82/qwg+XTJ4fOzy7Mar3VaC1E2PlDA6RkkKBUyNE6RYgsdB+Su7an4+4HVTNAnoe74WyvBgxTLMNg28igBTdqxaO3w/UBY6ObVp7vkqkQGdL1Y+HgmMYaAVwrM3+ALWGId0sJ+YqTY4WJ+0xCRGhaSnybiIjZsQEYyID68WNUfuavDLDsEhaMm/HfQvf5p0R1Ltovp3wwJnEbQcjY458iX5A==' \ --data '{ \ "version": "1.4", \ "keyVersion": "1", \ "requestTime": "2022-01-17T07:51:15.597+00:00", \ "appId": "a0dddd1f622243cb9aa1b676e808b5f8", \ "merchantNo": "02021382719993", \ "data": { \ "outTradeNo": "P1642410680681" # Merchant order number \ } \ }' ``` -------------------------------- ### Example for Initialization with Custom Localization Source: https://docs.payermax.com/en/doc-center/receipt/front-end-component/customization.md Illustrates how to define custom localization strings for a specific language (e.g., Chinese) during initialization. ```javascript PMdropin.create('card', { clientKey: '', sessionKey: '', customLocalization: { // Add Chinese example 'zh': { loading: '加载中', loadingFailed: '加载失败', refresh: '刷新', confirm: '确定', cancel: '取消', removeCard: '移除卡', removeCardTip: '确定移除当前选中卡吗?', addNewCard: '使用新卡', useSavedCard: '使用已存卡', cardnum: '银行卡号', cardnumHint: 'XXXX XXXX XXXX XXXX', cardnumErrTip: '卡号不正确', cardbinErrTip: { // {cardOrg} Variable fields, no translation required CARD_NOT_SUPPORT: '不支持{cardOrg},请检查卡号或者更换其他卡重试', // {cardType} Variable fields, no translation required CARD_INVALID: '不支持{cardType}的卡类型', CARD_NO_INVALID: '请确认卡号输入是否正确', }, expdate: '过期日期', expdateHint: '月/年', expdateErrTip: '过期日期不正确', cvv: 'CVV/CVC', cvvHint: '123', cvvErrTip: 'CVV/CVC 格式不正确', name: '持卡人姓名', nameHint: 'XX XX', nameErrTip: '姓名格式不正确', saveCardInfoTip: '为下次支付保存信息', // The following are new multilingual fields // Local card additional collection elements buyerEmail: '邮箱', buyerEmailHint: '', buyerEmailErrTip: '格式错误,请复核', buyerFullName: '姓名', buyerFullNameHint: '', buyerFullNameErrTip: '格式错误,请复核', buyerFirstName: '名', buyerFirstNameHint: '', buyerFirstNameErrTip: '格式错误,请复核', buyerLastName: '姓', buyerLastNameHint: '', buyerLastNameErrTip: '格式错误,请复核', // Peru Document(ID) dni: 'DNI', dniHint: '', dniErrTip: '格式错误,请复核', // Argentina Document(ID) dni_cuit: 'DNI/CUIT', dni_cuitHint: '', dni_cuitErrTip: '格式错误,请复核', // South Africa Document(ID) idCard: 'ID', idCardHint: '', idCardErrTip: '格式错误,请复核', // Colombia Document(ID) cc: 'CC', ccHint: '', ccErrTip: '格式错误,请复核', // Mexico Document(ID) curp: 'CURP', curpHint: '', curpErrTip: '格式错误,请复核', // Brazil Document(ID) cpf: 'CPF', cpfHint: '', cpfErrTip: '格式错误,请复核', // Chile/Paraguay/Uruguay Document(ID) ci: 'CI', ciHint: '', ciErrTip: '格式错误,请复核', buyerPhoneNo: '手机号码', buyerPhoneNoHint: '', buyerPhoneNoErrTip: '格式错误,请复核', buyerPhoneNoRegion: '手机区号', buyerPhoneNoRegionHint: '', buyerPhoneNoRegionErrTip: '格式错误,请复核', } }, ... }); ``` -------------------------------- ### Example for Changing Theme Dynamically Source: https://docs.payermax.com/en/doc-center/receipt/front-end-component/customization.md Illustrates how to dynamically switch the theme of the card component after initialization. ```javascript PMdropin.emit('switchTheme', 'dark'); ``` -------------------------------- ### Get Revocation Result - Callback Notification Source: https://docs.payermax.com/en/doc-center/acquiring/start-integration/related-capabilities/auth-capture.md Example of the JSON payload for a cancellation status notification callback. ```json { "keyVersion": "1", "appId": "5f843bfc8cec49c2b8e9e99847325548", "merchantNo": "P01010114418097", "notifyTime": "2023-07-23T00:00:01 +0000", "notifyType": "CANCEL", "data": { "cancelNo": "20230806235954ED7856775040587834005", // PayerMax unique payment request number "requestId":"xxxxx", // requestId accepted for this request "outTradeNo":"xxxxxxxx", "status": "SUCCESS", // SUCCESS FAILED "createdTime": "2023-08-06T23:50:59 +0000", "succeededTime": "2023-08-06T23:50:59 +0000", // Success time "failedTime": null, // Failure time "errorCode": null, // Failure reason "errorMsg": null } } ``` -------------------------------- ### Private Key File Content Source: https://docs.payermax.com/en/doc-center/developer/config-settings.md Example content of the private.key.pem file. ```text -----BEGIN PRIVATE KEY----- MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQDM3q3H3xvgpkHW 6oS5Ps/+dYetioV2LL4rOz0pnom1JBZvdvjmWg6x1TEV5oIC35knT580lEOfBzsC Io6WBvDQdP3dZFVlc/pzBBXUGDVfJsHG1ATg5wSr5TPOZ3tGgGRC42aMhSANi1Y8 FJ6RKlkCFaSTh2Hw13tC/YG8k004hJUVxE4WAyBsbPzS/pah9HiedMR1MH6PilH9 Dh2GchE6VpatqL6EE+f3mxqFD5SN/stmAvKGnJB5L7/Gwu/b2UMjoP7yd5HW2w5h 06nx/xA3AOQ6ugyXPGRB5iwkMuksbynnzMdJ1ws6yilV7a7jW7N2tDyqOHDgVT14 E6YWK16LAgMBAAECggEBAKFLC8yZdixHGPzohHgH4N94jsptjae9kDcfG4dB3y8y 60r0gv9wlbMiotOYOHGkssKFaFWQCTESEz4aEOJDMqMcCKaeELGgPuUAqWLjcFmq fNNaJ0EeAMqI2GG/jQmzmbwjpqApS1P+iHUi0rh9e7gta/YOl2hzbgMO7W6XFivQ pMIQZQE0WpmpK8cNgev/Xog8ZnHFC6XGUgK+mDVvJMYwmywUPIfLw2fvAZ29Qogt qiGeFCJSwAL1VkxryXSjJJBKuoc3cXEcq/hjhz6G9rvd50Lj2kCWMd8iqm/dtFyh DnT5WSFYNPIH0Up9qtqeP+TqgI/SrztAVHgUXVB2ABkCgYEA9cSeHG04Pj3p9ZCe Cc6qb6L2kFphb62BhmUSHZ50p6X1KsSMw4wnzbrgrvcSe97iWZNLC536eQVHE5gL 4ZjIxylYkp+FuuPHMIDseASR2pNmY2sJ83iTB4C9Y+37+64wBceFiXWBERdJA1t2 MnzWLR8ijFfmHQ4KX3DJOhR05qUCgYEA1WYroahttPyvMFHdmcCphF9jhF3U6SGu VndwTtqaGLHzCmSvHxLFyd8ziw/F344IGIn8fIbOqhFAijyliD53kGMiKSUqMH4Q eP2RfxGrZqek3f6pvyUtxfjXAh6+7pfL46u0AzmyvcpaGXqQToecCF43MCdbxh7Z 3CViGfBcWW8CgYEAvJRcufU4ddHuJoYMLfxNHRIPXV5sa1PYEjaVevKuEkGuaF2e oSF3HU4qvzZIEZJJXnA94jEbEydwjWFapIUmcmOQWhlbdLb4jYgvajwfanc11k04 uoAnWVd4eygN9OWIZbbeCUaHfYS/ensAq+bMNJ0yVjvQDzVJ0kfpr84okR0CgYEA mBroNKTx9ZQ6Zu2jT2lVKuY27+1VygpY0ob1xS7psXp9asYTUMm3s0ll2tQWTV9W g+8uya/o9K2xXBcYQgGMhZ0zhzJXXRMuOJ88qt70VgpeaGGRqo4cj0TsNDWoEDag fJoxiC8DKWZnTEvhOihM3mYRXkBfmNr6nIEE6Mo7eP8CgYEA8KqzIk+5On3xmeES fQcLPYiaO9Hlttc7flyIpUL52Og7S1T/ekdiBVIDlePpjRx5H0iCtANyWmQq0Xbf SseQ9SFJ/4DLvDMawhvolmxHs98PNa8xZ9KdXgUNc7RcewUVhK2aLkxUQKNO0lww GGDGWfvePWzlVotJd0bM+a/X4qg= -----END PRIVATE KEY----- ``` -------------------------------- ### Apple Pay Session Initialization and Payment Authorized Callback Source: https://docs.payermax.com/en/doc-center/acquiring/start-integration/integrate-by-payment-method/applepay/direct-api.md Example of initializing an ApplePaySession and handling the onpaymentauthorized callback to get the encrypted token. ```javascript this.session = new window.ApplePaySession(APPLE_PAY_VERSION, this.payRequest); this.session.onpaymentauthorized = (event) => { // event.payment.token is the encrypted token }; ``` -------------------------------- ### Example for Switching Languages Dynamically Source: https://docs.payermax.com/en/doc-center/receipt/front-end-component/customization.md Shows how to dynamically switch the language of the payment form after initialization. ```javascript PMdropin.emit('switchLanguage', 'zh') ``` -------------------------------- ### Apply Drop-in Session API Request Example Source: https://docs.payermax.com/en/doc-center/receipt/tokenization/frontend-component.md This example demonstrates how to initiate an HTTP POST request to the /applyDropinSession API to obtain clientKey and sessionKey for drop-in initialization. ```curl curl --request POST \ --url https://pay-gate-uat.payermax.com/aggregate-pay/api/gateway/applyDropinSession \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --header 'sign: FPFVT3o227JrFRbqu19boZCpVVTF9KznxyRawUmxpfXilHV/0yK46haPhAjNu1hPUMy7Vw/ILXhfzffNm4Fj0a pWknlTY9OJxnSoQxS9BTFtc61tn5yV1q69x/kkBl82/qwg+XTJ4fOzy7Mar3VaC1E2PlDA6RkkKBUyNE6RYgsd B+Su7an4+4HVTNAnoe74WyvBgxTLMNg28igBTdqxaO3w/UBY6ObVp7vkqkQGdL1Y+HgmMYaAVwrM3+ALWGId0s J+YqTY4WJ+0xCRGhaSnybiIjZsQEYyID68WNUfuavDLDsEhaMm/HfQvf5p0R1Ltovp3wwJnEbQcjY458iX5A==' \ --data '{ "version": "1.4", "keyVersion": "1", "requestTime": "2025-05-14T16:30:27.174+08:00", "appId": "test516e8ab74578be8eecd8c4803fbe", "merchantNo": "TEST010117960578", "data": { "country": "MY", # Acquiring country "currency": "MYR", # Order currency "totalAmount":"50", # Order amount "tokenForFutureUse": true, # If true is passed, it means that the token payment request is requested, and the Token protocol will be displayed on the component "userId": "20220622_00086", # User ID, must be unique "componentList":["CARD"] # Specify the payment method available for this order } }' ``` -------------------------------- ### Request Example Source: https://docs.payermax.com/en/doc-center/disbursement/inquiry.md An example JSON payload for requesting disbursement transaction inquiries. ```json { "version": "1.4", "keyVersion": "1", "requestTime": "2025-04-23T10:00:00.500+08:00", "appId": "6666c83333a24666674497c444a33333", "merchantNo": "010213834123456", "data": { "queryBeginTime": "2025-04-23 01:00:00", "queryEndTime": "2025-04-23 02:00:00", "pageSize": 20, "currentPageIndex": 2, "status": "PENDING", "country": "PH", "paymentMethodType": "WALLET", "targetOrg": "GCASH", "clearingRail": "" } } ``` -------------------------------- ### Subscription Configuration Example Source: https://docs.payermax.com/en/doc-center/receipt/subscription/googlepay/subscription-merchant-management.md Configuration object for setting up subscription details, including trial periods and merchant-initiated management URLs. ```json { "trialAmount": { // Trial period amount "amount": 0.99, // Amount must be >= 0. amount=0 indicates a free trial, amount>0 indicates a low-price trial. "currency": "USD" }, "trialDays": 7 // Trial days, must be greater than 0 } }, "mitManagementUrl": "http://your.subscription.com", // Optional "paymentDetail": { "paymentToken": "CPT4f200d278f3a454b9e91c81edc641e2b", // Required "sessionKey": "bdsf8982348974hhf82934bf8239424", // Required "mitType": "SCHEDULED", // Required, MIT type. Use SCHEDULED for periodic deductions, UNSCHEDULED for non-periodic deductions. "tokenForFutureUse": true, // Required, value is true to generate paymentTokenID for future deductions "merchantInitiated": false, // Required, false indicates user participation is required; true indicates merchant-initiated deduction without user involvement "buyerInfo": { "firstName": "Deborah", "lastName": "Swinstead", "email": "your@gmail.com", "phoneNo": "0609 031 114", "address": "Test Address", "city": "Holden Hill", "region": "SA", "zipCode": "5088", "clientIp": "211.52.321.225", "userAgent": "Mozilla/5.0 (iPad; CPU OS 18_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/22E252 [FBAN/FBIOS;FBAV/513.1.0.55.90;FBBV/735017191;FBDV/iPad13,16;FBMD/iPad;FBSN/iPadOS;FBSV/18.4.1;FBSS/2;FBID/tablet;FBLC/en_GB;FBOP/5;FBRV/737247184]" } } } } ```