From ad7a56311dee953bba40d5a49e6b6f9a95306a59 Mon Sep 17 00:00:00 2001 From: AndyClifford <70119888+AndyClifford@users.noreply.github.com> Date: Wed, 18 Oct 2023 23:14:51 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=204331c?= =?UTF-8?q?16926997fb3fc48baa343526d92d147bd0f=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index-data.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index-data.json b/index-data.json index 5eb164d60..3d35b566d 100644 --- a/index-data.json +++ b/index-data.json @@ -1 +1 @@ -{"0":{"href":"/api/account-memberships","path":["API","Account Memberships"],"title":"Account Memberships","description":"Account Memberships model and related endpoints"},"1":{"path":["API","Account Memberships"],"title":"Model","description":"A Member contains extended information about a user's access to an account.","href":"/api/account-memberships#model"},"2":{"path":["API","Account Memberships"],"title":"Attributes","description":"","description":"This endpoint allows you to add or update the membership of a user to an account.","href":"/api/account-memberships#add-member-"},"4":{"path":["API","Account Memberships"],"title":"Attributes","description":"","description":"Types of bank accounts to allow access to different Asset Types.","href":"/api/bank-accounts#bank-account-type-"},"49":{"path":["API","Bank Accounts"],"title":"Bank Account Approval Type Summary Model ","description":"A summary of the Bank Account Approvals for a Bank Account.\nThere is one object per type of Bank Account Approval, which provides a summary of the approval status.","href":"/api/bank-accounts#bank-account-approval-type-summary-model-"},"50":{"path":["API","Bank Accounts"],"title":"Attributes","description":"The Bank Account balance, retrieved using Open Banking flows. The supported Bank Account type is quartz.","href":"/api/bank-accounts#attributes"},"51":{"path":["API","Bank Accounts"],"title":"Bank Account Balance Model ","description":"The Bank Account balance, retrieved using Open Banking flows. The supported Bank Account type is quartz.","href":"/api/bank-accounts#bank-account-balance-model-"},"52":{"path":["API","Bank Accounts"],"title":"Attributes","description":"","description":"This endpoint allows you to retrieve the balance of a Bank Account.","href":"/api/bank-accounts#get-bank-account-balance-"},"62":{"path":["API","Bank Accounts"],"title":"Attributes","description":"No attributes.","href":"/api/bank-accounts#attributes"},"63":{"path":["API","Bank Accounts"],"title":"Errors","description":"| Status | Code | Description |\n| :----- | :------------------------- | :------------------------------------------------------------------------------------------ |\n| 403 | BANK_BALANCE_NOT_SUPPORTED | The [Bank Account Type][] does not support retrieval of a balance using Open Banking flows. |\n| 403 | BANK_AUTHORIZATION_INVALID | The access token to retrieve the [Bank Account Balance][] is no longer valid. |","href":"/api/bank-accounts#errors"},"64":{"path":["API","Bank Accounts"],"title":"Verify Bank Account","description":"Verification codes show up on statements when a user makes withdrawals and deposits. To verify an account, you need to direct the user to make a Top Up or Withdrawal and then check their statement.","href":"/api/bank-accounts#verify-bank-account"},"65":{"path":["API","Bank Accounts"],"title":"Attributes","description":"| Status | Code | Description |\n| :----- | :------------------------------------------ | :------------------------------------------------------------------------------ |\n| 403 | BANK_ACCOUNT_ALREADY_VERIFIED | The bank account is already verified. |\n| 403 | VERIFICATION_CODE_INVALID | The verification code is incorrect. |\n| 403 | BANK_ACCOUNT_VERIFICATION_ATTEMPTS_EXCEEDED | The bank account's maximum failed verification attempts has been reached. |\n| 403 | ACCOUNT_MISMATCH | The top up / withdrawal and the bank account do not belong to the same account. |","href":"/api/bank-accounts#attributes"},"66":{"path":["API","Bank Accounts"],"title":"Errors","description":"| Status | Code | Description |\n| :----- | :------------------------------------------ | :------------------------------------------------------------------------------ |\n| 403 | BANK_ACCOUNT_ALREADY_VERIFIED | The bank account is already verified. |\n| 403 | VERIFICATION_CODE_INVALID | The verification code is incorrect. |\n| 403 | BANK_ACCOUNT_VERIFICATION_ATTEMPTS_EXCEEDED | The bank account's maximum failed verification attempts has been reached. |\n| 403 | ACCOUNT_MISMATCH | The top up / withdrawal and the bank account do not belong to the same account. |","href":"/api/bank-accounts#errors"},"67":{"path":["API","Bank Accounts"],"title":"Verify Bank Authority ","description":"If you're creating new interfaces, please work with Verify Bank Account.","href":"/api/bank-accounts#verify-bank-authority-"},"68":{"path":["API","Bank Accounts"],"title":"Attributes","description":"| Status | Code | Description |\n| :----- | :------------------------------------------ | :------------------------------------------------------------------------------ |\n| 403 | BANK_ACCOUNT_ALREADY_VERIFIED | The bank account is already verified. |\n| 403 | VERIFICATION_CODE_INVALID | The verification code is incorrect. |\n| 403 | BANK_ACCOUNT_VERIFICATION_ATTEMPTS_EXCEEDED | The bank account's maximum failed verification attempts has been reached. |\n| 403 | ACCOUNT_MISMATCH | The top up / withdrawal and the bank account do not belong to the same account. |","href":"/api/bank-accounts#attributes"},"69":{"path":["API","Bank Accounts"],"title":"Errors","description":"| Status | Code | Description |\n| :----- | :------------------------------------------ | :------------------------------------------------------------------------------ |\n| 403 | BANK_ACCOUNT_ALREADY_VERIFIED | The bank account is already verified. |\n| 403 | VERIFICATION_CODE_INVALID | The verification code is incorrect. |\n| 403 | BANK_ACCOUNT_VERIFICATION_ATTEMPTS_EXCEEDED | The bank account's maximum failed verification attempts has been reached. |\n| 403 | ACCOUNT_MISMATCH | The top up / withdrawal and the bank account do not belong to the same account. |","href":"/api/bank-accounts#errors"},"70":{"path":["API","Bank Accounts"],"title":"List Bank Accounts","description":"This endpoint allows you to list the Bank Accounts for an account.","href":"/api/bank-accounts#list-bank-accounts"},"71":{"path":["API","Bank Accounts"],"title":"Attributes","description":"No attributes.","href":"/api/bank-accounts#attributes"},"72":{"path":["API","Bank Accounts"],"title":"List Bank Authorities ","description":"If you're creating new interfaces, please work with List Bank Accounts.","href":"/api/bank-accounts#list-bank-authorities-"},"73":{"path":["API","Bank Accounts"],"title":"Attributes","description":"No attributes.","href":"/api/bank-accounts#attributes"},"74":{"path":["API","Bank Accounts"],"title":"Create Bank Authority ","description":"If you're creating new interfaces, please work with Create Bank Account.","href":"/api/bank-accounts#create-bank-authority-"},"75":{"path":["API","Bank Accounts"],"title":"Attributes","description":"| Status | Code | Description |\n| :----- | :----------------------------------------- | :------------------------------------------------------------------------------------------------------ |\n| 403 | BANK_AUTHORITY_LIMIT_EXCEEDED | The account already has the max amount of bank accounts. |\n| 403 | BANK_AUTHORITIES_FOR_BANK_ACCOUNT_EXCEEDED | There are already two bank accounts for the provided bank account number, which is the maximum allowed. |","href":"/api/bank-accounts#attributes"},"76":{"path":["API","Bank Accounts"],"title":"Errors","description":"| Status | Code | Description |\n| :----- | :----------------------------------------- | :------------------------------------------------------------------------------------------------------ |\n| 403 | BANK_AUTHORITY_LIMIT_EXCEEDED | The account already has the max amount of bank accounts. |\n| 403 | BANK_AUTHORITIES_FOR_BANK_ACCOUNT_EXCEEDED | There are already two bank accounts for the provided bank account number, which is the maximum allowed. |","href":"/api/bank-accounts#errors"},"77":{"path":["API","Bank Accounts"],"title":"Get Bank Authority ","description":"If you're creating new interfaces, please work with Get Bank Account.","href":"/api/bank-accounts#get-bank-authority-"},"78":{"path":["API","Bank Accounts"],"title":"Attributes","description":"No attributes.","href":"/api/bank-accounts#attributes"},"79":{"path":["API","Bank Accounts"],"title":"Errors","description":"| Status | Code | Description |\n| :----- | :----------------------------------------- | :------------------------------------------------------------------------------------------------------ |\n| 403 | BANK_AUTHORITY_LIMIT_EXCEEDED | The account already has the max amount of bank accounts. |\n| 403 | BANK_AUTHORITIES_FOR_BANK_ACCOUNT_EXCEEDED | There are already two bank accounts for the provided bank account number, which is the maximum allowed. |","href":"/api/bank-accounts#errors"},"80":{"href":"/api/businesses","path":["API","Businesses"],"title":"Businesses","description":"Business model and related endpoints."},"81":{"path":["API","Businesses"],"title":"Business Model","description":"| Status | Description | Allowed Reasons |\n| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------- |\n| applied | Identifies businesses that have registered to be activated for the Centrapay service. | |\n| provisioning | Identifies businesses that are in the process of being activated for the Centrapay service. | |\n| active | Identifies businesses that have been activated for Centrapay services successfully (i.e. they have successfully created a Payment Request). | |\n| deactivated | Identifies businesses that have been de-registered for the Centrapay service. | data-quality-issues,change-of-ownership, centrapay-discontinued, duplicate, blocked |\n| on-hold | Identifies businesses that have been placed on hold. | seasonal-business-closure, no-response |","href":"/api/businesses#business-model"},"82":{"path":["API","Businesses"],"title":"Attributes","description":"| Status | Description | Allowed Reasons |\n| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------- |\n| applied | Identifies businesses that have registered to be activated for the Centrapay service. | |\n| provisioning | Identifies businesses that are in the process of being activated for the Centrapay service. | |\n| active | Identifies businesses that have been activated for Centrapay services successfully (i.e. they have successfully created a Payment Request). | |\n| deactivated | Identifies businesses that have been de-registered for the Centrapay service. | data-quality-issues,change-of-ownership, centrapay-discontinued, duplicate, blocked |\n| on-hold | Identifies businesses that have been placed on hold. | seasonal-business-closure, no-response |","href":"/api/businesses#attributes"},"83":{"path":["API","Businesses"],"title":"Onboarding Statuses","description":"| Status | Description | Allowed Reasons |\n| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------- |\n| applied | Identifies businesses that have registered to be activated for the Centrapay service. | |\n| provisioning | Identifies businesses that are in the process of being activated for the Centrapay service. | |\n| active | Identifies businesses that have been activated for Centrapay services successfully (i.e. they have successfully created a Payment Request). | |\n| deactivated | Identifies businesses that have been de-registered for the Centrapay service. | data-quality-issues,change-of-ownership, centrapay-discontinued, duplicate, blocked |\n| on-hold | Identifies businesses that have been placed on hold. | seasonal-business-closure, no-response |","href":"/api/businesses#onboarding-statuses"},"84":{"path":["API","Businesses"],"title":"Onboarding Status Reasons","description":"| Reason | Description |\n| :------------------------ | :--------------------------------------------------------------- |\n| duplicate | The business already exists in the Centrapay system. |\n| data-quality-issues | Data quality issues are preventing the business from onboarding. |\n| no-response | No response has been received from the business. |\n| change-of-ownership | The business has changed ownership. |\n| centrapay-discontinued | The business is no longer using Centrapay. |\n| seasonal-business-closure | The business has closed temporarily. |","href":"/api/businesses#onboarding-status-reasons"},"85":{"path":["API","Businesses"],"title":"Tax Number Model","description":"","description":"This endpoint allows you to create a new Business. If accountId is not provided when creating a Business, then a new org account will be created and associated to the Business.","href":"/api/businesses#create-business-"},"88":{"path":["API","Businesses"],"title":"Attributes","description":"| Status | Code | Description |\n| :----- | :-------------- | :------------------------------------------------------------------------------------------- |\n| 403 | INVALID_ACCOUNT | Account does not exist, is not authorized, is of the wrong type, or is not in the NZ region. |\n| 403 | INVALID_NZBN | The NZBN provided does not match any NZ business. |","href":"/api/businesses#attributes"},"89":{"path":["API","Businesses"],"title":"Errors","description":"| Status | Code | Description |\n| :----- | :-------------- | :------------------------------------------------------------------------------------------- |\n| 403 | INVALID_ACCOUNT | Account does not exist, is not authorized, is of the wrong type, or is not in the NZ region. |\n| 403 | INVALID_NZBN | The NZBN provided does not match any NZ business. |","href":"/api/businesses#errors"},"90":{"path":["API","Businesses"],"title":"Update Business ","description":"This endpoint allows you to update a Business.","href":"/api/businesses#update-business-"},"91":{"path":["API","Businesses"],"title":"Attributes","description":"| Status | Code | Description |\n| :----- | :-------------- | :------------------------------------------------------------------------------------------- |\n| 403 | INVALID_ACCOUNT | Account does not exist, is not authorized, is of the wrong type, or is not in the NZ region. |\n| 403 | INVALID_NZBN | The NZBN provided does not match any NZ business. |","href":"/api/businesses#attributes"},"92":{"path":["API","Businesses"],"title":"Errors","description":"| Status | Code | Description |\n| :----- | :-------------- | :------------------------------------------------------------------------------------------- |\n| 403 | INVALID_ACCOUNT | Account does not exist, is not authorized, is of the wrong type, or is not in the NZ region. |\n| 403 | INVALID_NZBN | The NZBN provided does not match any NZ business. |","href":"/api/businesses#errors"},"93":{"path":["API","Businesses"],"title":"Get Business by Account Id ","description":"This endpoint allows you to retrieve a Business by account id.","href":"/api/businesses#get-business-by-account-id-"},"94":{"path":["API","Businesses"],"title":"Attributes","description":"No attributes.","href":"/api/businesses#attributes"},"95":{"path":["API","Businesses"],"title":"Search NZ Company Register ","description":"This endpoint returns a list of companies that match the queried param on company name, nzbn number or company number. Results are paginated and ordered by relevance.","href":"/api/businesses#search-nz-company-register-"},"96":{"path":["API","Businesses"],"title":"Attributes","description":"No attributes.","href":"/api/businesses#attributes"},"97":{"path":["API","Businesses"],"title":"Get Business Details from NZ Company Register ","description":"This endpoint allows you to retrieve a Business by account id.","href":"/api/businesses#get-business-details-from-nz-company-register-"},"98":{"path":["API","Businesses"],"title":"Attributes","description":"No attributes.","href":"/api/businesses#attributes"},"99":{"path":["API","Businesses"],"title":"Set Business Onboarding Status","description":"This endpoint returns allows you to set the onboarding status of a Business.","href":"/api/businesses#set-business-onboarding-status"},"100":{"path":["API","Businesses"],"title":"Attributes","description":"","href":"/api/businesses#attributes"},"101":{"href":"/api/data-types","path":["API","Data Types"],"title":"Data Types","description":"Introduction to Data Types"},"102":{"path":["API","Data Types"],"title":"Timestamp","description":"A point in time, usually with millisecond precision, represented as an\nISO 8601 date string (eg \"2021-06-11T02:51:11.000Z\"). Timestamps\nare in the UTC timezone as denoted by the \"Z\" suffix.","href":"/api/data-types#timestamp"},"103":{"path":["API","Data Types"],"title":"BigNumber","description":"A number, represented as a String, which can have arbitrary size or precision.\nMost Centrapay APIs that deal with transactable value (ie. assets, payments,\netc) represent the value as BigNumbers. Depending on the context, a BigNumber\nmay be used to represent an integer or a decimal amount.","href":"/api/data-types#bignumber"},"104":{"path":["API","Data Types"],"title":"Monetary","description":"A monetary amount in a currency, represented as an Object. The amount is\nusually an integer in the smallest denomination for the currency (ie cents) but\nmay be a decimal value for some currencies (eg Bitcoin). The currency is\ntypically represented as an ISO 4217 code.","href":"/api/data-types#monetary"},"105":{"path":["API","Data Types"],"title":"Fields","description":"| Name | Type | Description |\n| -------- | ----------------------- | ---------------------------------------------------------- |\n| amount | BigNumber | Value in the currency's smallest denomination (eg. cents). |\n| currency | String | Currency code (eg. \"NZD\"). |","href":"/api/data-types#fields"},"106":{"path":["API","Data Types"],"title":"CRN","description":"A Centrapay Resource Name (CRN) is a colon-delimited String that uniquely\nidentifies any Centrapay resource.","href":"/api/data-types#crn"},"107":{"path":["API","Data Types"],"title":"Location","description":"A location's represented as an Object with properties to denote the location both absolute and\nby locality.","href":"/api/data-types#location"},"108":{"path":["API","Data Types"],"title":"Required Fields","description":"| Name | Type | Description |\n| ------- | ------ | -------------------------------------------------------------------------------------- |\n| street | String | Unit, number, and name of street address. |\n| city | String | City of location. |\n| country | String | ISO 3166 Country code. (eg. \"NZ\"). |","href":"/api/data-types#required-fields"},"109":{"path":["API","Data Types"],"title":"Optional Fields","description":"| Name | Type | Description |\n| -------- | ------ | ------------------------------------------------------------------------------------------------------------- |\n| lat | Number | Absolute latitude coordinate. If you don't provide this, we will automatically infer this from your address. |\n| lng | Number | Absolute longitude coordinate. If you don't provide this, we will automatically infer this from your address. |\n| suburb | String | Suburb of location. |\n| postCode | String | Post or Zip code of location. |\n| state | String | The state or region of the location (eg. \"Auckland\"). |","href":"/api/data-types#optional-fields"},"110":{"path":["API","Data Types"],"title":"PhoneNumber","description":"A phone number, represented in E.123 international notation (eg \"+6421537663\"). We usually use this for receiving text messages.","href":"/api/data-types#phonenumber"},"111":{"href":"/api/http-status-codes","path":["API","HTTP Status Codes"],"title":"HTTP Status Codes","description":"Introduction to HTTP Status Codes"},"112":{"path":["API","HTTP Status Codes"],"title":"200 Ok","description":"Everything's ok. Enjoy your well formed response!","href":"/api/http-status-codes#200-ok"},"113":{"path":["API","HTTP Status Codes"],"title":"400 Malformed Request","description":"This is a syntax failure. When you get these back, your application needs to change the way it\nbehaves in order to get back the resource that you're after.","href":"/api/http-status-codes#400-malformed-request"},"114":{"path":["API","HTTP Status Codes"],"title":"Debugging","description":"API key or JWT is missing, expired or invalid. Go look at our Auth documentation.","href":"/api/http-status-codes#debugging"},"115":{"path":["API","HTTP Status Codes"],"title":"401 Unauthorized","description":"API key or JWT is missing, expired or invalid. Go look at our Auth documentation.","href":"/api/http-status-codes#401-unauthorized"},"116":{"path":["API","HTTP Status Codes"],"title":"403 Forbidden","description":"A 403 status indicates resource missing, permission denied or\nbusiness rule violation.","href":"/api/http-status-codes#403-forbidden"},"117":{"path":["API","HTTP Status Codes"],"title":"Resource missing or permission denied","description":"When the resource exists and access is authorized but some other business rule\nis violated then a 403 is returned. Additional information will be included in\nthe \"message\" field of the response body. The possible values for the \"message\"\nfield will be documented on each endpoint.","href":"/api/http-status-codes#resource-missing-or-permission-denied"},"118":{"path":["API","HTTP Status Codes"],"title":"Business rule violated","description":"When the resource exists and access is authorized but some other business rule\nis violated then a 403 is returned. Additional information will be included in\nthe \"message\" field of the response body. The possible values for the \"message\"\nfield will be documented on each endpoint.","href":"/api/http-status-codes#business-rule-violated"},"119":{"path":["API","HTTP Status Codes"],"title":"404 Route Not Found","description":"Variant on a 400, there's a bug in your code that means you've got a typo in\nthe URL or HTTP method. Please check against examples in our documentation.","href":"/api/http-status-codes#404-route-not-found"},"120":{"path":["API","HTTP Status Codes"],"title":"429 Too Many Requests","description":"Centrapay API rate limits have been exceeded.","href":"/api/http-status-codes#429-too-many-requests"},"121":{"path":["API","HTTP Status Codes"],"title":"Debugging","description":"If you get a 500 level error, something has gone wrong on our end. Retrying\nshould solve the issue. Usually a Centrapay Engineer will investigate but\nbug reports are also welcome at integrations@centrapay.com.","href":"/api/http-status-codes#debugging"},"122":{"path":["API","HTTP Status Codes"],"title":"5xx Server Error","description":"If you get a 500 level error, something has gone wrong on our end. Retrying\nshould solve the issue. Usually a Centrapay Engineer will investigate but\nbug reports are also welcome at integrations@centrapay.com.","href":"/api/http-status-codes#5xx-server-error"},"123":{"href":"/api/introduction","path":["API","Introduction"],"title":"Introduction","description":"Introduction to the API Reference"},"124":{"href":"/api/media-uploads","path":["API","Media Uploads"],"title":"Media Uploads","description":"Media Uploads API Reference"},"125":{"path":["API","Media Uploads"],"title":"Model","description":"","description":"This endpoint allows you to upload a media file to Centrapay. It returns a presigned URL that can be used to download the media file.","href":"/api/media-uploads#create-a-presigned-url-for-media-upload-"},"128":{"path":["API","Media Uploads"],"title":"Attributes","description":"","description":"This endpoint allows you to retrieve the upload location of a media file.","href":"/api/media-uploads#get-media-upload-location-"},"130":{"path":["API","Media Uploads"],"title":"Attributes","description":"No attributes.","href":"/api/media-uploads#attributes"},"131":{"href":"/api/pagination","path":["API","Pagination"],"title":"Pagination","description":"Introduction to Pagination"},"132":{"path":["API","Pagination"],"title":"Model","description":"","href":"/api/pagination#model"},"133":{"path":["API","Pagination"],"title":"Request","description":"","href":"/api/pagination#request"},"134":{"path":["API","Pagination"],"title":"Response","description":"","href":"/api/pagination#response"},"135":{"path":["API","Pagination"],"title":"Example","description":"","href":"/api/pagination#example"},"136":{"href":"/connections/farmlands","path":["Connections","Farmlands","Farmlands Connection"],"title":"Farmlands Connection","description":"Farmlands has partnered with Centrapay to deliver new ways for your business to authorise and process Farmlands Card payments that are faster, easier, and more secure than ever."},"137":{"path":["Connections","Farmlands","Farmlands Connection"],"title":"Solutions","description":"","href":"/connections/farmlands#solutions"},"138":{"href":"/guides/creating-digital-tokens","path":["Reference","Digital Assets","Creating Digital Tokens"],"title":"Creating Digital Tokens","description":"Create custom assets that can be exchanged for products or deals."},"139":{"path":["Reference","Digital Assets","Creating Digital Tokens"],"title":"Token Collection","description":"A collection is a grouping of tokens that share the same attributes and redemption conditions, e.g.","href":"/guides/creating-digital-tokens#token-collection"},"140":{"path":["Reference","Digital Assets","Creating Digital Tokens"],"title":"Redemption Conditions","description":"A redemption condition allows a Merchant to accept tokens from a token collection.\nIt contains redemption details specific to that merchant, e.g. redeemable product SKUs.","href":"/guides/creating-digital-tokens#redemption-conditions"},"141":{"path":["Reference","Digital Assets","Creating Digital Tokens"],"title":"Implementation","description":"","href":"/guides/creating-digital-tokens#implementation"},"142":{"href":"/guides/creating-test-money","path":["Reference","Digital Assets","Creating Test Money"],"title":"Creating Test Money","description":"Use test assets to make testing integrations easier."},"143":{"path":["Reference","Digital Assets","Creating Test Money"],"title":"Via API","description":"To create test dollars via the Centrapay API:","href":"/guides/creating-test-money#via-api"},"144":{"path":["Reference","Digital Assets","Creating Test Money"],"title":"Via Centrapay App","description":"To create test dollars via the Centrapay app:","href":"/guides/creating-test-money#via-centrapay-app"},"145":{"href":"/guides/ecommerce-website","path":["Reference","Merchant Integrations","eCommerce"],"title":"eCommerce","description":"How to redirect users back to an e-commerce website after paying/cancelling a Centrapay Payment Request."},"146":{"href":"/guides/example-oidc-consumer","path":["Reference","App Integrations","Example OIDC Consumer"],"title":"Example OIDC Consumer","description":"How to integrate a browser-based application with the Centrapay OAuth server using an OIDC flow.oidc-client-js) JavaScript library."},"147":{"path":["Reference","App Integrations","Example OIDC Consumer"],"title":"OIDC User Manager Configuration","description":"Oidc.Log.logger = console;","href":"/guides/example-oidc-consumer#oidc-user-manager-configuration"},"148":{"path":["Reference","App Integrations","Example OIDC Consumer"],"title":"Trigger Token Refresh","description":"Manually trigger a token refresh when expired due to user being offline.","href":"/guides/example-oidc-consumer#trigger-token-refresh"},"149":{"path":["Reference","App Integrations","Example OIDC Consumer"],"title":"OIDC Client Logout","description":"async function handleLogoutOidcCallback() {\nconst result = await userManager.signoutRedirectCallback().catch((err) => {\nconsole.log('Something went wrong handling OIDC callback');\n});\n/* Restore previous location stored against state param */\nwindow.location.replace(result.state || '/');\n}","href":"/guides/example-oidc-consumer#oidc-client-logout"},"150":{"href":"/guides/farmlands-card-partner-support","path":["Connections","Farmlands","Support Guide"],"title":"Farmlands Card Partner Support Guide","description":"How to for Farmlands Card Partners and Card Holders to request support from the relevant company and teams to get the help they need."},"151":{"path":["Connections","Farmlands","Support Guide"],"title":"Support for Portal Users","description":"Centrapay Platform is unable to process transactions initiated by Card Partners","href":"/guides/farmlands-card-partner-support#support-for-portal-users"},"152":{"path":["Connections","Farmlands","Support Guide"],"title":"Trouble Shooting","description":"Centrapay Platform is unable to process transactions initiated by Card Partners","href":"/guides/farmlands-card-partner-support#trouble-shooting"},"153":{"path":["Connections","Farmlands","Support Guide"],"title":"Support for POS Integrators","description":"Centrapay Platform is unable to process transactions initiated by Card Partners","href":"/guides/farmlands-card-partner-support#support-for-pos-integrators"},"154":{"path":["Connections","Farmlands","Support Guide"],"title":"SLA Support Level","description":"Centrapay Platform is unable to process transactions initiated by Card Partners","href":"/guides/farmlands-card-partner-support#sla-support-level"},"155":{"path":["Connections","Farmlands","Support Guide"],"title":"P1 - Severe Business Disruption","description":"Centrapay Platform is unable to process transactions initiated by Card Partners","href":"/guides/farmlands-card-partner-support#p1---severe-business-disruption"},"156":{"path":["Connections","Farmlands","Support Guide"],"title":"P2 - Major Business Disruption","description":"Centrapay Platform unable to:","href":"/guides/farmlands-card-partner-support#p2---major-business-disruption"},"157":{"path":["Connections","Farmlands","Support Guide"],"title":"P3 - Minor Business Disruption","description":"Centrapay Platform is operational but suffering performance degradation","href":"/guides/farmlands-card-partner-support#p3---minor-business-disruption"},"158":{"path":["Connections","Farmlands","Support Guide"],"title":"P4 - Adhoc requests as requested by Farmlands","description":"Adhoc requests as requested by Farmlands","href":"/guides/farmlands-card-partner-support#p4---adhoc-requests-as-requested-by-farmlands"},"159":{"href":"/guides/farmlands-portal","path":["Connections","Farmlands","Portal Guide"],"title":"Farmlands Portal Guide","description":"Farmlands Co-operative (Farmands) have partnered with Centrapay Payment Gateway (Centrapay) to deliver a secure web portal for Farmlands Card payments."},"160":{"path":["Connections","Farmlands","Portal Guide"],"title":"Getting Started","description":"The initial setup of your Business and all Branches (referred to as Merchants) will be managed by Farmlands. Farmlands will provide Centrapay with the details of a primary Account Owner for the business who will be loaded by Centrapay. Once setup this account owner will be able login and maintain the other members (users) who have or need access to the Account (see Members).","href":"/guides/farmlands-portal#getting-started"},"161":{"path":["Connections","Farmlands","Portal Guide"],"title":"Business Information","description":"The initial setup of your Business and all Branches (referred to as Merchants) will be managed by Farmlands. Farmlands will provide Centrapay with the details of a primary Account Owner for the business who will be loaded by Centrapay. Once setup this account owner will be able login and maintain the other members (users) who have or need access to the Account (see Members).","href":"/guides/farmlands-portal#business-information"},"162":{"path":["Connections","Farmlands","Portal Guide"],"title":"Registration","description":"Once the Business and Merchants are set up in the Centrapay Portal, users will receive an email from Farmlands inviting them to register for the portal. Users must use the email address provided in the initial setup process to register.","href":"/guides/farmlands-portal#registration"},"163":{"path":["Connections","Farmlands","Portal Guide"],"title":"Log In","description":"The Centrapay Business Portal will store your authenticated session for up to 60 days. During this time, it is not necessary to re-authenticate simply enter your email address to log in. After 60 days, you will be prompted to re-authenticate by entering a Verification Code sent to your registered email address.","href":"/guides/farmlands-portal#log-in"},"164":{"path":["Connections","Farmlands","Portal Guide"],"title":"Dashboard","description":"The Dashboard is an overview of Centrapay Business Account and will be your main screen for generating an authorisation or releasing a previous Farmlands Authorisation.","href":"/guides/farmlands-portal#dashboard"},"165":{"path":["Connections","Farmlands","Portal Guide"],"title":"Farmlands Authorisations","description":"The Centrapay Business Portal provides a real-time authorisation of a Farmlands Card when presented as payment for the purchase of goods or services. It validates that the Card is active and there is a sufficient available balance to process the transaction.","href":"/guides/farmlands-portal#farmlands-authorisations"},"166":{"path":["Connections","Farmlands","Portal Guide"],"title":"Authorisation Responses","description":"| Type | Description |\n| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Authorisation Approved | Funds have now been placed on hold onto the customer account, pending the receipt of the Card Partner’s invoice within the agreed period. |\n| Pending | Card Partner creates the request, but the authorisation is not yet complete. This authorisation is not approved. |\n| Check ID | This response may occur for a high-value sale. This means the transaction is pending authorisation until the Card Partner confirms they have authenticated the customer’s photo ID against the name on the Farmlands Card. |\n| Declined | The authorisation is declined due to an invalid card number, a credit limit exceeded, or Card Partner is unable to verify a high-value transaction. Refer to Farmlands Contact Centre 0800 200 600 |\n| Release | The funds “on hold” are cancelled by Card Partner. This may occur when a Card Partner is unable to fulfil an order. (This is not used for a refund). |","href":"/guides/farmlands-portal#authorisation-responses"},"167":{"path":["Connections","Farmlands","Portal Guide"],"title":"Create a Farmlands Authorisation","description":"Once an approved authorisation has been provided, a full GST invoice must be submitted to Farmlands at vendor.invoices@farmlands.co.nz. The Short Code shown on the Approval screen must be copied and clearly displayed in the PO field of the invoice or where previously confirmed with the Farmlands Team. The Farmlands 9-digit Card number can be provided in addition to the Short Code in another field. Settlement will be completed as per agreed payment terms.","href":"/guides/farmlands-portal#create-a-farmlands-authorisation"},"168":{"path":["Connections","Farmlands","Portal Guide"],"title":"Invoicing & Settlement","description":"Once an approved authorisation has been provided, a full GST invoice must be submitted to Farmlands at vendor.invoices@farmlands.co.nz. The Short Code shown on the Approval screen must be copied and clearly displayed in the PO field of the invoice or where previously confirmed with the Farmlands Team. The Farmlands 9-digit Card number can be provided in addition to the Short Code in another field. Settlement will be completed as per agreed payment terms.","href":"/guides/farmlands-portal#invoicing-&-settlement"},"169":{"path":["Connections","Farmlands","Portal Guide"],"title":"Releasing Funds","description":"The Authorised funds will be held against the Cardholder account for 31 days or until the invoice is received. If the order is cancelled before the invoice is submitted to Farmlands the Authorisation should be released to remove the hold on Cardholder funds.","href":"/guides/farmlands-portal#releasing-funds"},"170":{"path":["Connections","Farmlands","Portal Guide"],"title":"Release Hold on Customer Funds","description":"The Payments page provides a list of transactions that were previously authorised. You can search by using the Authorisation Short Code as the reference. Further search functionality will be available at a later date.","href":"/guides/farmlands-portal#release-hold-on-customer-funds"},"171":{"path":["Connections","Farmlands","Portal Guide"],"title":"Authorisation History","description":"The Payments page provides a list of transactions that were previously authorised. You can search by using the Authorisation Short Code as the reference. Further search functionality will be available at a later date.","href":"/guides/farmlands-portal#authorisation-history"},"172":{"path":["Connections","Farmlands","Portal Guide"],"title":"Setting a Default Merchant","description":"Select your Default Merchant (First-time user) - The default merchant is the branch or outlet that the user normally works from, and which the transaction will be associated with.","href":"/guides/farmlands-portal#setting-a-default-merchant"},"173":{"path":["Connections","Farmlands","Portal Guide"],"title":"Manage My Centrapay Business Account","description":"The Account Owner has access to additional options to manage their Centrapay Business Account, including adding an removing users who have access to complete authorisations on their account.","href":"/guides/farmlands-portal#manage-my-centrapay-business-account"},"174":{"path":["Connections","Farmlands","Portal Guide"],"title":"Merchants","description":"This area relates to the management of new and existing Branches/Locations used for Centrapay’s other payment types e.g gift cards (i.e not Farmlands). Additional merchants added through the Merchants area will not be able to accept Farmlands Card until they are setup by Farmlands.","href":"/guides/farmlands-portal#merchants"},"175":{"path":["Connections","Farmlands","Portal Guide"],"title":"Bank Accounts","description":"This function is only available to businesses who wish to use other Centrapay supported payment methods other than Farmlands Cards. (e.g. Gift Cards or NZD).","href":"/guides/farmlands-portal#bank-accounts"},"176":{"path":["Connections","Farmlands","Portal Guide"],"title":"Members","description":"On the Members page you can manage the members connected to the Centrapay Business Account. An Account Owner can see the list of members and pending invitations and easily add or remove members.","href":"/guides/farmlands-portal#members"},"177":{"path":["Connections","Farmlands","Portal Guide"],"title":"Settings","description":"On the Settings page, you can change your business information. Please note this does not flow through to Farmlands. If you have a change of ownership, please contact Farmlands.","href":"/guides/farmlands-portal#settings"},"178":{"path":["Connections","Farmlands","Portal Guide"],"title":"FAQs","description":"The Support button opens up a form that will allow you to send a support request directly to Centrapay if you have any issues regarding the Centrapay Business Portal.","href":"/guides/farmlands-portal#faqs"},"179":{"path":["Connections","Farmlands","Portal Guide"],"title":"Support","description":"The Support button opens up a form that will allow you to send a support request directly to Centrapay if you have any issues regarding the Centrapay Business Portal.","href":"/guides/farmlands-portal#support"},"180":{"href":"/guides/farmlands-pos-integration","path":["Connections","Farmlands","POS Integration Guide"],"title":"Farmlands POS Integration Guide","description":"Farmlands has partnered with Centrapay to deliver new ways for your business to authorise and process Farmlands Card payments that are faster, easier, and more secure than ever."},"181":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Centrapay Integration Benefits","description":"Integrating with Centrapay streamlines the process for authorising and invoicing Farmlands Card Payments. The integration provides:","href":"/guides/farmlands-pos-integration#centrapay-integration-benefits"},"182":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Payment Flow Overview","description":"Farmlands integrations use Centrapay’s Quick Pay Barcode Flow For Merchants to connect to Cardholders and accept Farmlands transactions.","href":"/guides/farmlands-pos-integration#payment-flow-overview"},"183":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Payment Flow Implementation","description":"The Payment Flow can only be used by existing Farmlands Card Partners. Card Partners must complete the following steps to accept Farmlands transactions.","href":"/guides/farmlands-pos-integration#payment-flow-implementation"},"184":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Merchant Configuration","description":"Each Card Partner site that needs to accept Farmlands Card payments must be set up as a separate Centrapay Merchant with its own Merchant Config. The Merchant Config contains a Farmlands Payment Option that allows the site to accept Farmlands Payments.","href":"/guides/farmlands-pos-integration#merchant-configuration"},"185":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Authentication","description":"Requests to Centrapay’s APIs are authenticated by providing an API key in the X-Api-Key header. API Keys provide enduring access to a single Centrapay account.","href":"/guides/farmlands-pos-integration#authentication"},"186":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Basic Requirements","description":"The Payment Flow needs the following requirements to be met.","href":"/guides/farmlands-pos-integration#basic-requirements"},"187":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Payment Conditions","description":"This extension enables the POS to enforce requiring an ID check for high-risk transactions.","href":"/guides/farmlands-pos-integration#payment-conditions"},"188":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Pre Auth","description":"Farmlands Card Partners must support this extension when there is not an invoice number available at the point of sale or the purchase cannot be fulfilled immediately. This might happen if your stock is not on hand or you have a separate fulfilment process.","href":"/guides/farmlands-pos-integration#pre-auth"},"189":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Cardholder Not Present","description":"Farmlands Card Partners must support this extension if they accept payments when the Cardholder is not physically present when a payment is authorised. For example, to accept phone-based orders or orders where the Farmlands barcode is already known.","href":"/guides/farmlands-pos-integration#cardholder-not-present"},"190":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Validating Farmlands Barcodes","description":"Farmlands Card Partners may optionally decode a scanned Farmlands Barcode to confirm that it is valid and apply Farmlands discounts before creating a Payment Request.","href":"/guides/farmlands-pos-integration#validating-farmlands-barcodes"},"191":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Handling Payment Errors","description":"The POS must follow Centrapay’s guidelines on handling errors when dealing with inconsistencies in Payment Request statuses due to network issues or race conditions.","href":"/guides/farmlands-pos-integration#handling-payment-errors"},"192":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Refunds","description":"Cardholder purchases are refunded by refunding the Payment Request.","href":"/guides/farmlands-pos-integration#refunds"},"193":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Short Codes","description":"Payment Requests have a short code field that is human- and OCR-friendly. When combined with the date or merchant id, short codes can unambiguously identify the correct Payment Request.","href":"/guides/farmlands-pos-integration#short-codes"},"194":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Testing Your Integration","description":"Merchant Integrators need to work with Farmlands and Centrapay to get set up to test payments. Please contact Farmlands to organise full end-to-end testing.","href":"/guides/farmlands-pos-integration#testing-your-integration"},"195":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Certification Requirements","description":"For Centrapay to allow integrations to have production assets turned on, we require partners to complete a Certification Process.","href":"/guides/farmlands-pos-integration#certification-requirements"},"196":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Next Steps","description":"","href":"/guides/farmlands-pos-integration#next-steps"},"197":{"href":"/guides/initiating-refunds","path":["Reference","Merchant Integrations","Initiating Refunds"],"title":"Initiating Refunds","description":"How to issue refunds on the Centrapay payment platform."},"198":{"path":["Reference","Merchant Integrations","Initiating Refunds"],"title":"Refund Idempotency","description":"Refund requests must provide an externalRef that is unique for all refunds made against the Payment Request.","href":"/guides/initiating-refunds#refund-idempotency"},"199":{"path":["Reference","Merchant Integrations","Initiating Refunds"],"title":"Obtaining a Payment Request Id","description":"Refunds are initiated using the identifier for the Payment Request. However, a patron is NOT expected to have this information available.","href":"/guides/initiating-refunds#obtaining-a-payment-request-id"},"200":{"path":["Reference","Merchant Integrations","Initiating Refunds"],"title":"By Short Code","description":"Call the Get Payment Request by Short Code endpoint using the Centrapay short code that the patron obtains from their paper receipt or digital wallet transaction history.","href":"/guides/initiating-refunds#by-short-code"},"201":{"path":["Reference","Merchant Integrations","Initiating Refunds"],"title":"By Transaction Reference","description":"Lookup the transaction within the merchant system using the transaction reference that the patron obtains from their paper receipt or digital wallet transaction history.","href":"/guides/initiating-refunds#by-transaction-reference"},"202":{"path":["Reference","Merchant Integrations","Initiating Refunds"],"title":"Refund Error Handling","description":"There are a number of reasons why refunds can fail. These are documented on the Refund Payment Request endpoint and should be communicated to the user.","href":"/guides/initiating-refunds#refund-error-handling"},"203":{"path":["Reference","Merchant Integrations","Initiating Refunds"],"title":"Multi-Asset Selection","description":"Payment Requests may be paid by multiple assets. When refunding a multi-asset Payment Request, the refunded asset is not controllable by the merchant.","href":"/guides/initiating-refunds#multi-asset-selection"},"204":{"href":"/guides/integrating-third-party-asset","path":["Reference","Digital Assets","Third-party Asset"],"title":"Third-party Asset","description":"Integrate your assets with Centrapay to unlock the potential to transact with terminals, point-of-sales and merchants already connected with the Centrapay Payments Network."},"205":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Defining a Payment Method","description":"We require a way of identifying your asset in order to route payments to the correct asset provider. You must define a payment method namespace, description, and list of supported currencies.","href":"/guides/integrating-third-party-asset#defining-a-payment-method"},"206":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Namespace","description":"The namespace is a unique string to identify your asset. Your namespace must conform to the following properties:","href":"/guides/integrating-third-party-asset#namespace"},"207":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Liveness","description":"The liveness of a payment method can be either main or test. This can be used to accept test assets through Centrapay.","href":"/guides/integrating-third-party-asset#liveness"},"208":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Description","description":"Merchants may look at reports or receipts of past transactions. If there was a payment or refund with your asset against their Payment Request, the description of your asset will be displayed.","href":"/guides/integrating-third-party-asset#description"},"209":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Supported Currencies","description":"Payment Requests have a value determined by the currency a Merchant accepts. You should supply a finite list of three-letter ISO currency codes that is supported by your asset.","href":"/guides/integrating-third-party-asset#supported-currencies"},"210":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Example Definition","description":"| Field | Type | Description | Examples |\n| --------------------------------------------- | ------ | ------------------------------------------------------------------- | ----------------- |\n| Namespace | String | A name used for uniquely identifying the asset as a payment method. | centrapay-example |\n| Description | String | A short human readable description. | Centrapay Money |\n| Supported Currencies | Array | A list of supported currency codes. | NZD, USD |","href":"/guides/integrating-third-party-asset#example-definition"},"211":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Uplink API Requirements","description":"To integrate with Centrapay payments, you must implement the Uplink endpoints. An Uplink is a strategy for performing payment or refund transactions for your Asset. These endpoints will be used in the lifecycle of a payment.","href":"/guides/integrating-third-party-asset#uplink-api-requirements"},"212":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Contact Details","description":"Centrapay requires at least one email address to notify you of integration failures or changes. You may choose to provide us with multiple emails for different priorities of communication.","href":"/guides/integrating-third-party-asset#contact-details"},"213":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Protocol","description":"Each endpoint must use the HTTPS protocol.","href":"/guides/integrating-third-party-asset#protocol"},"214":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"URL","description":"There are no restrictions regarding the provided URLs, so long as they adhere to the specification for the HTTP method, query parameters, request body, response body, and error codes.","href":"/guides/integrating-third-party-asset#url"},"215":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Authentication","description":"Endpoints are authenticated against requests using a JSON Web Token (JWT) issued by Centrapay. The JWT will be sent through the Authorization header in the HTTP Request.","href":"/guides/integrating-third-party-asset#authentication"},"216":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Refund Endpoint","description":"This endpoint is used to refund a Payment Request with status paid. Refunds must be synchronous i.e. the status must be successful or failed.","href":"/guides/integrating-third-party-asset#refund-endpoint"},"217":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Cancel Endpoint","description":"After initiating a transaction with the pay endpoint, the status may be pending. During this time something may have happened to prevent the payment request from being paid (e.g. payment request timeout or merchant network issues).","href":"/guides/integrating-third-party-asset#cancel-endpoint"},"218":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Get Transaction Endpoint","description":"After initiating a payment transaction, the status may be pending. This endpoint will be used to poll the status of the transaction attempt. Polling will continue until either the transaction attempt status is successful or failed, or the Centrapay Payment Request is no longer payable (e.g. it has expired).","href":"/guides/integrating-third-party-asset#get-transaction-endpoint"},"219":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Implementation Checklist","description":"To enable merchants to accept your asset as a payment method, you must complete an integration certification. When you're ready or need assistance/have questions integrating, please contact the Centrapay Engineering team at integrations@centrapay.com.","href":"/guides/integrating-third-party-asset#implementation-checklist"},"220":{"href":"/guides/line-items","path":["Reference","Merchant Integrations","Line Items"],"title":"Line Items","description":"Line items are used to communicate the details of a purchase to a patron."},"221":{"path":["Reference","Merchant Integrations","Line Items"],"title":"Restrictions","description":"Payments via Centrapay can be made against specific line items. This can happen because a user has specifically requested the line items they wish an asset to pay for, or because they were using an asset that can only be redeemed for a specific product, like a Centrapay Token.\nIt's important to communicate to the merchant which line items have been purchased via Centrapay so they are able to make educated decisions when refunding transactions or completing partial payments.\nThis information should also be displayed to a consumer when possible. If any line items were purchased by a specific asset, they will be returned on a Payment Request inside the Asset Totals array.\nIntegrators must iterate through the assetTotals array and display any line items purchased to the merchant. Line items that have been purchased via Centrapay must no longer be able to be purchased using another form of payment.\nThis is especially important for any assets which are only redeemable against specific line items. For example, there could be a case where someone used a digital token to pay for a line item, and then a physical voucher to pay for that same line item, which would mean the second voucher could go towards purchasing something other than the intended line item.","href":"/guides/line-items#restrictions"},"222":{"path":["Reference","Merchant Integrations","Line Items"],"title":"Determining Paid For Line Items","description":"Payments via Centrapay can be made against specific line items. This can happen because a user has specifically requested the line items they wish an asset to pay for, or because they were using an asset that can only be redeemed for a specific product, like a Centrapay Token.\nIt's important to communicate to the merchant which line items have been purchased via Centrapay so they are able to make educated decisions when refunding transactions or completing partial payments.\nThis information should also be displayed to a consumer when possible. If any line items were purchased by a specific asset, they will be returned on a Payment Request inside the Asset Totals array.\nIntegrators must iterate through the assetTotals array and display any line items purchased to the merchant. Line items that have been purchased via Centrapay must no longer be able to be purchased using another form of payment.\nThis is especially important for any assets which are only redeemable against specific line items. For example, there could be a case where someone used a digital token to pay for a line item, and then a physical voucher to pay for that same line item, which would mean the second voucher could go towards purchasing something other than the intended line item.","href":"/guides/line-items#determining-paid-for-line-items"},"223":{"href":"/guides/loading-and-sending-assets","path":["Reference","Digital Assets","Loading and Sending Assets"],"title":"Loading and Sending Assets","description":"Issue and distribute Centrapay Assets such as Giftcards or Tokens to users via SMS."},"224":{"path":["Reference","Digital Assets","Loading and Sending Assets"],"title":"Loading Giftcards","description":"You can load Giftcards by calling our External Assets endpoint. You will need to use the giftcard number for the externalId field. The pin, the issuer and the type need to be on hand too.","href":"/guides/loading-and-sending-assets#loading-giftcards"},"225":{"path":["Reference","Digital Assets","Loading and Sending Assets"],"title":"Sending Assets","description":"You can send Assets such as Tokens and Giftcards by calling our Asset Transfers endpoint. You will need to have the recipient’s phone number for recipientAlias to identify the reciever.","href":"/guides/loading-and-sending-assets#sending-assets"},"226":{"path":["Reference","Digital Assets","Loading and Sending Assets"],"title":"Example: Bulk distribution of Giftcards","description":"Sometimes you might want to load and distribute Giftcards to a large number of recipients. This requires some scripting, but this is not hard. We can do this with:","href":"/guides/loading-and-sending-assets#example:-bulk-distribution-of-giftcards"},"227":{"href":"/guides/merchant-integration-barcode-flow","path":["Reference","Merchant Integrations","Barcode Flow"],"title":"Barcode Flow for Merchants","description":"How merchants can accept payments by scanning a barcode presented by the patron."},"228":{"path":["Reference","Merchant Integrations","Barcode Flow"],"title":"Barcode Flow","description":"The sequence diagram below indicates the expected flow of behavior between the patron, the Point of Sale (POS) and Centrapay.","href":"/guides/merchant-integration-barcode-flow#barcode-flow"},"229":{"path":["Reference","Merchant Integrations","Barcode Flow"],"title":"Quick Pay Flow","description":"Quick Pay is used to immediately confirm the payment without requiring patron approval.","href":"/guides/merchant-integration-barcode-flow#quick-pay-flow"},"230":{"path":["Reference","Merchant Integrations","Barcode Flow"],"title":"Checking Barcode Details","description":"The POS can optionally decode a scanned barcode in order to get further details about a barcode before it creates a Payment Request. For example, the POS can use the barcode provider to apply any provider-specific discounts before creating the Payment Request.","href":"/guides/merchant-integration-barcode-flow#checking-barcode-details"},"231":{"href":"/guides/merchant-integration-error-handling","path":["Reference","Merchant Integrations","Error Handling"],"title":"Merchant Integration Error Handling","description":"How to deal with inconsistencies in Payment Request statuses due to network issues or race conditions."},"232":{"path":["Reference","Merchant Integrations","Error Handling"],"title":"Respect Payment Status","description":"Use the Payment Request status as the source of truth when determining if a Payment Request is paid or expired. For example, if cancelling a Payment Request fails with a REQUEST_PAID error then the terminal should respond accordingly; either by showing the transaction as paid or initiating a void instead.","href":"/guides/merchant-integration-error-handling#respect-payment-status"},"233":{"path":["Reference","Merchant Integrations","Error Handling"],"title":"Void Unknown Status","description":"If the status of a transaction cannot be determined to be successful after retrying, then the Payment Request should be voided. Voiding a Payment Request will cancel the request and trigger any refunds if necessary.","href":"/guides/merchant-integration-error-handling#void-unknown-status"},"234":{"path":["Reference","Merchant Integrations","Error Handling"],"title":"Configure POS Timeout","description":"Payment Requests have a configurable timeout which defaults to 2 minutes. Integrators should make sure that the payment terminal times out 5-10 seconds after the Payment Request.","href":"/guides/merchant-integration-error-handling#configure-pos-timeout"},"235":{"path":["Reference","Merchant Integrations","Error Handling"],"title":"Retry Unknown Errors","description":"When faced with an unknown error while checking the status of a Payment Request, POS integrations should retry at least once before voiding the transaction.","href":"/guides/merchant-integration-error-handling#retry-unknown-errors"},"236":{"path":["Reference","Merchant Integrations","Error Handling"],"title":"Resolving Persistent Errors","description":"For issues that cannot be resolved, please reach out to Centrapay Support at integrations@centrapay.com.","href":"/guides/merchant-integration-error-handling#resolving-persistent-errors"},"237":{"href":"/guides/merchant-integration-qr-code-flow","path":["Reference","Merchant Integrations","QR Code Flow"],"title":"QR Code Flow for Merchants","description":"How merchants can accept payments by presenting a QR code to the patron."},"238":{"href":"/guides/partial-payment-extension","path":["Reference","Merchant Integrations","Partial Payment"],"title":"Partial Payment","description":"A core feature of the Payment Request Protocol that allows integrators to accept a partial transaction through Centrapay."},"239":{"path":["Reference","Merchant Integrations","Partial Payment"],"title":"Partial Payment Flow","description":"A patron asks the merchant to process a specified part of the total basket\namount using Centrapay. This could be due to the patron knowing their Centrapay\nAsset balance wouldn’t cover the complete basket amount or enable them to use a\nset amount of funds from a fixed value asset eg. Gift Card to complete the payment.\nRelated steps in diagram above: 1→2→3→4→5 or 2→3→4→5→6","href":"/guides/partial-payment-extension#partial-payment-flow"},"240":{"path":["Reference","Merchant Integrations","Partial Payment"],"title":"Merchant Driven Scenario","description":"A patron asks the merchant to process a specified part of the total basket\namount using Centrapay. This could be due to the patron knowing their Centrapay\nAsset balance wouldn’t cover the complete basket amount or enable them to use a\nset amount of funds from a fixed value asset eg. Gift Card to complete the payment.\nRelated steps in diagram above: 1→2→3→4→5 or 2→3→4→5→6","href":"/guides/partial-payment-extension#merchant-driven-scenario"},"241":{"path":["Reference","Merchant Integrations","Partial Payment"],"title":"Patron Driven Scenario","description":"A patron using a mobile wallet app may find they lack enough funds to cover the\nfull payment after connecting to a Centrapay Payment Request. Instead of the\ncashier needing to cancel the Payment Request and start over, the patron can\nmake a partial payment with available funds. Once the Centrapay payment is\nsuccessful, the point of sale can take payment for the remaining amount using\nanother method.Related steps in diagram above: 2→3→4→5→6","href":"/guides/partial-payment-extension#patron-driven-scenario"},"242":{"path":["Reference","Merchant Integrations","Partial Payment"],"title":"Hybrid Partial Payment Scenario","description":"A combination of Merchant and App driven partial payments to cater for edge\ncases where needed.Related steps in diagram above: 1→2→3→4→5→6","href":"/guides/partial-payment-extension#hybrid-partial-payment-scenario"},"243":{"path":["Reference","Merchant Integrations","Partial Payment"],"title":"Implementation","description":"When creating a Payment Request,\nopt into partial payment by:","href":"/guides/partial-payment-extension#implementation"},"244":{"path":["Reference","Merchant Integrations","Partial Payment"],"title":"Creating the Payment Request","description":"When creating a Payment Request,\nopt into partial payment by:","href":"/guides/partial-payment-extension#creating-the-payment-request"},"245":{"path":["Reference","Merchant Integrations","Partial Payment"],"title":"Polling for Payment Confirmation","description":"Continue to poll the status of the Payment Request until it is no longer new.\nIf the Payment Request status has been updated to cancelled or expired,\nproceed as you normally would. If the status is paid you need to check the\nremainingAmount property on the Payment Request.","href":"/guides/partial-payment-extension#polling-for-payment-confirmation"},"246":{"path":["Reference","Merchant Integrations","Partial Payment"],"title":"See also","description":"","href":"/guides/partial-payment-extension#see-also"},"247":{"href":"/guides/patron-not-present","path":["Reference","Merchant Integrations","Patron Not Present"],"title":"Patron Not Present","description":"Centrapay’s Patron Not Present extension allows a merchant to complete a payment when the patron is not physically present at the time of payment."},"248":{"href":"/guides/payment-conditions","path":["Reference","Merchant Integrations","Payment Conditions"],"title":"Payment Conditions","description":"Payment Conditions enable integrations to require conditional approval to accept specific Asset Types as payment."},"249":{"path":["Reference","Merchant Integrations","Payment Conditions"],"title":"Implementation","description":"In order to support Payment Conditions, the merchant integration must extend Centrapay's payment protocol by creating the Payment Request with the conditionsEnabled flag set to true.","href":"/guides/payment-conditions#implementation"},"250":{"path":["Reference","Merchant Integrations","Payment Conditions"],"title":"Additional Behaviors","description":"The payment request status must always be polled after accepting or declining a condition as these actions may trigger the additional behaviors below.","href":"/guides/payment-conditions#additional-behaviors"},"251":{"href":"/guides/payment-flows","path":["Reference","Centrapay Experiences","Payment Flows"],"title":"Payment Flows","description":"Centrapay facilitates secure and convenient transactions between customer and merchant devices, with multiple payment flows available for selection. Transact with ease and confidence using Centrapay."},"252":{"path":["Reference","Centrapay Experiences","Payment Flows"],"title":"Merchant-presented","description":"When a merchant terminal has a customer-facing display it can prompt the customer to pay by showing a QR code.","href":"/guides/payment-flows#merchant-presented"},"253":{"path":["Reference","Centrapay Experiences","Payment Flows"],"title":"Dynamic Merchant QR Code","description":"When a merchant terminal is neither capable of displaying nor scanning QR codes or barcodes, such as for unattended vending machines, then a static QR code can be used.","href":"/guides/payment-flows#dynamic-merchant-qr-code"},"254":{"path":["Reference","Centrapay Experiences","Payment Flows"],"title":"Static Merchant QR Code","description":"When a merchant terminal is neither capable of displaying nor scanning QR codes or barcodes, such as for unattended vending machines, then a static QR code can be used.","href":"/guides/payment-flows#static-merchant-qr-code"},"255":{"path":["Reference","Centrapay Experiences","Payment Flows"],"title":"Patron-presented","description":"When a merchant terminal is not capable of displaying a customer-facing QR code, then the payment request can be negotiated with the customer by scanning a barcode or QR code displayed on the customer’s smart device.","href":"/guides/payment-flows#patron-presented"},"256":{"path":["Reference","Centrapay Experiences","Payment Flows"],"title":"Dynamic Patron Barcode","description":"This is a variant on Dynamic Patron Code. If you’ve setup a long lived Centrapay Enabled Barcode then you can use these to pay on behalf of a Customer. You may need to check a Customer’s Photo ID before this goes through.","href":"/guides/payment-flows#dynamic-patron-barcode"},"257":{"path":["Reference","Centrapay Experiences","Payment Flows"],"title":"Static Patron Barcode","description":"This is a variant on Dynamic Patron Code. If you’ve setup a long lived Centrapay Enabled Barcode then you can use these to pay on behalf of a Customer. You may need to check a Customer’s Photo ID before this goes through.","href":"/guides/payment-flows#static-patron-barcode"},"258":{"path":["Reference","Centrapay Experiences","Payment Flows"],"title":"Quick Pay","description":"Quick Pay is used to pay the payment request after it is polled for the first time, without requiring patron approval. Quick Pay can only be triggered using the patron-presented flows, and the patron barcode must be linked to an asset type that allows quick pay.","href":"/guides/payment-flows#quick-pay"},"259":{"href":"/guides/payment-terminals","path":["Reference","Merchant Integrations","Payment Terminal"],"title":"Payment Terminal","description":"How to integrate a payment terminal with Centrapay APIs."},"260":{"path":["Reference","Merchant Integrations","Payment Terminal"],"title":"API Keys","description":"To create API keys, you first need to get in touch with Centrapay to be issued an Integrator Account and an “Account owner” API key. An “Account owner” is a special kind of role that allows you to manage your account.","href":"/guides/payment-terminals#api-keys"},"261":{"path":["Reference","Merchant Integrations","Payment Terminal"],"title":"Merchant Configs","description":"Centrapay Merchant Configs represent an available set of configured payment methods that can be utilized by one or more payment terminals by a Merchant.","href":"/guides/payment-terminals#merchant-configs"},"262":{"path":["Reference","Merchant Integrations","Payment Terminal"],"title":"Example Flows","description":"See Payment Flows for an overview of the API calls required for different payment flows.","href":"/guides/payment-terminals#example-flows"},"263":{"path":["Reference","Merchant Integrations","Payment Terminal"],"title":"Terminal Interface Guidelines","description":"When configuring a terminal with Centrapay there are a few common touch points that require branded assets. Please use the Centrapay Brand Assets when building the UI for these screens.","href":"/guides/payment-terminals#terminal-interface-guidelines"},"264":{"path":["Reference","Merchant Integrations","Payment Terminal"],"title":"Displaying a Button","description":"Illustration of payment terminal displaying Centrapay button","href":"/guides/payment-terminals#displaying-a-button"},"265":{"path":["Reference","Merchant Integrations","Payment Terminal"],"title":"Displaying an Icon","description":"Illustration of payment terminal displaying Centrapay icon","href":"/guides/payment-terminals#displaying-an-icon"},"266":{"path":["Reference","Merchant Integrations","Payment Terminal"],"title":"Displaying QR Codes","description":"Illustration of payment terminal displaying Centrapay QR code","href":"/guides/payment-terminals#displaying-qr-codes"},"267":{"path":["Reference","Merchant Integrations","Payment Terminal"],"title":"Integration Architecture","description":"We strongly recommend Centrapay APIs are invoked from your backend and not directly from your payment terminals. Centralizing the invocation of our APIs from your backend offers the following benefits:","href":"/guides/payment-terminals#integration-architecture"},"268":{"path":["Reference","Merchant Integrations","Payment Terminal"],"title":"Mitigating Network Issues","description":"See the guide on Merchant Integration Error Handling for information on preventing and handling network issues.","href":"/guides/payment-terminals#mitigating-network-issues"},"269":{"href":"/guides/point-of-sale","path":["Reference","Merchant Integrations","Point of Sale"],"title":"Point of Sale","description":"How to integrate a point of sale (POS) terminal with Centrapay APIs."},"270":{"path":["Reference","Merchant Integrations","Point of Sale"],"title":"Core Requirements","description":"Centrapay POS integrations must be able to create, void and refund Payment Requests on behalf of Merchants.","href":"/guides/point-of-sale#core-requirements"},"271":{"path":["Reference","Merchant Integrations","Point of Sale"],"title":"Optional Protocol Extensions","description":"Our payment protocol supports several optional extensions. Please review the extensions below and determine which ones you need for your integration.","href":"/guides/point-of-sale#optional-protocol-extensions"},"272":{"path":["Reference","Merchant Integrations","Point of Sale"],"title":"Contact Us","description":"Contact integrations@centrapay.com to get started with API keys.","href":"/guides/point-of-sale#contact-us"},"273":{"href":"/guides/requesting-payment","path":["Reference","Merchant Integrations","Requesting Payment"],"title":"Requesting Payment","description":"How to request payment on the Centrapay payment platform."},"274":{"path":["Reference","Merchant Integrations","Requesting Payment"],"title":"Connecting With Patrons","description":"The Payment Request object is a core part of Centrapay’s payment protocol. It represents the intention of a merchant to receive payment, defines the amount to be paid, and the acceptable Asset Types for payment.","href":"/guides/requesting-payment#connecting-with-patrons"},"275":{"path":["Reference","Merchant Integrations","Requesting Payment"],"title":"Required Fields","description":"We require compliant integrations to provide the following optional fields when creating a Payment Request.","href":"/guides/requesting-payment#required-fields"},"276":{"path":["Reference","Merchant Integrations","Requesting Payment"],"title":"Short Codes","description":"Payment Requests have a short code that is human- and OCR-friendly. Short codes are recycled every two years. When combined with the date or merchant id, short codes can unambiguously identify the correct Payment Request.","href":"/guides/requesting-payment#short-codes"},"277":{"path":["Reference","Merchant Integrations","Requesting Payment"],"title":"Polling for Payment Confirmation","description":"After connecting with the patron, the POS must poll the Payment Request status every second until the status has changed.","href":"/guides/requesting-payment#polling-for-payment-confirmation"},"278":{"path":["Reference","Merchant Integrations","Requesting Payment"],"title":"Protocol Extensions","description":"Our payment protocol supports several optional extensions. Please review the extensions below and determine which ones you need for your integration.","href":"/guides/requesting-payment#protocol-extensions"},"279":{"path":["Reference","Merchant Integrations","Requesting Payment"],"title":"Handling Payment Errors","description":"Merchant integrations should follow our guidelines in Merchant Integration Error Handling when inconsistencies such as network issues or race conditions occur.","href":"/guides/requesting-payment#handling-payment-errors"},"280":{"href":"/guides/requesting-pre-auth","path":["Reference","Merchant Integrations","Requesting Pre Auth"],"title":"Requesting Pre Auth","description":"Centrapay’s Pre Auth extension allows a patron to authorize payment up to a limit when the actual payment amount is not yet known."},"281":{"path":["Reference","Merchant Integrations","Requesting Pre Auth"],"title":"Restrictions","description":"Pre Auth payments are not supported in all cases.","href":"/guides/requesting-pre-auth#restrictions"},"282":{"path":["Reference","Merchant Integrations","Requesting Pre Auth"],"title":"Pre Auth Flow","description":"Pre Auth payments go through an orthogonal payment flow compared to Centrapay’s standard payment flow.","href":"/guides/requesting-pre-auth#pre-auth-flow"},"283":{"path":["Reference","Merchant Integrations","Requesting Pre Auth"],"title":"Authorize","description":"An authorization is created when the Payment Request is created with the preAuth flag while Requesting Payment.","href":"/guides/requesting-pre-auth#authorize"},"284":{"path":["Reference","Merchant Integrations","Requesting Pre Auth"],"title":"Confirm","description":"Merchants can draw down on authorized funds by making one or more confirmations against an authorized amount. Confirmations must be made with an idempotencyKey in order to prevent merchants from drawing down on authorized funds twice.","href":"/guides/requesting-pre-auth#confirm"},"285":{"path":["Reference","Merchant Integrations","Requesting Pre Auth"],"title":"Release","description":"Authorized funds that have not been confirmed can optionally be released so that the asset holder is granted access to their remaining funds without needing to wait for the authorization to expire.","href":"/guides/requesting-pre-auth#release"},"286":{"path":["Reference","Merchant Integrations","Requesting Pre Auth"],"title":"Expiry","description":"Authorizations automatically expire after 3 months. Any unreleased funds are subsequently released to the Patron.","href":"/guides/requesting-pre-auth#expiry"},"287":{"path":["Reference","Merchant Integrations","Requesting Pre Auth"],"title":"Refund","description":"Refunds can be made against authorizations, confirmations, released authorizations and expired authorizations.","href":"/guides/requesting-pre-auth#refund"},"288":{"path":["Reference","Merchant Integrations","Requesting Pre Auth"],"title":"Void","description":"Voiding a Payment Request will cancel a Payment Request and trigger any refunds necessary. This operation is useful if the POS needs to back out of a transaction due to a network error for example. Voiding can only be used up to 24 hours after the Payment Request was created.","href":"/guides/requesting-pre-auth#void"},"289":{"href":"/guides/third-party-application-payments","path":["Reference","App Integrations","Paying a Payment Request"],"title":"Paying a Payment Request","description":"Integrate your app with Centrapay to pay payment requests on merchant terminals and POS"},"290":{"path":["Reference","App Integrations","Paying a Payment Request"],"title":"Overview","description":"This guide is for a Third-party Asset Provider to enable paying with their\ndigital assets with Centrapay.","href":"/guides/third-party-application-payments#overview"},"291":{"path":["Reference","App Integrations","Paying a Payment Request"],"title":"Authenticating API calls on behalf of users","description":"Third-party applications can make API calls on behalf of users with Centrapay\nAPI keys. All API requests to Centrapay must be made from the integrator’s server.\nCentrapay API keys must also be managed server side and stored as secrets to\nminimize the risk of API keys being compromised.","href":"/guides/third-party-application-payments#authenticating-api-calls-on-behalf-of-users"},"292":{"path":["Reference","App Integrations","Paying a Payment Request"],"title":"Payment Flow Overview","description":"The payment flow below describes how a Third-party Asset Provider should integrate\nwith the Dynamic Merchant QR Code flow to enable digital payments within their\napplication. Below is an overview of the process, followed by a more in-depth\nlook at the integrator’s responsibilities.","href":"/guides/third-party-application-payments#payment-flow-overview"},"293":{"path":["Reference","App Integrations","Paying a Payment Request"],"title":"Payment Flow Implementation","description":"The user will then scan the QR code from inside the app. Valid Centrapay QR Codes\nwill have the format https://app.centrapay.com/pay/{paymentRequestId}. Validate\nthe url by asserting it matches the above format and ignore any malformed QR codes.","href":"/guides/third-party-application-payments#payment-flow-implementation"},"294":{"path":["Reference","App Integrations","Paying a Payment Request"],"title":"Scan Centrapay QR code","description":"The user will then scan the QR code from inside the app. Valid Centrapay QR Codes\nwill have the format https://app.centrapay.com/pay/{paymentRequestId}. Validate\nthe url by asserting it matches the above format and ignore any malformed QR codes.","href":"/guides/third-party-application-payments#scan-centrapay-qr-code"},"295":{"path":["Reference","App Integrations","Paying a Payment Request"],"title":"Get the Payment Request","description":"Once the app has validated the url, use the id of the Payment Request to\ncall the Get Payment Request\nAPI from your server. The returned PaymentRequest model\nwill provide the details needed to determine if the Payment Request can be completed.","href":"/guides/third-party-application-payments#get-the-payment-request"},"296":{"path":["Reference","App Integrations","Paying a Payment Request"],"title":"Pay the Payment Request","description":"If the Payment Request is payable with your Asset then you should display the\nPayment Request details to the user. Some relevant fields to display are:","href":"/guides/third-party-application-payments#pay-the-payment-request"},"297":{"path":["Reference","App Integrations","Paying a Payment Request"],"title":"Payment Extensions","description":"Extensions to the payment protocol can be used to enhance the user's experience\nby providing alternative payment flows.","href":"/guides/third-party-application-payments#payment-extensions"},"298":{"path":["Reference","App Integrations","Paying a Payment Request"],"title":"Partial Pay","description":"If both your app and the merchant support Partial Pay\nthen you may allow the user to pay only a portion of the Payment Request and\nthen pay the remaining amount with an alternative payment method.","href":"/guides/third-party-application-payments#partial-pay"},"299":{"path":["Reference","App Integrations","Paying a Payment Request"],"title":"Testing","description":"Centrapay supports test resources that can be used for integration testing. A test\nmerchant will be provided that accepts test payments. If you have supplied a\ntest third-party asset then this merchant can be configured to accept it as a\npayment method.","href":"/guides/third-party-application-payments#testing"},"300":{"href":"/guides/transaction-reporting","path":["Reference","Merchant Integrations","Transaction Reporting"],"title":"Transaction Reporting","description":"Guidelines on communicating the Asset Types used for payment to the user in any transaction reporting function on the merchant side."}} \ No newline at end of file +{"0":{"href":"/api/account-memberships","path":["API","Account Memberships"],"title":"Account Memberships","description":"Account Memberships model and related endpoints"},"1":{"path":["API","Account Memberships"],"title":"Model","description":"A Member contains extended information about a user's access to an account.","href":"/api/account-memberships#model"},"2":{"path":["API","Account Memberships"],"title":"Attributes","description":"","description":"This endpoint allows you to add or update the membership of a user to an account.","href":"/api/account-memberships#add-member-"},"4":{"path":["API","Account Memberships"],"title":"Attributes","description":"","description":"This endpoint allows you to create a Bank Account Connection Intent.","href":"/api/bank-account-connection-intents#create-bank-account-connection-intent-"},"49":{"path":["API","Bank Account Connection Intents"],"title":"Attributes","description":"","description":"This endpoint allows you to authorize a Bank Account Connection Intent.","href":"/api/bank-account-connection-intents#authorize-bank-account-connection-intent-"},"52":{"path":["API","Bank Account Connection Intents"],"title":"Attributes","description":"","href":"/api/bank-account-connection-intents#attributes"},"53":{"href":"/api/bank-accounts","path":["API","Bank Accounts"],"title":"Bank Accounts","description":"Bank Account model and related endpoints"},"54":{"path":["API","Bank Accounts"],"title":"Bank Account Model","description":"Types of bank accounts to allow access to different Asset Types.","href":"/api/bank-accounts#bank-account-model"},"55":{"path":["API","Bank Accounts"],"title":"Attributes","description":"Types of bank accounts to allow access to different Asset Types.","href":"/api/bank-accounts#attributes"},"56":{"path":["API","Bank Accounts"],"title":"Bank Account Type ","description":"Types of bank accounts to allow access to different Asset Types.","href":"/api/bank-accounts#bank-account-type-"},"57":{"path":["API","Bank Accounts"],"title":"Bank Account Approval Type Summary Model ","description":"A summary of the Bank Account Approvals for a Bank Account.\nThere is one object per type of Bank Account Approval, which provides a summary of the approval status.","href":"/api/bank-accounts#bank-account-approval-type-summary-model-"},"58":{"path":["API","Bank Accounts"],"title":"Attributes","description":"The Bank Account balance, retrieved using Open Banking flows. The supported Bank Account type is quartz.","href":"/api/bank-accounts#attributes"},"59":{"path":["API","Bank Accounts"],"title":"Bank Account Balance Model ","description":"The Bank Account balance, retrieved using Open Banking flows. The supported Bank Account type is quartz.","href":"/api/bank-accounts#bank-account-balance-model-"},"60":{"path":["API","Bank Accounts"],"title":"Attributes","description":"","description":"This endpoint allows you to retrieve the balance of a Bank Account.","href":"/api/bank-accounts#get-bank-account-balance-"},"70":{"path":["API","Bank Accounts"],"title":"Attributes","description":"No attributes.","href":"/api/bank-accounts#attributes"},"71":{"path":["API","Bank Accounts"],"title":"Errors","description":"| Status | Code | Description |\n| :----- | :------------------------- | :------------------------------------------------------------------------------------------ |\n| 403 | BANK_BALANCE_NOT_SUPPORTED | The [Bank Account Type][] does not support retrieval of a balance using Open Banking flows. |\n| 403 | BANK_AUTHORIZATION_INVALID | The access token to retrieve the [Bank Account Balance][] is no longer valid. |","href":"/api/bank-accounts#errors"},"72":{"path":["API","Bank Accounts"],"title":"Verify Bank Account","description":"Verification codes show up on statements when a user makes withdrawals and deposits. To verify an account, you need to direct the user to make a Top Up or Withdrawal and then check their statement.","href":"/api/bank-accounts#verify-bank-account"},"73":{"path":["API","Bank Accounts"],"title":"Attributes","description":"| Status | Code | Description |\n| :----- | :------------------------------------------ | :------------------------------------------------------------------------------ |\n| 403 | BANK_ACCOUNT_ALREADY_VERIFIED | The bank account is already verified. |\n| 403 | VERIFICATION_CODE_INVALID | The verification code is incorrect. |\n| 403 | BANK_ACCOUNT_VERIFICATION_ATTEMPTS_EXCEEDED | The bank account's maximum failed verification attempts has been reached. |\n| 403 | ACCOUNT_MISMATCH | The top up / withdrawal and the bank account do not belong to the same account. |","href":"/api/bank-accounts#attributes"},"74":{"path":["API","Bank Accounts"],"title":"Errors","description":"| Status | Code | Description |\n| :----- | :------------------------------------------ | :------------------------------------------------------------------------------ |\n| 403 | BANK_ACCOUNT_ALREADY_VERIFIED | The bank account is already verified. |\n| 403 | VERIFICATION_CODE_INVALID | The verification code is incorrect. |\n| 403 | BANK_ACCOUNT_VERIFICATION_ATTEMPTS_EXCEEDED | The bank account's maximum failed verification attempts has been reached. |\n| 403 | ACCOUNT_MISMATCH | The top up / withdrawal and the bank account do not belong to the same account. |","href":"/api/bank-accounts#errors"},"75":{"path":["API","Bank Accounts"],"title":"Verify Bank Authority ","description":"If you're creating new interfaces, please work with Verify Bank Account.","href":"/api/bank-accounts#verify-bank-authority-"},"76":{"path":["API","Bank Accounts"],"title":"Attributes","description":"| Status | Code | Description |\n| :----- | :------------------------------------------ | :------------------------------------------------------------------------------ |\n| 403 | BANK_ACCOUNT_ALREADY_VERIFIED | The bank account is already verified. |\n| 403 | VERIFICATION_CODE_INVALID | The verification code is incorrect. |\n| 403 | BANK_ACCOUNT_VERIFICATION_ATTEMPTS_EXCEEDED | The bank account's maximum failed verification attempts has been reached. |\n| 403 | ACCOUNT_MISMATCH | The top up / withdrawal and the bank account do not belong to the same account. |","href":"/api/bank-accounts#attributes"},"77":{"path":["API","Bank Accounts"],"title":"Errors","description":"| Status | Code | Description |\n| :----- | :------------------------------------------ | :------------------------------------------------------------------------------ |\n| 403 | BANK_ACCOUNT_ALREADY_VERIFIED | The bank account is already verified. |\n| 403 | VERIFICATION_CODE_INVALID | The verification code is incorrect. |\n| 403 | BANK_ACCOUNT_VERIFICATION_ATTEMPTS_EXCEEDED | The bank account's maximum failed verification attempts has been reached. |\n| 403 | ACCOUNT_MISMATCH | The top up / withdrawal and the bank account do not belong to the same account. |","href":"/api/bank-accounts#errors"},"78":{"path":["API","Bank Accounts"],"title":"List Bank Accounts","description":"This endpoint allows you to list the Bank Accounts for an account.","href":"/api/bank-accounts#list-bank-accounts"},"79":{"path":["API","Bank Accounts"],"title":"Attributes","description":"No attributes.","href":"/api/bank-accounts#attributes"},"80":{"path":["API","Bank Accounts"],"title":"List Bank Authorities ","description":"If you're creating new interfaces, please work with List Bank Accounts.","href":"/api/bank-accounts#list-bank-authorities-"},"81":{"path":["API","Bank Accounts"],"title":"Attributes","description":"No attributes.","href":"/api/bank-accounts#attributes"},"82":{"path":["API","Bank Accounts"],"title":"Create Bank Authority ","description":"If you're creating new interfaces, please work with Create Bank Account.","href":"/api/bank-accounts#create-bank-authority-"},"83":{"path":["API","Bank Accounts"],"title":"Attributes","description":"| Status | Code | Description |\n| :----- | :----------------------------------------- | :------------------------------------------------------------------------------------------------------ |\n| 403 | BANK_AUTHORITY_LIMIT_EXCEEDED | The account already has the max amount of bank accounts. |\n| 403 | BANK_AUTHORITIES_FOR_BANK_ACCOUNT_EXCEEDED | There are already two bank accounts for the provided bank account number, which is the maximum allowed. |","href":"/api/bank-accounts#attributes"},"84":{"path":["API","Bank Accounts"],"title":"Errors","description":"| Status | Code | Description |\n| :----- | :----------------------------------------- | :------------------------------------------------------------------------------------------------------ |\n| 403 | BANK_AUTHORITY_LIMIT_EXCEEDED | The account already has the max amount of bank accounts. |\n| 403 | BANK_AUTHORITIES_FOR_BANK_ACCOUNT_EXCEEDED | There are already two bank accounts for the provided bank account number, which is the maximum allowed. |","href":"/api/bank-accounts#errors"},"85":{"path":["API","Bank Accounts"],"title":"Get Bank Authority ","description":"If you're creating new interfaces, please work with Get Bank Account.","href":"/api/bank-accounts#get-bank-authority-"},"86":{"path":["API","Bank Accounts"],"title":"Attributes","description":"No attributes.","href":"/api/bank-accounts#attributes"},"87":{"path":["API","Bank Accounts"],"title":"Errors","description":"| Status | Code | Description |\n| :----- | :----------------------------------------- | :------------------------------------------------------------------------------------------------------ |\n| 403 | BANK_AUTHORITY_LIMIT_EXCEEDED | The account already has the max amount of bank accounts. |\n| 403 | BANK_AUTHORITIES_FOR_BANK_ACCOUNT_EXCEEDED | There are already two bank accounts for the provided bank account number, which is the maximum allowed. |","href":"/api/bank-accounts#errors"},"88":{"href":"/api/businesses","path":["API","Businesses"],"title":"Businesses","description":"Business model and related endpoints."},"89":{"path":["API","Businesses"],"title":"Business Model","description":"| Status | Description | Allowed Reasons |\n| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------- |\n| applied | Identifies businesses that have registered to be activated for the Centrapay service. | |\n| provisioning | Identifies businesses that are in the process of being activated for the Centrapay service. | |\n| active | Identifies businesses that have been activated for Centrapay services successfully (i.e. they have successfully created a Payment Request). | |\n| deactivated | Identifies businesses that have been de-registered for the Centrapay service. | data-quality-issues,change-of-ownership, centrapay-discontinued, duplicate, blocked |\n| on-hold | Identifies businesses that have been placed on hold. | seasonal-business-closure, no-response |","href":"/api/businesses#business-model"},"90":{"path":["API","Businesses"],"title":"Attributes","description":"| Status | Description | Allowed Reasons |\n| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------- |\n| applied | Identifies businesses that have registered to be activated for the Centrapay service. | |\n| provisioning | Identifies businesses that are in the process of being activated for the Centrapay service. | |\n| active | Identifies businesses that have been activated for Centrapay services successfully (i.e. they have successfully created a Payment Request). | |\n| deactivated | Identifies businesses that have been de-registered for the Centrapay service. | data-quality-issues,change-of-ownership, centrapay-discontinued, duplicate, blocked |\n| on-hold | Identifies businesses that have been placed on hold. | seasonal-business-closure, no-response |","href":"/api/businesses#attributes"},"91":{"path":["API","Businesses"],"title":"Onboarding Statuses","description":"| Status | Description | Allowed Reasons |\n| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------- |\n| applied | Identifies businesses that have registered to be activated for the Centrapay service. | |\n| provisioning | Identifies businesses that are in the process of being activated for the Centrapay service. | |\n| active | Identifies businesses that have been activated for Centrapay services successfully (i.e. they have successfully created a Payment Request). | |\n| deactivated | Identifies businesses that have been de-registered for the Centrapay service. | data-quality-issues,change-of-ownership, centrapay-discontinued, duplicate, blocked |\n| on-hold | Identifies businesses that have been placed on hold. | seasonal-business-closure, no-response |","href":"/api/businesses#onboarding-statuses"},"92":{"path":["API","Businesses"],"title":"Onboarding Status Reasons","description":"| Reason | Description |\n| :------------------------ | :--------------------------------------------------------------- |\n| duplicate | The business already exists in the Centrapay system. |\n| data-quality-issues | Data quality issues are preventing the business from onboarding. |\n| no-response | No response has been received from the business. |\n| change-of-ownership | The business has changed ownership. |\n| centrapay-discontinued | The business is no longer using Centrapay. |\n| seasonal-business-closure | The business has closed temporarily. |","href":"/api/businesses#onboarding-status-reasons"},"93":{"path":["API","Businesses"],"title":"Tax Number Model","description":"","description":"This endpoint allows you to create a new Business. If accountId is not provided when creating a Business, then a new org account will be created and associated to the Business.","href":"/api/businesses#create-business-"},"96":{"path":["API","Businesses"],"title":"Attributes","description":"| Status | Code | Description |\n| :----- | :-------------- | :------------------------------------------------------------------------------------------- |\n| 403 | INVALID_ACCOUNT | Account does not exist, is not authorized, is of the wrong type, or is not in the NZ region. |\n| 403 | INVALID_NZBN | The NZBN provided does not match any NZ business. |","href":"/api/businesses#attributes"},"97":{"path":["API","Businesses"],"title":"Errors","description":"| Status | Code | Description |\n| :----- | :-------------- | :------------------------------------------------------------------------------------------- |\n| 403 | INVALID_ACCOUNT | Account does not exist, is not authorized, is of the wrong type, or is not in the NZ region. |\n| 403 | INVALID_NZBN | The NZBN provided does not match any NZ business. |","href":"/api/businesses#errors"},"98":{"path":["API","Businesses"],"title":"Update Business ","description":"This endpoint allows you to update a Business.","href":"/api/businesses#update-business-"},"99":{"path":["API","Businesses"],"title":"Attributes","description":"| Status | Code | Description |\n| :----- | :-------------- | :------------------------------------------------------------------------------------------- |\n| 403 | INVALID_ACCOUNT | Account does not exist, is not authorized, is of the wrong type, or is not in the NZ region. |\n| 403 | INVALID_NZBN | The NZBN provided does not match any NZ business. |","href":"/api/businesses#attributes"},"100":{"path":["API","Businesses"],"title":"Errors","description":"| Status | Code | Description |\n| :----- | :-------------- | :------------------------------------------------------------------------------------------- |\n| 403 | INVALID_ACCOUNT | Account does not exist, is not authorized, is of the wrong type, or is not in the NZ region. |\n| 403 | INVALID_NZBN | The NZBN provided does not match any NZ business. |","href":"/api/businesses#errors"},"101":{"path":["API","Businesses"],"title":"Get Business by Account Id ","description":"This endpoint allows you to retrieve a Business by account id.","href":"/api/businesses#get-business-by-account-id-"},"102":{"path":["API","Businesses"],"title":"Attributes","description":"No attributes.","href":"/api/businesses#attributes"},"103":{"path":["API","Businesses"],"title":"Search NZ Company Register ","description":"This endpoint returns a list of companies that match the queried param on company name, nzbn number or company number. Results are paginated and ordered by relevance.","href":"/api/businesses#search-nz-company-register-"},"104":{"path":["API","Businesses"],"title":"Attributes","description":"No attributes.","href":"/api/businesses#attributes"},"105":{"path":["API","Businesses"],"title":"Get Business Details from NZ Company Register ","description":"This endpoint allows you to retrieve a Business by account id.","href":"/api/businesses#get-business-details-from-nz-company-register-"},"106":{"path":["API","Businesses"],"title":"Attributes","description":"No attributes.","href":"/api/businesses#attributes"},"107":{"path":["API","Businesses"],"title":"Set Business Onboarding Status","description":"This endpoint returns allows you to set the onboarding status of a Business.","href":"/api/businesses#set-business-onboarding-status"},"108":{"path":["API","Businesses"],"title":"Attributes","description":"","href":"/api/businesses#attributes"},"109":{"href":"/api/data-types","path":["API","Data Types"],"title":"Data Types","description":"Introduction to Data Types"},"110":{"path":["API","Data Types"],"title":"Timestamp","description":"A point in time, usually with millisecond precision, represented as an\nISO 8601 date string (eg \"2021-06-11T02:51:11.000Z\"). Timestamps\nare in the UTC timezone as denoted by the \"Z\" suffix.","href":"/api/data-types#timestamp"},"111":{"path":["API","Data Types"],"title":"BigNumber","description":"A number, represented as a String, which can have arbitrary size or precision.\nMost Centrapay APIs that deal with transactable value (ie. assets, payments,\netc) represent the value as BigNumbers. Depending on the context, a BigNumber\nmay be used to represent an integer or a decimal amount.","href":"/api/data-types#bignumber"},"112":{"path":["API","Data Types"],"title":"Monetary","description":"A monetary amount in a currency, represented as an Object. The amount is\nusually an integer in the smallest denomination for the currency (ie cents) but\nmay be a decimal value for some currencies (eg Bitcoin). The currency is\ntypically represented as an ISO 4217 code.","href":"/api/data-types#monetary"},"113":{"path":["API","Data Types"],"title":"Fields","description":"| Name | Type | Description |\n| -------- | ----------------------- | ---------------------------------------------------------- |\n| amount | BigNumber | Value in the currency's smallest denomination (eg. cents). |\n| currency | String | Currency code (eg. \"NZD\"). |","href":"/api/data-types#fields"},"114":{"path":["API","Data Types"],"title":"CRN","description":"A Centrapay Resource Name (CRN) is a colon-delimited String that uniquely\nidentifies any Centrapay resource.","href":"/api/data-types#crn"},"115":{"path":["API","Data Types"],"title":"Location","description":"A location's represented as an Object with properties to denote the location both absolute and\nby locality.","href":"/api/data-types#location"},"116":{"path":["API","Data Types"],"title":"Required Fields","description":"| Name | Type | Description |\n| ------- | ------ | -------------------------------------------------------------------------------------- |\n| street | String | Unit, number, and name of street address. |\n| city | String | City of location. |\n| country | String | ISO 3166 Country code. (eg. \"NZ\"). |","href":"/api/data-types#required-fields"},"117":{"path":["API","Data Types"],"title":"Optional Fields","description":"| Name | Type | Description |\n| -------- | ------ | ------------------------------------------------------------------------------------------------------------- |\n| lat | Number | Absolute latitude coordinate. If you don't provide this, we will automatically infer this from your address. |\n| lng | Number | Absolute longitude coordinate. If you don't provide this, we will automatically infer this from your address. |\n| suburb | String | Suburb of location. |\n| postCode | String | Post or Zip code of location. |\n| state | String | The state or region of the location (eg. \"Auckland\"). |","href":"/api/data-types#optional-fields"},"118":{"path":["API","Data Types"],"title":"PhoneNumber","description":"A phone number, represented in E.123 international notation (eg \"+6421537663\"). We usually use this for receiving text messages.","href":"/api/data-types#phonenumber"},"119":{"href":"/api/http-status-codes","path":["API","HTTP Status Codes"],"title":"HTTP Status Codes","description":"Introduction to HTTP Status Codes"},"120":{"path":["API","HTTP Status Codes"],"title":"200 Ok","description":"Everything's ok. Enjoy your well formed response!","href":"/api/http-status-codes#200-ok"},"121":{"path":["API","HTTP Status Codes"],"title":"400 Malformed Request","description":"This is a syntax failure. When you get these back, your application needs to change the way it\nbehaves in order to get back the resource that you're after.","href":"/api/http-status-codes#400-malformed-request"},"122":{"path":["API","HTTP Status Codes"],"title":"Debugging","description":"API key or JWT is missing, expired or invalid. Go look at our Auth documentation.","href":"/api/http-status-codes#debugging"},"123":{"path":["API","HTTP Status Codes"],"title":"401 Unauthorized","description":"API key or JWT is missing, expired or invalid. Go look at our Auth documentation.","href":"/api/http-status-codes#401-unauthorized"},"124":{"path":["API","HTTP Status Codes"],"title":"403 Forbidden","description":"A 403 status indicates resource missing, permission denied or\nbusiness rule violation.","href":"/api/http-status-codes#403-forbidden"},"125":{"path":["API","HTTP Status Codes"],"title":"Resource missing or permission denied","description":"When the resource exists and access is authorized but some other business rule\nis violated then a 403 is returned. Additional information will be included in\nthe \"message\" field of the response body. The possible values for the \"message\"\nfield will be documented on each endpoint.","href":"/api/http-status-codes#resource-missing-or-permission-denied"},"126":{"path":["API","HTTP Status Codes"],"title":"Business rule violated","description":"When the resource exists and access is authorized but some other business rule\nis violated then a 403 is returned. Additional information will be included in\nthe \"message\" field of the response body. The possible values for the \"message\"\nfield will be documented on each endpoint.","href":"/api/http-status-codes#business-rule-violated"},"127":{"path":["API","HTTP Status Codes"],"title":"404 Route Not Found","description":"Variant on a 400, there's a bug in your code that means you've got a typo in\nthe URL or HTTP method. Please check against examples in our documentation.","href":"/api/http-status-codes#404-route-not-found"},"128":{"path":["API","HTTP Status Codes"],"title":"429 Too Many Requests","description":"Centrapay API rate limits have been exceeded.","href":"/api/http-status-codes#429-too-many-requests"},"129":{"path":["API","HTTP Status Codes"],"title":"Debugging","description":"If you get a 500 level error, something has gone wrong on our end. Retrying\nshould solve the issue. Usually a Centrapay Engineer will investigate but\nbug reports are also welcome at integrations@centrapay.com.","href":"/api/http-status-codes#debugging"},"130":{"path":["API","HTTP Status Codes"],"title":"5xx Server Error","description":"If you get a 500 level error, something has gone wrong on our end. Retrying\nshould solve the issue. Usually a Centrapay Engineer will investigate but\nbug reports are also welcome at integrations@centrapay.com.","href":"/api/http-status-codes#5xx-server-error"},"131":{"href":"/api/introduction","path":["API","Introduction"],"title":"Introduction","description":"Introduction to the API Reference"},"132":{"href":"/api/media-uploads","path":["API","Media Uploads"],"title":"Media Uploads","description":"Media Uploads API Reference"},"133":{"path":["API","Media Uploads"],"title":"Model","description":"","description":"This endpoint allows you to upload a media file to Centrapay. It returns a presigned URL that can be used to download the media file.","href":"/api/media-uploads#create-a-presigned-url-for-media-upload-"},"136":{"path":["API","Media Uploads"],"title":"Attributes","description":"","description":"This endpoint allows you to retrieve the upload location of a media file.","href":"/api/media-uploads#get-media-upload-location-"},"138":{"path":["API","Media Uploads"],"title":"Attributes","description":"No attributes.","href":"/api/media-uploads#attributes"},"139":{"href":"/api/pagination","path":["API","Pagination"],"title":"Pagination","description":"Introduction to Pagination"},"140":{"path":["API","Pagination"],"title":"Model","description":"","href":"/api/pagination#model"},"141":{"path":["API","Pagination"],"title":"Request","description":"","href":"/api/pagination#request"},"142":{"path":["API","Pagination"],"title":"Response","description":"","href":"/api/pagination#response"},"143":{"path":["API","Pagination"],"title":"Example","description":"","href":"/api/pagination#example"},"144":{"href":"/connections/farmlands","path":["Connections","Farmlands","Farmlands Connection"],"title":"Farmlands Connection","description":"Farmlands has partnered with Centrapay to deliver new ways for your business to authorise and process Farmlands Card payments that are faster, easier, and more secure than ever."},"145":{"path":["Connections","Farmlands","Farmlands Connection"],"title":"Solutions","description":"","href":"/connections/farmlands#solutions"},"146":{"href":"/guides/creating-digital-tokens","path":["Reference","Digital Assets","Creating Digital Tokens"],"title":"Creating Digital Tokens","description":"Create custom assets that can be exchanged for products or deals."},"147":{"path":["Reference","Digital Assets","Creating Digital Tokens"],"title":"Token Collection","description":"A collection is a grouping of tokens that share the same attributes and redemption conditions, e.g.","href":"/guides/creating-digital-tokens#token-collection"},"148":{"path":["Reference","Digital Assets","Creating Digital Tokens"],"title":"Redemption Conditions","description":"A redemption condition allows a Merchant to accept tokens from a token collection.\nIt contains redemption details specific to that merchant, e.g. redeemable product SKUs.","href":"/guides/creating-digital-tokens#redemption-conditions"},"149":{"path":["Reference","Digital Assets","Creating Digital Tokens"],"title":"Implementation","description":"","href":"/guides/creating-digital-tokens#implementation"},"150":{"href":"/guides/creating-test-money","path":["Reference","Digital Assets","Creating Test Money"],"title":"Creating Test Money","description":"Use test assets to make testing integrations easier."},"151":{"path":["Reference","Digital Assets","Creating Test Money"],"title":"Via API","description":"To create test dollars via the Centrapay API:","href":"/guides/creating-test-money#via-api"},"152":{"path":["Reference","Digital Assets","Creating Test Money"],"title":"Via Centrapay App","description":"To create test dollars via the Centrapay app:","href":"/guides/creating-test-money#via-centrapay-app"},"153":{"href":"/guides/ecommerce-website","path":["Reference","Merchant Integrations","eCommerce"],"title":"eCommerce","description":"How to redirect users back to an e-commerce website after paying/cancelling a Centrapay Payment Request."},"154":{"href":"/guides/example-oidc-consumer","path":["Reference","App Integrations","Example OIDC Consumer"],"title":"Example OIDC Consumer","description":"How to integrate a browser-based application with the Centrapay OAuth server using an OIDC flow.oidc-client-js) JavaScript library."},"155":{"path":["Reference","App Integrations","Example OIDC Consumer"],"title":"OIDC User Manager Configuration","description":"Oidc.Log.logger = console;","href":"/guides/example-oidc-consumer#oidc-user-manager-configuration"},"156":{"path":["Reference","App Integrations","Example OIDC Consumer"],"title":"Trigger Token Refresh","description":"Manually trigger a token refresh when expired due to user being offline.","href":"/guides/example-oidc-consumer#trigger-token-refresh"},"157":{"path":["Reference","App Integrations","Example OIDC Consumer"],"title":"OIDC Client Logout","description":"async function handleLogoutOidcCallback() {\nconst result = await userManager.signoutRedirectCallback().catch((err) => {\nconsole.log('Something went wrong handling OIDC callback');\n});\n/* Restore previous location stored against state param */\nwindow.location.replace(result.state || '/');\n}","href":"/guides/example-oidc-consumer#oidc-client-logout"},"158":{"href":"/guides/farmlands-card-partner-support","path":["Connections","Farmlands","Support Guide"],"title":"Farmlands Card Partner Support Guide","description":"How to for Farmlands Card Partners and Card Holders to request support from the relevant company and teams to get the help they need."},"159":{"path":["Connections","Farmlands","Support Guide"],"title":"Support for Portal Users","description":"Centrapay Platform is unable to process transactions initiated by Card Partners","href":"/guides/farmlands-card-partner-support#support-for-portal-users"},"160":{"path":["Connections","Farmlands","Support Guide"],"title":"Trouble Shooting","description":"Centrapay Platform is unable to process transactions initiated by Card Partners","href":"/guides/farmlands-card-partner-support#trouble-shooting"},"161":{"path":["Connections","Farmlands","Support Guide"],"title":"Support for POS Integrators","description":"Centrapay Platform is unable to process transactions initiated by Card Partners","href":"/guides/farmlands-card-partner-support#support-for-pos-integrators"},"162":{"path":["Connections","Farmlands","Support Guide"],"title":"SLA Support Level","description":"Centrapay Platform is unable to process transactions initiated by Card Partners","href":"/guides/farmlands-card-partner-support#sla-support-level"},"163":{"path":["Connections","Farmlands","Support Guide"],"title":"P1 - Severe Business Disruption","description":"Centrapay Platform is unable to process transactions initiated by Card Partners","href":"/guides/farmlands-card-partner-support#p1---severe-business-disruption"},"164":{"path":["Connections","Farmlands","Support Guide"],"title":"P2 - Major Business Disruption","description":"Centrapay Platform unable to:","href":"/guides/farmlands-card-partner-support#p2---major-business-disruption"},"165":{"path":["Connections","Farmlands","Support Guide"],"title":"P3 - Minor Business Disruption","description":"Centrapay Platform is operational but suffering performance degradation","href":"/guides/farmlands-card-partner-support#p3---minor-business-disruption"},"166":{"path":["Connections","Farmlands","Support Guide"],"title":"P4 - Adhoc requests as requested by Farmlands","description":"Adhoc requests as requested by Farmlands","href":"/guides/farmlands-card-partner-support#p4---adhoc-requests-as-requested-by-farmlands"},"167":{"href":"/guides/farmlands-portal","path":["Connections","Farmlands","Portal Guide"],"title":"Farmlands Portal Guide","description":"Farmlands Co-operative (Farmands) have partnered with Centrapay Payment Gateway (Centrapay) to deliver a secure web portal for Farmlands Card payments."},"168":{"path":["Connections","Farmlands","Portal Guide"],"title":"Getting Started","description":"The initial setup of your Business and all Branches (referred to as Merchants) will be managed by Farmlands. Farmlands will provide Centrapay with the details of a primary Account Owner for the business who will be loaded by Centrapay. Once setup this account owner will be able login and maintain the other members (users) who have or need access to the Account (see Members).","href":"/guides/farmlands-portal#getting-started"},"169":{"path":["Connections","Farmlands","Portal Guide"],"title":"Business Information","description":"The initial setup of your Business and all Branches (referred to as Merchants) will be managed by Farmlands. Farmlands will provide Centrapay with the details of a primary Account Owner for the business who will be loaded by Centrapay. Once setup this account owner will be able login and maintain the other members (users) who have or need access to the Account (see Members).","href":"/guides/farmlands-portal#business-information"},"170":{"path":["Connections","Farmlands","Portal Guide"],"title":"Registration","description":"Once the Business and Merchants are set up in the Centrapay Portal, users will receive an email from Farmlands inviting them to register for the portal. Users must use the email address provided in the initial setup process to register.","href":"/guides/farmlands-portal#registration"},"171":{"path":["Connections","Farmlands","Portal Guide"],"title":"Log In","description":"The Centrapay Business Portal will store your authenticated session for up to 60 days. During this time, it is not necessary to re-authenticate simply enter your email address to log in. After 60 days, you will be prompted to re-authenticate by entering a Verification Code sent to your registered email address.","href":"/guides/farmlands-portal#log-in"},"172":{"path":["Connections","Farmlands","Portal Guide"],"title":"Dashboard","description":"The Dashboard is an overview of Centrapay Business Account and will be your main screen for generating an authorisation or releasing a previous Farmlands Authorisation.","href":"/guides/farmlands-portal#dashboard"},"173":{"path":["Connections","Farmlands","Portal Guide"],"title":"Farmlands Authorisations","description":"The Centrapay Business Portal provides a real-time authorisation of a Farmlands Card when presented as payment for the purchase of goods or services. It validates that the Card is active and there is a sufficient available balance to process the transaction.","href":"/guides/farmlands-portal#farmlands-authorisations"},"174":{"path":["Connections","Farmlands","Portal Guide"],"title":"Authorisation Responses","description":"| Type | Description |\n| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Authorisation Approved | Funds have now been placed on hold onto the customer account, pending the receipt of the Card Partner’s invoice within the agreed period. |\n| Pending | Card Partner creates the request, but the authorisation is not yet complete. This authorisation is not approved. |\n| Check ID | This response may occur for a high-value sale. This means the transaction is pending authorisation until the Card Partner confirms they have authenticated the customer’s photo ID against the name on the Farmlands Card. |\n| Declined | The authorisation is declined due to an invalid card number, a credit limit exceeded, or Card Partner is unable to verify a high-value transaction. Refer to Farmlands Contact Centre 0800 200 600 |\n| Release | The funds “on hold” are cancelled by Card Partner. This may occur when a Card Partner is unable to fulfil an order. (This is not used for a refund). |","href":"/guides/farmlands-portal#authorisation-responses"},"175":{"path":["Connections","Farmlands","Portal Guide"],"title":"Create a Farmlands Authorisation","description":"Once an approved authorisation has been provided, a full GST invoice must be submitted to Farmlands at vendor.invoices@farmlands.co.nz. The Short Code shown on the Approval screen must be copied and clearly displayed in the PO field of the invoice or where previously confirmed with the Farmlands Team. The Farmlands 9-digit Card number can be provided in addition to the Short Code in another field. Settlement will be completed as per agreed payment terms.","href":"/guides/farmlands-portal#create-a-farmlands-authorisation"},"176":{"path":["Connections","Farmlands","Portal Guide"],"title":"Invoicing & Settlement","description":"Once an approved authorisation has been provided, a full GST invoice must be submitted to Farmlands at vendor.invoices@farmlands.co.nz. The Short Code shown on the Approval screen must be copied and clearly displayed in the PO field of the invoice or where previously confirmed with the Farmlands Team. The Farmlands 9-digit Card number can be provided in addition to the Short Code in another field. Settlement will be completed as per agreed payment terms.","href":"/guides/farmlands-portal#invoicing-&-settlement"},"177":{"path":["Connections","Farmlands","Portal Guide"],"title":"Releasing Funds","description":"The Authorised funds will be held against the Cardholder account for 31 days or until the invoice is received. If the order is cancelled before the invoice is submitted to Farmlands the Authorisation should be released to remove the hold on Cardholder funds.","href":"/guides/farmlands-portal#releasing-funds"},"178":{"path":["Connections","Farmlands","Portal Guide"],"title":"Release Hold on Customer Funds","description":"The Payments page provides a list of transactions that were previously authorised. You can search by using the Authorisation Short Code as the reference. Further search functionality will be available at a later date.","href":"/guides/farmlands-portal#release-hold-on-customer-funds"},"179":{"path":["Connections","Farmlands","Portal Guide"],"title":"Authorisation History","description":"The Payments page provides a list of transactions that were previously authorised. You can search by using the Authorisation Short Code as the reference. Further search functionality will be available at a later date.","href":"/guides/farmlands-portal#authorisation-history"},"180":{"path":["Connections","Farmlands","Portal Guide"],"title":"Setting a Default Merchant","description":"Select your Default Merchant (First-time user) - The default merchant is the branch or outlet that the user normally works from, and which the transaction will be associated with.","href":"/guides/farmlands-portal#setting-a-default-merchant"},"181":{"path":["Connections","Farmlands","Portal Guide"],"title":"Manage My Centrapay Business Account","description":"The Account Owner has access to additional options to manage their Centrapay Business Account, including adding an removing users who have access to complete authorisations on their account.","href":"/guides/farmlands-portal#manage-my-centrapay-business-account"},"182":{"path":["Connections","Farmlands","Portal Guide"],"title":"Merchants","description":"This area relates to the management of new and existing Branches/Locations used for Centrapay’s other payment types e.g gift cards (i.e not Farmlands). Additional merchants added through the Merchants area will not be able to accept Farmlands Card until they are setup by Farmlands.","href":"/guides/farmlands-portal#merchants"},"183":{"path":["Connections","Farmlands","Portal Guide"],"title":"Bank Accounts","description":"This function is only available to businesses who wish to use other Centrapay supported payment methods other than Farmlands Cards. (e.g. Gift Cards or NZD).","href":"/guides/farmlands-portal#bank-accounts"},"184":{"path":["Connections","Farmlands","Portal Guide"],"title":"Members","description":"On the Members page you can manage the members connected to the Centrapay Business Account. An Account Owner can see the list of members and pending invitations and easily add or remove members.","href":"/guides/farmlands-portal#members"},"185":{"path":["Connections","Farmlands","Portal Guide"],"title":"Settings","description":"On the Settings page, you can change your business information. Please note this does not flow through to Farmlands. If you have a change of ownership, please contact Farmlands.","href":"/guides/farmlands-portal#settings"},"186":{"path":["Connections","Farmlands","Portal Guide"],"title":"FAQs","description":"The Support button opens up a form that will allow you to send a support request directly to Centrapay if you have any issues regarding the Centrapay Business Portal.","href":"/guides/farmlands-portal#faqs"},"187":{"path":["Connections","Farmlands","Portal Guide"],"title":"Support","description":"The Support button opens up a form that will allow you to send a support request directly to Centrapay if you have any issues regarding the Centrapay Business Portal.","href":"/guides/farmlands-portal#support"},"188":{"href":"/guides/farmlands-pos-integration","path":["Connections","Farmlands","POS Integration Guide"],"title":"Farmlands POS Integration Guide","description":"Farmlands has partnered with Centrapay to deliver new ways for your business to authorise and process Farmlands Card payments that are faster, easier, and more secure than ever."},"189":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Centrapay Integration Benefits","description":"Integrating with Centrapay streamlines the process for authorising and invoicing Farmlands Card Payments. The integration provides:","href":"/guides/farmlands-pos-integration#centrapay-integration-benefits"},"190":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Payment Flow Overview","description":"Farmlands integrations use Centrapay’s Quick Pay Barcode Flow For Merchants to connect to Cardholders and accept Farmlands transactions.","href":"/guides/farmlands-pos-integration#payment-flow-overview"},"191":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Payment Flow Implementation","description":"The Payment Flow can only be used by existing Farmlands Card Partners. Card Partners must complete the following steps to accept Farmlands transactions.","href":"/guides/farmlands-pos-integration#payment-flow-implementation"},"192":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Merchant Configuration","description":"Each Card Partner site that needs to accept Farmlands Card payments must be set up as a separate Centrapay Merchant with its own Merchant Config. The Merchant Config contains a Farmlands Payment Option that allows the site to accept Farmlands Payments.","href":"/guides/farmlands-pos-integration#merchant-configuration"},"193":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Authentication","description":"Requests to Centrapay’s APIs are authenticated by providing an API key in the X-Api-Key header. API Keys provide enduring access to a single Centrapay account.","href":"/guides/farmlands-pos-integration#authentication"},"194":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Basic Requirements","description":"The Payment Flow needs the following requirements to be met.","href":"/guides/farmlands-pos-integration#basic-requirements"},"195":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Payment Conditions","description":"This extension enables the POS to enforce requiring an ID check for high-risk transactions.","href":"/guides/farmlands-pos-integration#payment-conditions"},"196":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Pre Auth","description":"Farmlands Card Partners must support this extension when there is not an invoice number available at the point of sale or the purchase cannot be fulfilled immediately. This might happen if your stock is not on hand or you have a separate fulfilment process.","href":"/guides/farmlands-pos-integration#pre-auth"},"197":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Cardholder Not Present","description":"Farmlands Card Partners must support this extension if they accept payments when the Cardholder is not physically present when a payment is authorised. For example, to accept phone-based orders or orders where the Farmlands barcode is already known.","href":"/guides/farmlands-pos-integration#cardholder-not-present"},"198":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Validating Farmlands Barcodes","description":"Farmlands Card Partners may optionally decode a scanned Farmlands Barcode to confirm that it is valid and apply Farmlands discounts before creating a Payment Request.","href":"/guides/farmlands-pos-integration#validating-farmlands-barcodes"},"199":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Handling Payment Errors","description":"The POS must follow Centrapay’s guidelines on handling errors when dealing with inconsistencies in Payment Request statuses due to network issues or race conditions.","href":"/guides/farmlands-pos-integration#handling-payment-errors"},"200":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Refunds","description":"Cardholder purchases are refunded by refunding the Payment Request.","href":"/guides/farmlands-pos-integration#refunds"},"201":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Short Codes","description":"Payment Requests have a short code field that is human- and OCR-friendly. When combined with the date or merchant id, short codes can unambiguously identify the correct Payment Request.","href":"/guides/farmlands-pos-integration#short-codes"},"202":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Testing Your Integration","description":"Merchant Integrators need to work with Farmlands and Centrapay to get set up to test payments. Please contact Farmlands to organise full end-to-end testing.","href":"/guides/farmlands-pos-integration#testing-your-integration"},"203":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Certification Requirements","description":"For Centrapay to allow integrations to have production assets turned on, we require partners to complete a Certification Process.","href":"/guides/farmlands-pos-integration#certification-requirements"},"204":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Next Steps","description":"","href":"/guides/farmlands-pos-integration#next-steps"},"205":{"href":"/guides/initiating-refunds","path":["Reference","Merchant Integrations","Initiating Refunds"],"title":"Initiating Refunds","description":"How to issue refunds on the Centrapay payment platform."},"206":{"path":["Reference","Merchant Integrations","Initiating Refunds"],"title":"Refund Idempotency","description":"Refund requests must provide an externalRef that is unique for all refunds made against the Payment Request.","href":"/guides/initiating-refunds#refund-idempotency"},"207":{"path":["Reference","Merchant Integrations","Initiating Refunds"],"title":"Obtaining a Payment Request Id","description":"Refunds are initiated using the identifier for the Payment Request. However, a patron is NOT expected to have this information available.","href":"/guides/initiating-refunds#obtaining-a-payment-request-id"},"208":{"path":["Reference","Merchant Integrations","Initiating Refunds"],"title":"By Short Code","description":"Call the Get Payment Request by Short Code endpoint using the Centrapay short code that the patron obtains from their paper receipt or digital wallet transaction history.","href":"/guides/initiating-refunds#by-short-code"},"209":{"path":["Reference","Merchant Integrations","Initiating Refunds"],"title":"By Transaction Reference","description":"Lookup the transaction within the merchant system using the transaction reference that the patron obtains from their paper receipt or digital wallet transaction history.","href":"/guides/initiating-refunds#by-transaction-reference"},"210":{"path":["Reference","Merchant Integrations","Initiating Refunds"],"title":"Refund Error Handling","description":"There are a number of reasons why refunds can fail. These are documented on the Refund Payment Request endpoint and should be communicated to the user.","href":"/guides/initiating-refunds#refund-error-handling"},"211":{"path":["Reference","Merchant Integrations","Initiating Refunds"],"title":"Multi-Asset Selection","description":"Payment Requests may be paid by multiple assets. When refunding a multi-asset Payment Request, the refunded asset is not controllable by the merchant.","href":"/guides/initiating-refunds#multi-asset-selection"},"212":{"href":"/guides/integrating-third-party-asset","path":["Reference","Digital Assets","Third-party Asset"],"title":"Third-party Asset","description":"Integrate your assets with Centrapay to unlock the potential to transact with terminals, point-of-sales and merchants already connected with the Centrapay Payments Network."},"213":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Defining a Payment Method","description":"We require a way of identifying your asset in order to route payments to the correct asset provider. You must define a payment method namespace, description, and list of supported currencies.","href":"/guides/integrating-third-party-asset#defining-a-payment-method"},"214":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Namespace","description":"The namespace is a unique string to identify your asset. Your namespace must conform to the following properties:","href":"/guides/integrating-third-party-asset#namespace"},"215":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Liveness","description":"The liveness of a payment method can be either main or test. This can be used to accept test assets through Centrapay.","href":"/guides/integrating-third-party-asset#liveness"},"216":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Description","description":"Merchants may look at reports or receipts of past transactions. If there was a payment or refund with your asset against their Payment Request, the description of your asset will be displayed.","href":"/guides/integrating-third-party-asset#description"},"217":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Supported Currencies","description":"Payment Requests have a value determined by the currency a Merchant accepts. You should supply a finite list of three-letter ISO currency codes that is supported by your asset.","href":"/guides/integrating-third-party-asset#supported-currencies"},"218":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Example Definition","description":"| Field | Type | Description | Examples |\n| --------------------------------------------- | ------ | ------------------------------------------------------------------- | ----------------- |\n| Namespace | String | A name used for uniquely identifying the asset as a payment method. | centrapay-example |\n| Description | String | A short human readable description. | Centrapay Money |\n| Supported Currencies | Array | A list of supported currency codes. | NZD, USD |","href":"/guides/integrating-third-party-asset#example-definition"},"219":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Uplink API Requirements","description":"To integrate with Centrapay payments, you must implement the Uplink endpoints. An Uplink is a strategy for performing payment or refund transactions for your Asset. These endpoints will be used in the lifecycle of a payment.","href":"/guides/integrating-third-party-asset#uplink-api-requirements"},"220":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Contact Details","description":"Centrapay requires at least one email address to notify you of integration failures or changes. You may choose to provide us with multiple emails for different priorities of communication.","href":"/guides/integrating-third-party-asset#contact-details"},"221":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Protocol","description":"Each endpoint must use the HTTPS protocol.","href":"/guides/integrating-third-party-asset#protocol"},"222":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"URL","description":"There are no restrictions regarding the provided URLs, so long as they adhere to the specification for the HTTP method, query parameters, request body, response body, and error codes.","href":"/guides/integrating-third-party-asset#url"},"223":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Authentication","description":"Endpoints are authenticated against requests using a JSON Web Token (JWT) issued by Centrapay. The JWT will be sent through the Authorization header in the HTTP Request.","href":"/guides/integrating-third-party-asset#authentication"},"224":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Refund Endpoint","description":"This endpoint is used to refund a Payment Request with status paid. Refunds must be synchronous i.e. the status must be successful or failed.","href":"/guides/integrating-third-party-asset#refund-endpoint"},"225":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Cancel Endpoint","description":"After initiating a transaction with the pay endpoint, the status may be pending. During this time something may have happened to prevent the payment request from being paid (e.g. payment request timeout or merchant network issues).","href":"/guides/integrating-third-party-asset#cancel-endpoint"},"226":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Get Transaction Endpoint","description":"After initiating a payment transaction, the status may be pending. This endpoint will be used to poll the status of the transaction attempt. Polling will continue until either the transaction attempt status is successful or failed, or the Centrapay Payment Request is no longer payable (e.g. it has expired).","href":"/guides/integrating-third-party-asset#get-transaction-endpoint"},"227":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Implementation Checklist","description":"To enable merchants to accept your asset as a payment method, you must complete an integration certification. When you're ready or need assistance/have questions integrating, please contact the Centrapay Engineering team at integrations@centrapay.com.","href":"/guides/integrating-third-party-asset#implementation-checklist"},"228":{"href":"/guides/line-items","path":["Reference","Merchant Integrations","Line Items"],"title":"Line Items","description":"Line items are used to communicate the details of a purchase to a patron."},"229":{"path":["Reference","Merchant Integrations","Line Items"],"title":"Restrictions","description":"Payments via Centrapay can be made against specific line items. This can happen because a user has specifically requested the line items they wish an asset to pay for, or because they were using an asset that can only be redeemed for a specific product, like a Centrapay Token.\nIt's important to communicate to the merchant which line items have been purchased via Centrapay so they are able to make educated decisions when refunding transactions or completing partial payments.\nThis information should also be displayed to a consumer when possible. If any line items were purchased by a specific asset, they will be returned on a Payment Request inside the Asset Totals array.\nIntegrators must iterate through the assetTotals array and display any line items purchased to the merchant. Line items that have been purchased via Centrapay must no longer be able to be purchased using another form of payment.\nThis is especially important for any assets which are only redeemable against specific line items. For example, there could be a case where someone used a digital token to pay for a line item, and then a physical voucher to pay for that same line item, which would mean the second voucher could go towards purchasing something other than the intended line item.","href":"/guides/line-items#restrictions"},"230":{"path":["Reference","Merchant Integrations","Line Items"],"title":"Determining Paid For Line Items","description":"Payments via Centrapay can be made against specific line items. This can happen because a user has specifically requested the line items they wish an asset to pay for, or because they were using an asset that can only be redeemed for a specific product, like a Centrapay Token.\nIt's important to communicate to the merchant which line items have been purchased via Centrapay so they are able to make educated decisions when refunding transactions or completing partial payments.\nThis information should also be displayed to a consumer when possible. If any line items were purchased by a specific asset, they will be returned on a Payment Request inside the Asset Totals array.\nIntegrators must iterate through the assetTotals array and display any line items purchased to the merchant. Line items that have been purchased via Centrapay must no longer be able to be purchased using another form of payment.\nThis is especially important for any assets which are only redeemable against specific line items. For example, there could be a case where someone used a digital token to pay for a line item, and then a physical voucher to pay for that same line item, which would mean the second voucher could go towards purchasing something other than the intended line item.","href":"/guides/line-items#determining-paid-for-line-items"},"231":{"href":"/guides/loading-and-sending-assets","path":["Reference","Digital Assets","Loading and Sending Assets"],"title":"Loading and Sending Assets","description":"Issue and distribute Centrapay Assets such as Giftcards or Tokens to users via SMS."},"232":{"path":["Reference","Digital Assets","Loading and Sending Assets"],"title":"Loading Giftcards","description":"You can load Giftcards by calling our External Assets endpoint. You will need to use the giftcard number for the externalId field. The pin, the issuer and the type need to be on hand too.","href":"/guides/loading-and-sending-assets#loading-giftcards"},"233":{"path":["Reference","Digital Assets","Loading and Sending Assets"],"title":"Sending Assets","description":"You can send Assets such as Tokens and Giftcards by calling our Asset Transfers endpoint. You will need to have the recipient’s phone number for recipientAlias to identify the reciever.","href":"/guides/loading-and-sending-assets#sending-assets"},"234":{"path":["Reference","Digital Assets","Loading and Sending Assets"],"title":"Example: Bulk distribution of Giftcards","description":"Sometimes you might want to load and distribute Giftcards to a large number of recipients. This requires some scripting, but this is not hard. We can do this with:","href":"/guides/loading-and-sending-assets#example:-bulk-distribution-of-giftcards"},"235":{"href":"/guides/merchant-integration-barcode-flow","path":["Reference","Merchant Integrations","Barcode Flow"],"title":"Barcode Flow for Merchants","description":"How merchants can accept payments by scanning a barcode presented by the patron."},"236":{"path":["Reference","Merchant Integrations","Barcode Flow"],"title":"Barcode Flow","description":"The sequence diagram below indicates the expected flow of behavior between the patron, the Point of Sale (POS) and Centrapay.","href":"/guides/merchant-integration-barcode-flow#barcode-flow"},"237":{"path":["Reference","Merchant Integrations","Barcode Flow"],"title":"Quick Pay Flow","description":"Quick Pay is used to immediately confirm the payment without requiring patron approval.","href":"/guides/merchant-integration-barcode-flow#quick-pay-flow"},"238":{"path":["Reference","Merchant Integrations","Barcode Flow"],"title":"Checking Barcode Details","description":"The POS can optionally decode a scanned barcode in order to get further details about a barcode before it creates a Payment Request. For example, the POS can use the barcode provider to apply any provider-specific discounts before creating the Payment Request.","href":"/guides/merchant-integration-barcode-flow#checking-barcode-details"},"239":{"href":"/guides/merchant-integration-error-handling","path":["Reference","Merchant Integrations","Error Handling"],"title":"Merchant Integration Error Handling","description":"How to deal with inconsistencies in Payment Request statuses due to network issues or race conditions."},"240":{"path":["Reference","Merchant Integrations","Error Handling"],"title":"Respect Payment Status","description":"Use the Payment Request status as the source of truth when determining if a Payment Request is paid or expired. For example, if cancelling a Payment Request fails with a REQUEST_PAID error then the terminal should respond accordingly; either by showing the transaction as paid or initiating a void instead.","href":"/guides/merchant-integration-error-handling#respect-payment-status"},"241":{"path":["Reference","Merchant Integrations","Error Handling"],"title":"Void Unknown Status","description":"If the status of a transaction cannot be determined to be successful after retrying, then the Payment Request should be voided. Voiding a Payment Request will cancel the request and trigger any refunds if necessary.","href":"/guides/merchant-integration-error-handling#void-unknown-status"},"242":{"path":["Reference","Merchant Integrations","Error Handling"],"title":"Configure POS Timeout","description":"Payment Requests have a configurable timeout which defaults to 2 minutes. Integrators should make sure that the payment terminal times out 5-10 seconds after the Payment Request.","href":"/guides/merchant-integration-error-handling#configure-pos-timeout"},"243":{"path":["Reference","Merchant Integrations","Error Handling"],"title":"Retry Unknown Errors","description":"When faced with an unknown error while checking the status of a Payment Request, POS integrations should retry at least once before voiding the transaction.","href":"/guides/merchant-integration-error-handling#retry-unknown-errors"},"244":{"path":["Reference","Merchant Integrations","Error Handling"],"title":"Resolving Persistent Errors","description":"For issues that cannot be resolved, please reach out to Centrapay Support at integrations@centrapay.com.","href":"/guides/merchant-integration-error-handling#resolving-persistent-errors"},"245":{"href":"/guides/merchant-integration-qr-code-flow","path":["Reference","Merchant Integrations","QR Code Flow"],"title":"QR Code Flow for Merchants","description":"How merchants can accept payments by presenting a QR code to the patron."},"246":{"href":"/guides/partial-payment-extension","path":["Reference","Merchant Integrations","Partial Payment"],"title":"Partial Payment","description":"A core feature of the Payment Request Protocol that allows integrators to accept a partial transaction through Centrapay."},"247":{"path":["Reference","Merchant Integrations","Partial Payment"],"title":"Partial Payment Flow","description":"A patron asks the merchant to process a specified part of the total basket\namount using Centrapay. This could be due to the patron knowing their Centrapay\nAsset balance wouldn’t cover the complete basket amount or enable them to use a\nset amount of funds from a fixed value asset eg. Gift Card to complete the payment.\nRelated steps in diagram above: 1→2→3→4→5 or 2→3→4→5→6","href":"/guides/partial-payment-extension#partial-payment-flow"},"248":{"path":["Reference","Merchant Integrations","Partial Payment"],"title":"Merchant Driven Scenario","description":"A patron asks the merchant to process a specified part of the total basket\namount using Centrapay. This could be due to the patron knowing their Centrapay\nAsset balance wouldn’t cover the complete basket amount or enable them to use a\nset amount of funds from a fixed value asset eg. Gift Card to complete the payment.\nRelated steps in diagram above: 1→2→3→4→5 or 2→3→4→5→6","href":"/guides/partial-payment-extension#merchant-driven-scenario"},"249":{"path":["Reference","Merchant Integrations","Partial Payment"],"title":"Patron Driven Scenario","description":"A patron using a mobile wallet app may find they lack enough funds to cover the\nfull payment after connecting to a Centrapay Payment Request. Instead of the\ncashier needing to cancel the Payment Request and start over, the patron can\nmake a partial payment with available funds. Once the Centrapay payment is\nsuccessful, the point of sale can take payment for the remaining amount using\nanother method.Related steps in diagram above: 2→3→4→5→6","href":"/guides/partial-payment-extension#patron-driven-scenario"},"250":{"path":["Reference","Merchant Integrations","Partial Payment"],"title":"Hybrid Partial Payment Scenario","description":"A combination of Merchant and App driven partial payments to cater for edge\ncases where needed.Related steps in diagram above: 1→2→3→4→5→6","href":"/guides/partial-payment-extension#hybrid-partial-payment-scenario"},"251":{"path":["Reference","Merchant Integrations","Partial Payment"],"title":"Implementation","description":"When creating a Payment Request,\nopt into partial payment by:","href":"/guides/partial-payment-extension#implementation"},"252":{"path":["Reference","Merchant Integrations","Partial Payment"],"title":"Creating the Payment Request","description":"When creating a Payment Request,\nopt into partial payment by:","href":"/guides/partial-payment-extension#creating-the-payment-request"},"253":{"path":["Reference","Merchant Integrations","Partial Payment"],"title":"Polling for Payment Confirmation","description":"Continue to poll the status of the Payment Request until it is no longer new.\nIf the Payment Request status has been updated to cancelled or expired,\nproceed as you normally would. If the status is paid you need to check the\nremainingAmount property on the Payment Request.","href":"/guides/partial-payment-extension#polling-for-payment-confirmation"},"254":{"path":["Reference","Merchant Integrations","Partial Payment"],"title":"See also","description":"","href":"/guides/partial-payment-extension#see-also"},"255":{"href":"/guides/patron-not-present","path":["Reference","Merchant Integrations","Patron Not Present"],"title":"Patron Not Present","description":"Centrapay’s Patron Not Present extension allows a merchant to complete a payment when the patron is not physically present at the time of payment."},"256":{"href":"/guides/payment-conditions","path":["Reference","Merchant Integrations","Payment Conditions"],"title":"Payment Conditions","description":"Payment Conditions enable integrations to require conditional approval to accept specific Asset Types as payment."},"257":{"path":["Reference","Merchant Integrations","Payment Conditions"],"title":"Implementation","description":"In order to support Payment Conditions, the merchant integration must extend Centrapay's payment protocol by creating the Payment Request with the conditionsEnabled flag set to true.","href":"/guides/payment-conditions#implementation"},"258":{"path":["Reference","Merchant Integrations","Payment Conditions"],"title":"Additional Behaviors","description":"The payment request status must always be polled after accepting or declining a condition as these actions may trigger the additional behaviors below.","href":"/guides/payment-conditions#additional-behaviors"},"259":{"href":"/guides/payment-flows","path":["Reference","Centrapay Experiences","Payment Flows"],"title":"Payment Flows","description":"Centrapay facilitates secure and convenient transactions between customer and merchant devices, with multiple payment flows available for selection. Transact with ease and confidence using Centrapay."},"260":{"path":["Reference","Centrapay Experiences","Payment Flows"],"title":"Merchant-presented","description":"When a merchant terminal has a customer-facing display it can prompt the customer to pay by showing a QR code.","href":"/guides/payment-flows#merchant-presented"},"261":{"path":["Reference","Centrapay Experiences","Payment Flows"],"title":"Dynamic Merchant QR Code","description":"When a merchant terminal is neither capable of displaying nor scanning QR codes or barcodes, such as for unattended vending machines, then a static QR code can be used.","href":"/guides/payment-flows#dynamic-merchant-qr-code"},"262":{"path":["Reference","Centrapay Experiences","Payment Flows"],"title":"Static Merchant QR Code","description":"When a merchant terminal is neither capable of displaying nor scanning QR codes or barcodes, such as for unattended vending machines, then a static QR code can be used.","href":"/guides/payment-flows#static-merchant-qr-code"},"263":{"path":["Reference","Centrapay Experiences","Payment Flows"],"title":"Patron-presented","description":"When a merchant terminal is not capable of displaying a customer-facing QR code, then the payment request can be negotiated with the customer by scanning a barcode or QR code displayed on the customer’s smart device.","href":"/guides/payment-flows#patron-presented"},"264":{"path":["Reference","Centrapay Experiences","Payment Flows"],"title":"Dynamic Patron Barcode","description":"This is a variant on Dynamic Patron Code. If you’ve setup a long lived Centrapay Enabled Barcode then you can use these to pay on behalf of a Customer. You may need to check a Customer’s Photo ID before this goes through.","href":"/guides/payment-flows#dynamic-patron-barcode"},"265":{"path":["Reference","Centrapay Experiences","Payment Flows"],"title":"Static Patron Barcode","description":"This is a variant on Dynamic Patron Code. If you’ve setup a long lived Centrapay Enabled Barcode then you can use these to pay on behalf of a Customer. You may need to check a Customer’s Photo ID before this goes through.","href":"/guides/payment-flows#static-patron-barcode"},"266":{"path":["Reference","Centrapay Experiences","Payment Flows"],"title":"Quick Pay","description":"Quick Pay is used to pay the payment request after it is polled for the first time, without requiring patron approval. Quick Pay can only be triggered using the patron-presented flows, and the patron barcode must be linked to an asset type that allows quick pay.","href":"/guides/payment-flows#quick-pay"},"267":{"href":"/guides/payment-terminals","path":["Reference","Merchant Integrations","Payment Terminal"],"title":"Payment Terminal","description":"How to integrate a payment terminal with Centrapay APIs."},"268":{"path":["Reference","Merchant Integrations","Payment Terminal"],"title":"API Keys","description":"To create API keys, you first need to get in touch with Centrapay to be issued an Integrator Account and an “Account owner” API key. An “Account owner” is a special kind of role that allows you to manage your account.","href":"/guides/payment-terminals#api-keys"},"269":{"path":["Reference","Merchant Integrations","Payment Terminal"],"title":"Merchant Configs","description":"Centrapay Merchant Configs represent an available set of configured payment methods that can be utilized by one or more payment terminals by a Merchant.","href":"/guides/payment-terminals#merchant-configs"},"270":{"path":["Reference","Merchant Integrations","Payment Terminal"],"title":"Example Flows","description":"See Payment Flows for an overview of the API calls required for different payment flows.","href":"/guides/payment-terminals#example-flows"},"271":{"path":["Reference","Merchant Integrations","Payment Terminal"],"title":"Terminal Interface Guidelines","description":"When configuring a terminal with Centrapay there are a few common touch points that require branded assets. Please use the Centrapay Brand Assets when building the UI for these screens.","href":"/guides/payment-terminals#terminal-interface-guidelines"},"272":{"path":["Reference","Merchant Integrations","Payment Terminal"],"title":"Displaying a Button","description":"Illustration of payment terminal displaying Centrapay button","href":"/guides/payment-terminals#displaying-a-button"},"273":{"path":["Reference","Merchant Integrations","Payment Terminal"],"title":"Displaying an Icon","description":"Illustration of payment terminal displaying Centrapay icon","href":"/guides/payment-terminals#displaying-an-icon"},"274":{"path":["Reference","Merchant Integrations","Payment Terminal"],"title":"Displaying QR Codes","description":"Illustration of payment terminal displaying Centrapay QR code","href":"/guides/payment-terminals#displaying-qr-codes"},"275":{"path":["Reference","Merchant Integrations","Payment Terminal"],"title":"Integration Architecture","description":"We strongly recommend Centrapay APIs are invoked from your backend and not directly from your payment terminals. Centralizing the invocation of our APIs from your backend offers the following benefits:","href":"/guides/payment-terminals#integration-architecture"},"276":{"path":["Reference","Merchant Integrations","Payment Terminal"],"title":"Mitigating Network Issues","description":"See the guide on Merchant Integration Error Handling for information on preventing and handling network issues.","href":"/guides/payment-terminals#mitigating-network-issues"},"277":{"href":"/guides/point-of-sale","path":["Reference","Merchant Integrations","Point of Sale"],"title":"Point of Sale","description":"How to integrate a point of sale (POS) terminal with Centrapay APIs."},"278":{"path":["Reference","Merchant Integrations","Point of Sale"],"title":"Core Requirements","description":"Centrapay POS integrations must be able to create, void and refund Payment Requests on behalf of Merchants.","href":"/guides/point-of-sale#core-requirements"},"279":{"path":["Reference","Merchant Integrations","Point of Sale"],"title":"Optional Protocol Extensions","description":"Our payment protocol supports several optional extensions. Please review the extensions below and determine which ones you need for your integration.","href":"/guides/point-of-sale#optional-protocol-extensions"},"280":{"path":["Reference","Merchant Integrations","Point of Sale"],"title":"Contact Us","description":"Contact integrations@centrapay.com to get started with API keys.","href":"/guides/point-of-sale#contact-us"},"281":{"href":"/guides/requesting-payment","path":["Reference","Merchant Integrations","Requesting Payment"],"title":"Requesting Payment","description":"How to request payment on the Centrapay payment platform."},"282":{"path":["Reference","Merchant Integrations","Requesting Payment"],"title":"Connecting With Patrons","description":"The Payment Request object is a core part of Centrapay’s payment protocol. It represents the intention of a merchant to receive payment, defines the amount to be paid, and the acceptable Asset Types for payment.","href":"/guides/requesting-payment#connecting-with-patrons"},"283":{"path":["Reference","Merchant Integrations","Requesting Payment"],"title":"Required Fields","description":"We require compliant integrations to provide the following optional fields when creating a Payment Request.","href":"/guides/requesting-payment#required-fields"},"284":{"path":["Reference","Merchant Integrations","Requesting Payment"],"title":"Short Codes","description":"Payment Requests have a short code that is human- and OCR-friendly. Short codes are recycled every two years. When combined with the date or merchant id, short codes can unambiguously identify the correct Payment Request.","href":"/guides/requesting-payment#short-codes"},"285":{"path":["Reference","Merchant Integrations","Requesting Payment"],"title":"Polling for Payment Confirmation","description":"After connecting with the patron, the POS must poll the Payment Request status every second until the status has changed.","href":"/guides/requesting-payment#polling-for-payment-confirmation"},"286":{"path":["Reference","Merchant Integrations","Requesting Payment"],"title":"Protocol Extensions","description":"Our payment protocol supports several optional extensions. Please review the extensions below and determine which ones you need for your integration.","href":"/guides/requesting-payment#protocol-extensions"},"287":{"path":["Reference","Merchant Integrations","Requesting Payment"],"title":"Handling Payment Errors","description":"Merchant integrations should follow our guidelines in Merchant Integration Error Handling when inconsistencies such as network issues or race conditions occur.","href":"/guides/requesting-payment#handling-payment-errors"},"288":{"href":"/guides/requesting-pre-auth","path":["Reference","Merchant Integrations","Requesting Pre Auth"],"title":"Requesting Pre Auth","description":"Centrapay’s Pre Auth extension allows a patron to authorize payment up to a limit when the actual payment amount is not yet known."},"289":{"path":["Reference","Merchant Integrations","Requesting Pre Auth"],"title":"Restrictions","description":"Pre Auth payments are not supported in all cases.","href":"/guides/requesting-pre-auth#restrictions"},"290":{"path":["Reference","Merchant Integrations","Requesting Pre Auth"],"title":"Pre Auth Flow","description":"Pre Auth payments go through an orthogonal payment flow compared to Centrapay’s standard payment flow.","href":"/guides/requesting-pre-auth#pre-auth-flow"},"291":{"path":["Reference","Merchant Integrations","Requesting Pre Auth"],"title":"Authorize","description":"An authorization is created when the Payment Request is created with the preAuth flag while Requesting Payment.","href":"/guides/requesting-pre-auth#authorize"},"292":{"path":["Reference","Merchant Integrations","Requesting Pre Auth"],"title":"Confirm","description":"Merchants can draw down on authorized funds by making one or more confirmations against an authorized amount. Confirmations must be made with an idempotencyKey in order to prevent merchants from drawing down on authorized funds twice.","href":"/guides/requesting-pre-auth#confirm"},"293":{"path":["Reference","Merchant Integrations","Requesting Pre Auth"],"title":"Release","description":"Authorized funds that have not been confirmed can optionally be released so that the asset holder is granted access to their remaining funds without needing to wait for the authorization to expire.","href":"/guides/requesting-pre-auth#release"},"294":{"path":["Reference","Merchant Integrations","Requesting Pre Auth"],"title":"Expiry","description":"Authorizations automatically expire after 3 months. Any unreleased funds are subsequently released to the Patron.","href":"/guides/requesting-pre-auth#expiry"},"295":{"path":["Reference","Merchant Integrations","Requesting Pre Auth"],"title":"Refund","description":"Refunds can be made against authorizations, confirmations, released authorizations and expired authorizations.","href":"/guides/requesting-pre-auth#refund"},"296":{"path":["Reference","Merchant Integrations","Requesting Pre Auth"],"title":"Void","description":"Voiding a Payment Request will cancel a Payment Request and trigger any refunds necessary. This operation is useful if the POS needs to back out of a transaction due to a network error for example. Voiding can only be used up to 24 hours after the Payment Request was created.","href":"/guides/requesting-pre-auth#void"},"297":{"href":"/guides/third-party-application-payments","path":["Reference","App Integrations","Paying a Payment Request"],"title":"Paying a Payment Request","description":"Integrate your app with Centrapay to pay payment requests on merchant terminals and POS"},"298":{"path":["Reference","App Integrations","Paying a Payment Request"],"title":"Overview","description":"This guide is for a Third-party Asset Provider to enable paying with their\ndigital assets with Centrapay.","href":"/guides/third-party-application-payments#overview"},"299":{"path":["Reference","App Integrations","Paying a Payment Request"],"title":"Authenticating API calls on behalf of users","description":"Third-party applications can make API calls on behalf of users with Centrapay\nAPI keys. All API requests to Centrapay must be made from the integrator’s server.\nCentrapay API keys must also be managed server side and stored as secrets to\nminimize the risk of API keys being compromised.","href":"/guides/third-party-application-payments#authenticating-api-calls-on-behalf-of-users"},"300":{"path":["Reference","App Integrations","Paying a Payment Request"],"title":"Payment Flow Overview","description":"The payment flow below describes how a Third-party Asset Provider should integrate\nwith the Dynamic Merchant QR Code flow to enable digital payments within their\napplication. Below is an overview of the process, followed by a more in-depth\nlook at the integrator’s responsibilities.","href":"/guides/third-party-application-payments#payment-flow-overview"},"301":{"path":["Reference","App Integrations","Paying a Payment Request"],"title":"Payment Flow Implementation","description":"The user will then scan the QR code from inside the app. Valid Centrapay QR Codes\nwill have the format https://app.centrapay.com/pay/{paymentRequestId}. Validate\nthe url by asserting it matches the above format and ignore any malformed QR codes.","href":"/guides/third-party-application-payments#payment-flow-implementation"},"302":{"path":["Reference","App Integrations","Paying a Payment Request"],"title":"Scan Centrapay QR code","description":"The user will then scan the QR code from inside the app. Valid Centrapay QR Codes\nwill have the format https://app.centrapay.com/pay/{paymentRequestId}. Validate\nthe url by asserting it matches the above format and ignore any malformed QR codes.","href":"/guides/third-party-application-payments#scan-centrapay-qr-code"},"303":{"path":["Reference","App Integrations","Paying a Payment Request"],"title":"Get the Payment Request","description":"Once the app has validated the url, use the id of the Payment Request to\ncall the Get Payment Request\nAPI from your server. The returned PaymentRequest model\nwill provide the details needed to determine if the Payment Request can be completed.","href":"/guides/third-party-application-payments#get-the-payment-request"},"304":{"path":["Reference","App Integrations","Paying a Payment Request"],"title":"Pay the Payment Request","description":"If the Payment Request is payable with your Asset then you should display the\nPayment Request details to the user. Some relevant fields to display are:","href":"/guides/third-party-application-payments#pay-the-payment-request"},"305":{"path":["Reference","App Integrations","Paying a Payment Request"],"title":"Payment Extensions","description":"Extensions to the payment protocol can be used to enhance the user's experience\nby providing alternative payment flows.","href":"/guides/third-party-application-payments#payment-extensions"},"306":{"path":["Reference","App Integrations","Paying a Payment Request"],"title":"Partial Pay","description":"If both your app and the merchant support Partial Pay\nthen you may allow the user to pay only a portion of the Payment Request and\nthen pay the remaining amount with an alternative payment method.","href":"/guides/third-party-application-payments#partial-pay"},"307":{"path":["Reference","App Integrations","Paying a Payment Request"],"title":"Testing","description":"Centrapay supports test resources that can be used for integration testing. A test\nmerchant will be provided that accepts test payments. If you have supplied a\ntest third-party asset then this merchant can be configured to accept it as a\npayment method.","href":"/guides/third-party-application-payments#testing"},"308":{"href":"/guides/transaction-reporting","path":["Reference","Merchant Integrations","Transaction Reporting"],"title":"Transaction Reporting","description":"Guidelines on communicating the Asset Types used for payment to the user in any transaction reporting function on the merchant side."}} \ No newline at end of file