diff --git a/assets/js/search-data.json b/assets/js/search-data.json index 8aeba7789..e6dd0f261 100644 --- a/assets/js/search-data.json +++ b/assets/js/search-data.json @@ -515,11 +515,11 @@ "url": "/api/http-status-codes#5xx-server-error", "relUrl": "/api/http-status-codes#5xx-server-error" },"86": { - "doc": "Settlements", - "title": "Settlements", + "doc": "Integrations", + "title": "Integrations", "content": " ", - "url": "/api/section/settlements", - "relUrl": "/api/section/settlements" + "url": "/api/section/integrations", + "relUrl": "/api/section/integrations" },"87": { "doc": "Assets", "title": "Assets", @@ -527,11 +527,11 @@ "url": "/api/section/assets", "relUrl": "/api/section/assets" },"88": { - "doc": "Payment Requests", - "title": "Payment Requests", + "doc": "Batches", + "title": "Batches", "content": " ", - "url": "/api/section/payment-requests", - "relUrl": "/api/section/payment-requests" + "url": "/api/section/batches", + "relUrl": "/api/section/batches" },"89": { "doc": "Accounts", "title": "Accounts", @@ -539,35 +539,35 @@ "url": "/api/section/accounts", "relUrl": "/api/section/accounts" },"90": { + "doc": "Payment Requests", + "title": "Payment Requests", + "content": " ", + "url": "/api/section/payment-requests", + "relUrl": "/api/section/payment-requests" + },"91": { + "doc": "Bank Accounts", + "title": "Bank Accounts", + "content": " ", + "url": "/api/section/bank-accounts", + "relUrl": "/api/section/bank-accounts" + },"92": { "doc": "Merchants", "title": "Merchants", "content": " ", "url": "/api/section/merchants", "relUrl": "/api/section/merchants" - },"91": { - "doc": "Batches", - "title": "Batches", - "content": " ", - "url": "/api/section/batches", - "relUrl": "/api/section/batches" - },"92": { + },"93": { "doc": "Scanned Codes", "title": "Scanned Codes", "content": " ", "url": "/api/section/scanned-codes", "relUrl": "/api/section/scanned-codes" - },"93": { - "doc": "Integrations", - "title": "Integrations", - "content": " ", - "url": "/api/section/integrations", - "relUrl": "/api/section/integrations" },"94": { - "doc": "Bank Accounts", - "title": "Bank Accounts", + "doc": "Settlements", + "title": "Settlements", "content": " ", - "url": "/api/section/bank-accounts", - "relUrl": "/api/section/bank-accounts" + "url": "/api/section/settlements", + "relUrl": "/api/section/settlements" },"95": { "doc": "API Reference", "title": "API Reference", diff --git a/index-data.json b/index-data.json index 55808fa0b..cf6e630b0 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":"Account Membership Model","description":"A Member contains extended information about a user's access to an account.","href":"/api/account-memberships#account-membership-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":"When you send another centrapay user cash or assets, they're automatically assigned to them.\nHowever, if they're not signed up yet then these assets are not immediately assigned.","href":"/api/asset-transfers#resolve-claimable-assets-"},"47":{"path":["API","Asset Transfers"],"title":"Attributes","description":"No Attributes.","href":"/api/asset-transfers#attributes"},"48":{"path":["API","Asset Transfers"],"title":"List Asset Transfers ","description":"Returns a paginated list of Asset Transfers.","href":"/api/asset-transfers#list-asset-transfers-"},"49":{"path":["API","Asset Transfers"],"title":"Attributes","description":"","href":"/api/asset-transfers#attributes"},"50":{"href":"/api/asset-types","path":["API","Asset Types"],"title":"Asset Types","description":"Asset types supported for payment"},"51":{"path":["API","Asset Types"],"title":"Flags","description":"","href":"/api/asset-types#flags"},"52":{"href":"/api/assets","path":["API","Assets"],"title":"Assets","description":"Asset models and related endpoints"},"53":{"path":["API","Assets"],"title":"Asset Model","description":"All assets have the following fields along with the additional fields that are\nspecific to its category. Assets which don't have a category are considered \nand the model may change.","href":"/api/assets#asset-model"},"54":{"path":["API","Assets"],"title":"Attributes","description":"Money assets, being backed by real currency, are the most flexible asset types.\nMoney is accepted for most payment requests, can be sent in arbitrary amounts\nand does not expire.","href":"/api/assets#attributes"},"55":{"path":["API","Assets"],"title":"Money Model","description":"Money assets, being backed by real currency, are the most flexible asset types.\nMoney is accepted for most payment requests, can be sent in arbitrary amounts\nand does not expire.","href":"/api/assets#money-model"},"56":{"path":["API","Assets"],"title":"Attributes","description":"Gift cards are similar to money but have greater spending restrictions and are\nnot always backed by real currency. Gift cards usually have an expiry date, are\ntypically tied to a small number of merchants, and can only be sent in their\nentirety.","href":"/api/assets#attributes"},"57":{"path":["API","Assets"],"title":"Gift Card Model","description":"Gift cards are similar to money but have greater spending restrictions and are\nnot always backed by real currency. Gift cards usually have an expiry date, are\ntypically tied to a small number of merchants, and can only be sent in their\nentirety.","href":"/api/assets#gift-card-model"},"58":{"path":["API","Assets"],"title":"Attributes","description":"Tokens are assets which can only be spent in full. Every token is associated with a collection, which defines the branding and general rules for the tokens, such as active duration.","href":"/api/assets#attributes"},"59":{"path":["API","Assets"],"title":"Token Model ","description":"Tokens are assets which can only be spent in full. Every token is associated with a collection, which defines the branding and general rules for the tokens, such as active duration.","href":"/api/assets#token-model-"},"60":{"path":["API","Assets"],"title":"Attributes","description":"The destParty and srcParty are optionally provided only on transactions of\ntype transfer. Values may include a merchant name, user handle, masked user\nemail, masked user phone, or bank account.","href":"/api/assets#attributes"},"61":{"path":["API","Assets"],"title":"Asset Transaction Model","description":"The destParty and srcParty are optionally provided only on transactions of\ntype transfer. Values may include a merchant name, user handle, masked user\nemail, masked user phone, or bank account.","href":"/api/assets#asset-transaction-model"},"62":{"path":["API","Assets"],"title":"Attributes","description":"","description":"Returns a paginated list of Asset Transactions. This endpoint is currently only supported for quartz asset types.","href":"/api/assets#list-asset-transactions-"},"70":{"path":["API","Assets"],"title":"Attributes","description":"No Attributes.","href":"/api/assets#attributes"},"71":{"path":["API","Assets"],"title":"Archive Asset","description":"Archive supported asset types by asset id. Currently only gift cards may be archived.","href":"/api/assets#archive-asset"},"72":{"path":["API","Assets"],"title":"Attributes","description":"No Attributes.","href":"/api/assets#attributes"},"73":{"path":["API","Assets"],"title":"Errors","description":"","href":"/api/assets#errors"},"74":{"href":"/api/auth","path":["API","Auth"],"title":"Auth","description":"Introduction to Authentication"},"75":{"path":["API","Auth"],"title":"Authenticating API Calls","description":"API calls can be authenticated by either providing an API key in the\n\"X-Api-Key\" header or by providing a user access token in the \"Authorization\"\nheader.","href":"/api/auth#authenticating-api-calls"},"76":{"path":["API","Auth"],"title":"API Keys","description":"API Keys provide enduring access to a single Centrapay account.","href":"/api/auth#api-keys"},"77":{"path":["API","Auth"],"title":"User Access Tokens","description":"User access tokens provide time-limited access to all Centrapay accounts for\nwhich the user is a member. Access tokens are issued using OIDC code flow via\nthe Centrapay OAuth authorization server and login page at auth.centrapay.com.","href":"/api/auth#user-access-tokens"},"78":{"path":["API","Auth"],"title":"Claims","description":"The following table lists the claims which may be be included in a user id token.\nAt minimum, the \"sub\" claim and one of \"phone_number\" or \"email\" will be present.","href":"/api/auth#claims"},"79":{"path":["API","Auth"],"title":"Roles and Permissions","description":"Users and API keys are assigned a role for their associated Centrapay\naccount(s). The permissions granted to the roles are shown in the table below.","href":"/api/auth#roles-and-permissions"},"80":{"path":["API","Auth"],"title":"Account Flags","description":"Some permissions require an additional flag associated to their individual account or the\ntargeted account that owns the resource (they may be the same account). For each permission,\nif there is a flag associated to it then at least one of them must be met.","href":"/api/auth#account-flags"},"81":{"path":["API","Auth"],"title":"Permissions","description":"| Permission | Account Owner | Anon Consumer | Merchant Terminal | External Asset Provider | Cashier |\n| ---------------------------------- | ------------- | ------------- | ----------------- | ----------------------- | ------- |\n| accounts:create | ✅ | | | | |\n| accounts:read | ✅ | | | ✅ | ✅ |\n| accounts:updat | ✅ | | | | |\n| api-keys:create | ✅ | | | | |\n| api-keys:list | ✅ | | | | |\n| api-keys:update | ✅ | | | | |\n| asset-transfers:claim | ✅ | | | ✅ | |\n| asset-transfers:create 👤 🧀 | ✅ | | | ✅ | |\n| asset-transfers:read | ✅ | | | ✅ | |\n| assets:read | ✅ | | | ✅ | |\n| assets:spend 👤 | ✅ | | | | |\n| bank-account-approvals:create | ✅ | | | | |\n| bank-account-requests:authorize | ✅ | | | | |\n| bank-account-requests:create | ✅ | | | | |\n| bank-accounts:create | ✅ | | | | |\n| bank-accounts:read | ✅ | | | | |\n| business:create | ✅ | | | | |\n| business:update | ✅ | | | | |\n| business:read | ✅ | | | | |\n| collections:create 🪙 | ✅ | | | | |\n| collections:read 🪙 | ✅ | | | | |\n| external-assets:create 👤 🧀 | ✅ | | | ✅ | |\n| external-assets:update | ✅ | | | ✅ | |\n| integration-requests:configure | | | | | |\n| integration-requests:create 🗄 | ✅ | | | | |\n| integration-requests:read 🗄 | ✅ | | | | |\n| invitations:accept | ✅ ✸ | | | | |\n| invitations:read | ✅ ✸ | | | | |\n| media-uploads:create | ✅ | | | | |\n| memberships:delete 🗄 | ✅ | | | | |\n| memberships:update | ✅ | | | | |\n| merchants:create 🗄 | ✅ | | | | |\n| merchants:list 🗄 | ✅ | | | | ✅ |\n| merchants:read 🗄 | ✅ | | | | ✅ |\n| merchants:update 🗄 | ✅ | | | | |\n| patron-codes:create | ✅ | | | | |\n| patron-codes:read | ✅ | | ✅ | | ✅ |\n| payment-activities:read | ✅ | | ✅ | | ✅ |\n| payment-conditions:approve | ✅ | | ✅ | | ✅ |\n| payment-requests:cancel 🗄 | ✅ | | ✅ | | ✅ |\n| payment-requests:create 🗄 | ✅ | | ✅ ✸ | | ✅ |\n| payment-requests:pay 🗄 | ✅ ✸ | ✅ ✸ | ✅ | | ✅ ✸ |\n| payment-requests:read | ✅ ✸ | ✅ ✸ | ✅ ✸ | | ✅ ✸ |\n| payment-requests:read-by-shortcode | ✅ | | ✅ | | ✅ |\n| payment-requests:refund 🗄 | ✅ | | ✅ | | ✅ |\n| payment-requests:void 🗄 | ✅ | | ✅ | | ✅ |\n| payment-requests:release 🗄 | ✅ | | ✅ | | ✅ |\n| payment-requests:confirm 🗄 | ✅ | | ✅ | | ✅ |\n| quotas:read | ✅ | | | | |\n| quotas:read | ✅ | | | | |\n| redemption-conditions:create 🪙 | ✅ | | | | |\n| scanned-code:decode | ✅ | | ✅ | | ✅ |\n| tokens:create 🪙 | ✅ | | | | |\n| topups:create 👤 | ✅ | | | | |\n| topups:read | ✅ | | | | |\n| wallets:create | ✅ | | | | |\n| wallets:deposit | ✅ | | | | |\n| wallets:read | ✅ | | | | |\n| wallets:transfer 👤 | ✅ | | | | |\n| wallets:withdraw | ✅ | | | | |","href":"/api/auth#permissions"},"82":{"href":"/api/bank-account-approvals","path":["API","Bank Account Approvals"],"title":"Bank Account Approvals","description":"Bank Account Approval model and related endpoints"},"83":{"path":["API","Bank Account Approvals"],"title":"Bank Account Approval Model","description":"| Name | description |\n| :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| settlement | An approved Bank Account Approval of type settlement is required for the funds in a Settlement Wallet to be released. A Media Upload is uploaded by the user to provide evidence of ownership of the Bank Account to be approved. |\n| account-consent | An approved Bank Account Approval of type account-consent provides an access token to read account details from a third-party. |\n| payment-consent | An approved Bank Account Approval of type payment-consent provides an access token for creating payments with a third-party. |","href":"/api/bank-account-approvals#bank-account-approval-model"},"84":{"path":["API","Bank Account Approvals"],"title":"Attributes","description":"| Name | description |\n| :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| settlement | An approved Bank Account Approval of type settlement is required for the funds in a Settlement Wallet to be released. A Media Upload is uploaded by the user to provide evidence of ownership of the Bank Account to be approved. |\n| account-consent | An approved Bank Account Approval of type account-consent provides an access token to read account details from a third-party. |\n| payment-consent | An approved Bank Account Approval of type payment-consent provides an access token for creating payments with a third-party. |","href":"/api/bank-account-approvals#attributes"},"85":{"path":["API","Bank Account Approvals"],"title":"Bank Account Approval Types","description":"| Name | description |\n| :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| settlement | An approved Bank Account Approval of type settlement is required for the funds in a Settlement Wallet to be released. A Media Upload is uploaded by the user to provide evidence of ownership of the Bank Account to be approved. |\n| account-consent | An approved Bank Account Approval of type account-consent provides an access token to read account details from a third-party. |\n| payment-consent | An approved Bank Account Approval of type payment-consent provides an access token for creating payments with a third-party. |","href":"/api/bank-account-approvals#bank-account-approval-types"},"86":{"path":["API","Bank Account Approvals"],"title":"Bank Account Approval Activity Model","description":"","description":"This endpoint allows you to request a Bank Account Approval.","href":"/api/bank-account-approvals#request-bank-account-approval-"},"89":{"path":["API","Bank Account Approvals"],"title":"Attributes","description":"","description":"This endpoint allows you to retrieve a Bank Account Approval.","href":"/api/bank-account-approvals#get-bank-account-approval-"},"92":{"path":["API","Bank Account Approvals"],"title":"Attributes","description":"No attributes.","href":"/api/bank-account-approvals#attributes"},"93":{"path":["API","Bank Account Approvals"],"title":"Accept Bank Account Approval ","description":"This endpoint allows you to accept a Bank Account Approval.","href":"/api/bank-account-approvals#accept-bank-account-approval-"},"94":{"path":["API","Bank Account Approvals"],"title":"Attributes","description":"","description":"This endpoint allows you to decline a Bank Account Approval.","href":"/api/bank-account-approvals#decline-bank-account-approval-"},"97":{"path":["API","Bank Account Approvals"],"title":"Attributes","description":"","description":"This endpoint allows you to list the Bank Account Approvals for a Bank Account.","href":"/api/bank-account-approvals#list-bank-account-approvals-"},"100":{"path":["API","Bank Account Approvals"],"title":"Attributes","description":"No attributes.","href":"/api/bank-account-approvals#attributes"},"101":{"href":"/api/bank-account-connection-intents","path":["API","Bank Account Connection Intents"],"title":"Bank Account Connection Intents","description":"Bank Account Connection Intent model and related endpoints"},"102":{"path":["API","Bank Account Connection Intents"],"title":"Bank Account Connection Intent Model","description":"| Name | description |\n| :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| quartz-accounts | Initiates an authorization flow for authorizing access to bank account details. After a Bank Account Connection Intent has been authorized, one or more Centrapay Bank Account resources may be created. |\n| quartz-payment | Initiates an authorization flow for authorizing access to create payments. |","href":"/api/bank-account-connection-intents#bank-account-connection-intent-model"},"103":{"path":["API","Bank Account Connection Intents"],"title":"Bank Account Connection Intent Types","description":"| Name | description |\n| :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| quartz-accounts | Initiates an authorization flow for authorizing access to bank account details. After a Bank Account Connection Intent has been authorized, one or more Centrapay Bank Account resources may be created. |\n| quartz-payment | Initiates an authorization flow for authorizing access to create payments. |","href":"/api/bank-account-connection-intents#bank-account-connection-intent-types"},"104":{"path":["API","Bank Account Connection Intents"],"title":"Create Bank Account Connection Intent ","description":"This endpoint allows you to create a Bank Account Connection Intent.","href":"/api/bank-account-connection-intents#create-bank-account-connection-intent-"},"105":{"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-"},"108":{"path":["API","Bank Account Connection Intents"],"title":"Attributes","description":"","href":"/api/bank-account-connection-intents#attributes"},"109":{"href":"/api/bank-accounts","path":["API","Bank Accounts"],"title":"Bank Accounts","description":"Bank Account model and related endpoints"},"110":{"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"},"111":{"path":["API","Bank Accounts"],"title":"Attributes","description":"Types of bank accounts to allow access to different Asset Types.","href":"/api/bank-accounts#attributes"},"112":{"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-"},"113":{"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-"},"114":{"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"},"115":{"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-"},"116":{"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-"},"126":{"path":["API","Bank Accounts"],"title":"Attributes","description":"No attributes.","href":"/api/bank-accounts#attributes"},"127":{"path":["API","Bank Accounts"],"title":"Errors","description":"","description":"If you're creating new interfaces, please work with Verify Bank Account.","href":"/api/bank-accounts#verify-bank-authority-"},"132":{"path":["API","Bank Accounts"],"title":"Attributes","description":"","description":"If you're creating new interfaces, please work with List Bank Accounts.","href":"/api/bank-accounts#list-bank-authorities-"},"137":{"path":["API","Bank Accounts"],"title":"Attributes","description":"No attributes.","href":"/api/bank-accounts#attributes"},"138":{"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-"},"139":{"path":["API","Bank Accounts"],"title":"Attributes","description":"","description":"If you're creating new interfaces, please work with Get Bank Account.","href":"/api/bank-accounts#get-bank-authority-"},"142":{"path":["API","Bank Accounts"],"title":"Attributes","description":"No attributes.","href":"/api/bank-accounts#attributes"},"143":{"path":["API","Bank Accounts"],"title":"Errors","description":"","href":"/api/bank-accounts#errors"},"144":{"href":"/api/batch-types/farmlands-external-asset","path":["Exclude","Farmlands External Asset Batch"],"title":"Farmlands External Asset Batch","description":"Farmlands External Asset Batch Models"},"145":{"path":["Exclude","Farmlands External Asset Batch"],"title":"Account Model","description":"Exported Farmlands Account used for importing and updating of a Centrapay Asset.","href":"/api/batch-types/farmlands-external-asset#account-model"},"146":{"path":["Exclude","Farmlands External Asset Batch"],"title":"Attributes","description":"Exported Farmlands Contact and Card information used for authentication, correspondence and payment.","href":"/api/batch-types/farmlands-external-asset#attributes"},"147":{"path":["Exclude","Farmlands External Asset Batch"],"title":"Contact Model","description":"Exported Farmlands Contact and Card information used for authentication, correspondence and payment.","href":"/api/batch-types/farmlands-external-asset#contact-model"},"148":{"path":["Exclude","Farmlands External Asset Batch"],"title":"Attributes","description":"Exported Farmlands Credit Card information used for importing and updating of a Patron Code.","href":"/api/batch-types/farmlands-external-asset#attributes"},"149":{"path":["Exclude","Farmlands External Asset Batch"],"title":"Card Model","description":"Exported Farmlands Credit Card information used for importing and updating of a Patron Code.","href":"/api/batch-types/farmlands-external-asset#card-model"},"150":{"path":["Exclude","Farmlands External Asset Batch"],"title":"Attributes","description":"A complete batch example with all batch types included. For more legible examples please refer to Example Models.","href":"/api/batch-types/farmlands-external-asset#attributes"},"151":{"path":["Exclude","Farmlands External Asset Batch"],"title":"Example JSONL File","description":"A complete batch example with all batch types included. For more legible examples please refer to Example Models.","href":"/api/batch-types/farmlands-external-asset#example-jsonl-file"},"152":{"path":["Exclude","Farmlands External Asset Batch"],"title":"Example Models","description":"Centrapay matches previously created resources using externalId and records get created or updated based on these IDs. In some cases, fields may be omitted to only update some fields.","href":"/api/batch-types/farmlands-external-asset#example-models"},"153":{"href":"/api/batch-types/verifone-terminal-status","path":["Exclude","Verifone Terminal Status Batch"],"title":"Verifone Terminal Status Batch","description":"Verifone Terminal Status Batch Models"},"154":{"path":["Exclude","Verifone Terminal Status Batch"],"title":"Terminal Status","description":"A complete batch example with all batch types included. For more legible examples please refer to Example Models.","href":"/api/batch-types/verifone-terminal-status#terminal-status"},"155":{"path":["Exclude","Verifone Terminal Status Batch"],"title":"Attributes","description":"A complete batch example with all batch types included. For more legible examples please refer to Example Models.","href":"/api/batch-types/verifone-terminal-status#attributes"},"156":{"path":["Exclude","Verifone Terminal Status Batch"],"title":"Example JSONL File","description":"A complete batch example with all batch types included. For more legible examples please refer to Example Models.","href":"/api/batch-types/verifone-terminal-status#example-jsonl-file"},"157":{"path":["Exclude","Verifone Terminal Status Batch"],"title":"Pretty Printed Example","description":"","href":"/api/batch-types/verifone-terminal-status#pretty-printed-example"},"158":{"href":"/api/batches","path":["API","Batches"],"title":"Batches","description":"Batch model and related endpoints"},"159":{"path":["API","Batches"],"title":"Batch Model","description":"Different stages of a Batch's lifecycle.","href":"/api/batches#batch-model"},"160":{"path":["API","Batches"],"title":"Attributes","description":"Different stages of a Batch's lifecycle.","href":"/api/batches#attributes"},"161":{"path":["API","Batches"],"title":"Batch Lifecycle","description":"Different stages of a Batch's lifecycle.","href":"/api/batches#batch-lifecycle"},"162":{"path":["API","Batches"],"title":"Batch Types","description":"The following table describes the Batch Types supported for loading.","href":"/api/batches#batch-types"},"163":{"path":["API","Batches"],"title":"Error","description":"| Field | Type | Description |\n| :--------- | :-------- | :----------------------------------------------------------- |\n| message | String | A description of what caused the Error. |\n| externalId | String | Field used in debugging in reference to an id from the file. |\n| index | BigNumber | Item offset where the Error was identified in the file. |","href":"/api/batches#error"},"164":{"path":["API","Batches"],"title":"Create Batch","description":"Initialize loading of entities from a batch file.","href":"/api/batches#create-batch"},"165":{"path":["API","Batches"],"title":"Attributes","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-"},"177":{"path":["API","Businesses"],"title":"Attributes","description":"","description":"This endpoint allows you to update a Business.","href":"/api/businesses#update-business-"},"180":{"path":["API","Businesses"],"title":"Attributes","description":"","description":"This endpoint allows you to retrieve a Business by account id.","href":"/api/businesses#get-business-by-account-id-"},"183":{"path":["API","Businesses"],"title":"Attributes","description":"No attributes.","href":"/api/businesses#attributes"},"184":{"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-"},"185":{"path":["API","Businesses"],"title":"Attributes","description":"No attributes.","href":"/api/businesses#attributes"},"186":{"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-"},"187":{"path":["API","Businesses"],"title":"Attributes","description":"No attributes.","href":"/api/businesses#attributes"},"188":{"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"},"189":{"path":["API","Businesses"],"title":"Attributes","description":"","href":"/api/businesses#attributes"},"190":{"href":"/api/data-types","path":["API","Data Types"],"title":"Data Types","description":"Introduction to Data Types"},"191":{"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"},"192":{"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"},"193":{"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"},"194":{"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"},"195":{"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"},"196":{"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"},"197":{"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"},"198":{"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"},"199":{"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"},"200":{"href":"/api/external-assets","path":["API","External Assets"],"title":"External Assets","description":"External Assets endpoint documentation"},"201":{"path":["API","External Assets"],"title":"Load an External Asset","description":"Load an asset from a supported third-party issuer. Asset details will be obtained from the issuer.","href":"/api/external-assets#load-an-external-asset"},"202":{"path":["API","External Assets"],"title":"Attributes","description":"","href":"/api/external-assets#attributes"},"203":{"path":["API","External Assets"],"title":"Errors","description":"","href":"/api/external-assets#errors"},"204":{"href":"/api/funds-transfers","path":["API","Funds Transfers"],"title":"Funds Transfers","description":"Endpoints for managing Funds Transfers"},"205":{"path":["API","Funds Transfers"],"title":"Create a Top Up","description":"This endpoint allows you to create a topup.","href":"/api/funds-transfers#create-a-top-up"},"206":{"path":["API","Funds Transfers"],"title":"Attributes","description":"","description":"This endpoint allows you to list the Top Ups for an account.","href":"/api/funds-transfers#list-top-ups-for-an-account-"},"213":{"path":["API","Funds Transfers"],"title":"Attributes","description":"No attributes.","href":"/api/funds-transfers#attributes"},"214":{"path":["API","Funds Transfers"],"title":"Create Withdrawal ","description":"This endpoint allows you to create a withdrawal.","href":"/api/funds-transfers#create-withdrawal-"},"215":{"path":["API","Funds Transfers"],"title":"Attributes","description":"","description":"This endpoint allows you to retrieve a Withdrawal by id.","href":"/api/funds-transfers#get-withdrawal-"},"218":{"path":["API","Funds Transfers"],"title":"Attributes","description":"No attributes.","href":"/api/funds-transfers#attributes"},"219":{"path":["API","Funds Transfers"],"title":"Errors","description":"","description":"This endpoint allows you to list the withdrawals for an Account.","href":"/api/funds-transfers#list-withdrawals-for-an-account-"},"221":{"path":["API","Funds Transfers"],"title":"Attributes","description":"No attributes.","href":"/api/funds-transfers#attributes"},"222":{"path":["API","Funds Transfers"],"title":"Abort Funds Transfer","description":"This endpoint allows you to abort a Funds Transfer.","href":"/api/funds-transfers#abort-funds-transfer"},"223":{"path":["API","Funds Transfers"],"title":"Attributes","description":"No attributes.","href":"/api/funds-transfers#attributes"},"224":{"path":["API","Funds Transfers"],"title":"Errors","description":"","href":"/api/funds-transfers#errors"},"225":{"href":"/api/http-status-codes","path":["API","HTTP Status Codes"],"title":"HTTP Status Codes","description":"Introduction to HTTP Status Codes"},"226":{"path":["API","HTTP Status Codes"],"title":"200 Ok","description":"Everything's ok. Enjoy your well formed response!","href":"/api/http-status-codes#200-ok"},"227":{"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"},"228":{"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"},"229":{"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"},"230":{"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"},"231":{"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"},"232":{"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"},"233":{"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"},"234":{"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"},"235":{"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"},"236":{"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"},"237":{"href":"/api/integration-requests","path":["API","Integration Requests"],"title":"Integration Requests","description":"Integration Request models and related endpoints"},"238":{"path":["API","Integration Requests"],"title":"Integration Request Model","description":"| Name | Description |\n| -------- | ---------------------------------------------------------- |\n| epay | Asset provider ePay |\n| invenco | Terminal vendor invenco |\n| skyzer | Terminal vendor skyzer |\n| smartpay | Terminal vendor smartpay |\n| verifone | Terminal vendor Verifone |\n| vista | Terminal vendor vista |\n| windcave | Terminal vendor Windcave |","href":"/api/integration-requests#integration-request-model"},"239":{"path":["API","Integration Requests"],"title":"Attributes","description":"| Name | Description |\n| -------- | ---------------------------------------------------------- |\n| epay | Asset provider ePay |\n| invenco | Terminal vendor invenco |\n| skyzer | Terminal vendor skyzer |\n| smartpay | Terminal vendor smartpay |\n| verifone | Terminal vendor Verifone |\n| vista | Terminal vendor vista |\n| windcave | Terminal vendor Windcave |","href":"/api/integration-requests#attributes"},"240":{"path":["API","Integration Requests"],"title":"Terminal","description":"| Name | Description |\n| -------- | ---------------------------------------------------------- |\n| epay | Asset provider ePay |\n| invenco | Terminal vendor invenco |\n| skyzer | Terminal vendor skyzer |\n| smartpay | Terminal vendor smartpay |\n| verifone | Terminal vendor Verifone |\n| vista | Terminal vendor vista |\n| windcave | Terminal vendor Windcave |","href":"/api/integration-requests#terminal"},"241":{"path":["API","Integration Requests"],"title":"Product","description":"| Name | Description |\n| -------- | ---------------------------------------------------------- |\n| epay | Asset provider ePay |\n| invenco | Terminal vendor invenco |\n| skyzer | Terminal vendor skyzer |\n| smartpay | Terminal vendor smartpay |\n| verifone | Terminal vendor Verifone |\n| vista | Terminal vendor vista |\n| windcave | Terminal vendor Windcave |","href":"/api/integration-requests#product"},"242":{"path":["API","Integration Requests"],"title":"Integration Types","description":"| Name | Description |\n| -------- | ---------------------------------------------------------- |\n| epay | Asset provider ePay |\n| invenco | Terminal vendor invenco |\n| skyzer | Terminal vendor skyzer |\n| smartpay | Terminal vendor smartpay |\n| verifone | Terminal vendor Verifone |\n| vista | Terminal vendor vista |\n| windcave | Terminal vendor Windcave |","href":"/api/integration-requests#integration-types"},"243":{"path":["API","Integration Requests"],"title":"Create an Integration Request ","description":"This endpoint allows you to create an Integration Request.","href":"/api/integration-requests#create-an-integration-request-"},"244":{"path":["API","Integration Requests"],"title":"Attributes","description":"","description":"This endpoint allows you to get an Integration Request.","href":"/api/integration-requests#get-an-integration-request-"},"246":{"path":["API","Integration Requests"],"title":"Attributes","description":"No attributes.","href":"/api/integration-requests#attributes"},"247":{"path":["API","Integration Requests"],"title":"Search Merchants","description":"Returns a paginated response of Integration Requests.","href":"/api/integration-requests#search-merchants"},"248":{"path":["API","Integration Requests"],"title":"Query Parameters","description":"","description":"This endpoint allows you to supply configuration values for the Integration Request.","href":"/api/integration-requests#configure-integration-request-"},"250":{"path":["API","Integration Requests"],"title":"Attributes","description":"","description":"This endpoint allows you to get the configuration values for the Integration Request.","href":"/api/integration-requests#get-integration-request-configuration-"},"252":{"path":["API","Integration Requests"],"title":"Attributes","description":"No attributes.","href":"/api/integration-requests#attributes"},"253":{"path":["API","Integration Requests"],"title":"Activate Integration Request ","description":"This endpoint allows you to activate an Integration Request.","href":"/api/integration-requests#activate-integration-request-"},"254":{"path":["API","Integration Requests"],"title":"Attributes","description":"No attributes.","href":"/api/integration-requests#attributes"},"255":{"path":["API","Integration Requests"],"title":"Errors","description":"","description":"This endpoint allows you to delete an Integration Request.","href":"/api/integration-requests#delete-integration-request-"},"257":{"path":["API","Integration Requests"],"title":"Attributes","description":"No attributes.","href":"/api/integration-requests#attributes"},"258":{"href":"/api/integrations","path":["API","Integrations"],"title":"Integrations","description":"Centrapay Integration documentation"},"259":{"href":"/api/introduction","path":["API","Introduction"],"title":"Introduction","description":"Introduction to the API Reference"},"260":{"href":"/api/invitations","path":["API","Invitations"],"title":"Invitations","description":"Invitation model and related endpoints"},"261":{"path":["API","Invitations"],"title":"Invitation Model","description":"","description":"This endpoint allows you to create an Invitation.","href":"/api/invitations#create-invitation-"},"266":{"path":["API","Invitations"],"title":"Attributes","description":"","description":"This endpoint allows you to retrieve an Invitation by code.","href":"/api/invitations#get-invitation-by-code-"},"269":{"path":["API","Invitations"],"title":"Attributes","description":"No attributes.","href":"/api/invitations#attributes"},"270":{"path":["API","Invitations"],"title":"List Invitations by Account Id ","description":"This endpoint allows you list Invitations for an Account.","href":"/api/invitations#list-invitations-by-account-id-"},"271":{"path":["API","Invitations"],"title":"Attributes","description":"No attributes.","href":"/api/invitations#attributes"},"272":{"path":["API","Invitations"],"title":"Accept Invitation ","description":"This endpoint allows you to accept an Invitation.","href":"/api/invitations#accept-invitation-"},"273":{"path":["API","Invitations"],"title":"Attributes","description":"","description":"This endpoint allows you to revoke an Invitation.","href":"/api/invitations#revoke-invitation-"},"276":{"path":["API","Invitations"],"title":"Attributes","description":"No attributes","href":"/api/invitations#attributes"},"277":{"path":["API","Invitations"],"title":"Errors","description":"","href":"/api/invitations#errors"},"278":{"href":"/api/legacy-payment-requests","path":["API","Legacy Payment Requests"],"title":"Legacy Payment Requests","description":"Legacy Payment Request models and related endpoints (deprecated)"},"279":{"path":["API","Legacy Payment Requests"],"title":"Payment Request Model ","description":"The \"ledger\" parameter indicates which payment option has been selected to pay\nthe payment request. The selected payment option must be one of the options\navailable for the payment request as per the payments array in the\nrequests.create and requests.info responses.","href":"/api/legacy-payment-requests#payment-request-model-"},"280":{"path":["API","Legacy Payment Requests"],"title":"Attributes","description":"The \"ledger\" parameter indicates which payment option has been selected to pay\nthe payment request. The selected payment option must be one of the options\navailable for the payment request as per the payments array in the\nrequests.create and requests.info responses.","href":"/api/legacy-payment-requests#attributes"},"281":{"path":["API","Legacy Payment Requests"],"title":"Payment Options Model ","description":"The \"ledger\" parameter indicates which payment option has been selected to pay\nthe payment request. The selected payment option must be one of the options\navailable for the payment request as per the payments array in the\nrequests.create and requests.info responses.","href":"/api/legacy-payment-requests#payment-options-model-"},"282":{"path":["API","Legacy Payment Requests"],"title":"Attributes","description":"The \"ledger\" parameter indicates which payment option has been selected to pay\nthe payment request. The selected payment option must be one of the options\navailable for the payment request as per the payments array in the\nrequests.create and requests.info responses.","href":"/api/legacy-payment-requests#attributes"},"283":{"path":["API","Legacy Payment Requests"],"title":"Paid By Model ","description":"The \"ledger\" parameter indicates which payment option has been selected to pay\nthe payment request. The selected payment option must be one of the options\navailable for the payment request as per the payments array in the\nrequests.create and requests.info responses.","href":"/api/legacy-payment-requests#paid-by-model-"},"284":{"path":["API","Legacy Payment Requests"],"title":"Attributes","description":"The \"ledger\" parameter indicates which payment option has been selected to pay\nthe payment request. The selected payment option must be one of the options\navailable for the payment request as per the payments array in the\nrequests.create and requests.info responses.","href":"/api/legacy-payment-requests#attributes"},"285":{"path":["API","Legacy Payment Requests"],"title":"Ledger and Authorization Values","description":"The \"ledger\" parameter indicates which payment option has been selected to pay\nthe payment request. The selected payment option must be one of the options\navailable for the payment request as per the payments array in the\nrequests.create and requests.info responses.","href":"/api/legacy-payment-requests#ledger-and-authorization-values"},"286":{"path":["API","Legacy Payment Requests"],"title":"Create a Payment Request ","description":"This endpoint allows you to create a Payment Request.","href":"/api/legacy-payment-requests#create-a-payment-request-"},"287":{"path":["API","Legacy Payment Requests"],"title":"Attributes","description":"","description":"This endpoint allows you to receive Payment Request information.","href":"/api/legacy-payment-requests#get-a-payment-request-"},"290":{"path":["API","Legacy Payment Requests"],"title":"Attributes","description":"","description":"This endpoint allows you to pay a Payment Request.","href":"/api/legacy-payment-requests#pay-a-payment-request-"},"292":{"path":["API","Legacy Payment Requests"],"title":"Attributes","description":"","description":"This endpoint allows you to cancel a Payment Request.","href":"/api/legacy-payment-requests#cancel-a-payment-request-"},"295":{"path":["API","Legacy Payment Requests"],"title":"Attributes","description":"","description":"This endpoint allows you to void a Payment Request.","href":"/api/legacy-payment-requests#void-a-payment-request-"},"298":{"path":["API","Legacy Payment Requests"],"title":"Attributes","description":"Voiding a payment request can cause it to be cancelled or refunded. Therefore, this endpoint can give the same error responses as requests.cancel and transactions.refund.\nAfter 24 hours voiding a payment request will be disallowed, however a refund can still be made against the payment request if it has been paid successfully.","href":"/api/legacy-payment-requests#attributes"},"299":{"path":["API","Legacy Payment Requests"],"title":"Errors","description":"Voiding a payment request can cause it to be cancelled or refunded. Therefore, this endpoint can give the same error responses as requests.cancel and transactions.refund.\nAfter 24 hours voiding a payment request will be disallowed, however a refund can still be made against the payment request if it has been paid successfully.","href":"/api/legacy-payment-requests#errors"},"300":{"path":["API","Legacy Payment Requests"],"title":"Refund a Transaction ","description":"Refunding a transaction can be done with or without an external reference.","href":"/api/legacy-payment-requests#refund-a-transaction-"},"301":{"path":["API","Legacy Payment Requests"],"title":"Refund without external reference","description":"If you refund a transaction without providing an external reference, you\nwill get a successful response for the first request and then an\nALREADY_REFUNDED message for any refund requests that follow for the same\ntransaction, unless an external reference is provided.","href":"/api/legacy-payment-requests#refund-without-external-reference"},"302":{"path":["API","Legacy Payment Requests"],"title":"Refund with external reference","description":"If you provide an external reference then a transaction can be refunded\nmultiple times provided that the external reference is unique for each\nrefund request. When a duplicate external reference is provided when\nattempting to refund the same transaction we return a successful response if\nthe amount of the request is the same both times but do not process another\nrefund, this is because we assume it to be a repeat request. If the amount\nis different you will get a REPEAT_REFERENCE error message.","href":"/api/legacy-payment-requests#refund-with-external-reference"},"303":{"path":["API","Legacy Payment Requests"],"title":"Refund a Pre Auth Payment Request with Confirmations","description":"The legacy refund endpoint cannot be used to refund Pre Auth Payment Requests with Confirmations. Please use the current refund endpoint instead.","href":"/api/legacy-payment-requests#refund-a-pre-auth-payment-request-with-confirmations"},"304":{"path":["API","Legacy Payment Requests"],"title":"Attributes","description":"Webhook notifications are sent for significant Payment life-cycle\nevents. The Webhook endpoint is notified by sending an HTTP POST request to the\nnotifyUrl defined in the Payment Request.","href":"/api/legacy-payment-requests#attributes"},"305":{"path":["API","Legacy Payment Requests"],"title":"Errors","description":"Webhook notifications are sent for significant Payment life-cycle\nevents. The Webhook endpoint is notified by sending an HTTP POST request to the\nnotifyUrl defined in the Payment Request.","href":"/api/legacy-payment-requests#errors"},"306":{"path":["API","Legacy Payment Requests"],"title":"Webhooks ","description":"Webhook notifications are sent for significant Payment life-cycle\nevents. The Webhook endpoint is notified by sending an HTTP POST request to the\nnotifyUrl defined in the Payment Request.","href":"/api/legacy-payment-requests#webhooks-"},"307":{"path":["API","Legacy Payment Requests"],"title":"Life-cycle Events That Trigger Webhooks","description":"The supported event types that will be notified to the Payment Requests webhook\nand the associated \"transactionType\" value that will be sent in the payload\nare:","href":"/api/legacy-payment-requests#life-cycle-events-that-trigger-webhooks"},"308":{"path":["API","Legacy Payment Requests"],"title":"Payment Request Cancelled","description":"A payment request can be cancelled by either calling the requests.cancel\nor requests.void endpoint before a request has been paid successfully.\nWhen a request has been cancelled we send a JWT that when decoded matches the\nPayment Request Cancelled example in the Decoded Webhook JWT Examples\nsection below.","href":"/api/legacy-payment-requests#payment-request-cancelled"},"309":{"path":["API","Legacy Payment Requests"],"title":"Payment Request Expired","description":"A payment request expires two minutes after being created if it hasn't been\ncancelled, or paid. When a request has expired we send a JWT that when\ndecoded matches the Payment Request Cancelled example in the Decoded\nWebhook JWT Examples section below with the transactionType set to EXPIRED.","href":"/api/legacy-payment-requests#payment-request-expired"},"310":{"path":["API","Legacy Payment Requests"],"title":"Transaction Completed","description":"A transaction is considered complete when requests.pay is called with\nparameters that satisfy a payment request and the request has been paid\nsuccessfully. When a transaction has been completed we send a JWT that when\ndecoded matches the Transaction Completed example in the Decoded Webhook\nJWT Examples section below.","href":"/api/legacy-payment-requests#transaction-completed"},"311":{"path":["API","Legacy Payment Requests"],"title":"Transaction Refunded","description":"A transaction can be refunded one to many times and each time a transaction\nhas been refunded successfully we notify the webhook associated with the\noriginal payment request. A transaction can be refunded when\ntransactions.refund has been called for a partial or full refund, or when\nrequests.void is called for a request that has been paid. When a\ntransaction has been refunded we send a JWT that when decoded matches the\nTransaction Completed example in the Decoded Webhook JWT Examples section\nbelow but with transactionType set to REFUND.","href":"/api/legacy-payment-requests#transaction-refunded"},"312":{"path":["API","Legacy Payment Requests"],"title":"Webhook Payload","description":"The body of the webhook is a JSON document with the following format:","href":"/api/legacy-payment-requests#webhook-payload"},"313":{"path":["API","Legacy Payment Requests"],"title":"Webhook Payload Fields","description":"| Property | Description |\n|:----------------|:------------------------------------------------------------|\n| transactionId | Id of the transaction |\n| transactionType | Indicates which event triggered the notification message |\n| state | Current state of the transaction |\n| ledger | The ledger at which the authorization was processed |\n| amount | Transaction amount in the lowest denomination available |\n| createdAt | Timestamp at which the request was created |\n| updatedAt | Timestamp at which the request was updated |\n| type | The payment type used by the issuer to reconcile settlement |\n| request | Request object, see details at [requests.info][] |\n| authCode | Authorization code used to settle this transaction |","href":"/api/legacy-payment-requests#webhook-payload-fields"},"314":{"path":["API","Legacy Payment Requests"],"title":"Webhook JWT Validation","description":"A webhook JWT can be validated by checking the signature against the Centrapay\nWebhook public key:","href":"/api/legacy-payment-requests#webhook-jwt-validation"},"315":{"path":["API","Legacy Payment Requests"],"title":"Decoded Webhook JWT Examples","description":"","href":"/api/legacy-payment-requests#decoded-webhook-jwt-examples"},"316":{"href":"/api/managed-integrations","path":["API","Managed Integrations"],"title":"Managed Integrations","description":"Managed Integration model and related endpoints"},"317":{"path":["API","Managed Integrations"],"title":"Managed Integration Model","description":"A summary of the Invitation for a Managed Integration.","href":"/api/managed-integrations#managed-integration-model"},"318":{"path":["API","Managed Integrations"],"title":"Attributes","description":"A summary of the Invitation for a Managed Integration.","href":"/api/managed-integrations#attributes"},"319":{"path":["API","Managed Integrations"],"title":"Invitation Summary Model","description":"A summary of the Invitation for a Managed Integration.","href":"/api/managed-integrations#invitation-summary-model"},"320":{"path":["API","Managed Integrations"],"title":"Attributes","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-"},"332":{"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-"},"334":{"path":["API","Media Uploads"],"title":"Attributes","description":"No attributes.","href":"/api/media-uploads#attributes"},"335":{"href":"/api/merchant-configs","path":["API","Merchant Configs"],"title":"Merchant Configs","description":"Merchant Config model and related endpoints"},"336":{"path":["API","Merchant Configs"],"title":"Merchant Config Model","description":"See Asset Types for values that may be present in the type field.","href":"/api/merchant-configs#merchant-config-model"},"337":{"path":["API","Merchant Configs"],"title":"Attributes","description":"See Asset Types for values that may be present in the type field.","href":"/api/merchant-configs#attributes"},"338":{"path":["API","Merchant Configs"],"title":"Payment Option Config Model","description":"See Asset Types for values that may be present in the type field.","href":"/api/merchant-configs#payment-option-config-model"},"339":{"path":["API","Merchant Configs"],"title":"Attributes","description":"See Asset Types for values that may be present in the type field.","href":"/api/merchant-configs#attributes"},"340":{"path":["API","Merchant Configs"],"title":"Create Merchant Config","description":"This endpoint allows you to create a Merchant Config for a Merchant.","href":"/api/merchant-configs#create-merchant-config"},"341":{"path":["API","Merchant Configs"],"title":"Attributes","description":"","description":"Returns a paginated list of Merchants which belong to the authenticated subject.","href":"/api/merchants#list-merchants-"},"378":{"path":["API","Merchants"],"title":"Attributes","description":"No attributes.","href":"/api/merchants#attributes"},"379":{"href":"/api/pagination","path":["API","Pagination"],"title":"Pagination","description":"Introduction to Pagination"},"380":{"path":["API","Pagination"],"title":"Pagination Model","description":"","href":"/api/pagination#pagination-model"},"381":{"path":["API","Pagination"],"title":"Example","description":"","href":"/api/pagination#example"},"382":{"href":"/api/patron-codes","path":["API","Patron Codes"],"title":"Patron Codes","description":"Patron Code model and related endpoints"},"383":{"path":["API","Patron Codes"],"title":"Patron Code Model","description":"✩ Barcode is a 16 digit number. The first 6 digits are a Centrapay defined prefix, then a 9 digit\ncode, then a luhn checksum digit.","href":"/api/patron-codes#patron-code-model"},"384":{"path":["API","Patron Codes"],"title":"Attributes","description":"✩ Barcode is a 16 digit number. The first 6 digits are a Centrapay defined prefix, then a 9 digit\ncode, then a luhn checksum digit.","href":"/api/patron-codes#attributes"},"385":{"path":["API","Patron Codes"],"title":"Test Scenario Name","description":"This field is used to inject behavior into a Payment Request when the\ngenerated barcode is supplied on creation. If a Test Scenario Name is\ndefined on a Patron Code, it is considered a test resource and can only\nbe used with Payment Requests that will have a liveness of 'test'. The Asset Type\ncentrapay.nzd.test is required to run test scenarios.","href":"/api/patron-codes#test-scenario-name"},"386":{"path":["API","Patron Codes"],"title":"Create Patron Code","description":"This endpoint allows you to create a Patron Code. You can find payment request information attached to a Patron Code by polling for the Payment Request using the transacting APIs.","href":"/api/patron-codes#create-patron-code"},"387":{"path":["API","Patron Codes"],"title":"Attributes","description":"No attributes.","href":"/api/patron-codes#attributes"},"388":{"path":["API","Patron Codes"],"title":"Get Patron Code","description":"This endpoint allows you to retrieve a Patron Code by id.","href":"/api/patron-codes#get-patron-code"},"389":{"path":["API","Patron Codes"],"title":"Attributes","description":"No attributes.","href":"/api/patron-codes#attributes"},"390":{"path":["API","Patron Codes"],"title":"Get Patron Code By Barcode","description":"This endpoint allows you to retrieve a Patron Code by barcode.","href":"/api/patron-codes#get-patron-code-by-barcode"},"391":{"path":["API","Patron Codes"],"title":"Attributes","description":"No attributes.","href":"/api/patron-codes#attributes"},"392":{"path":["API","Patron Codes"],"title":"Errors","description":"","href":"/api/patron-codes#errors"},"393":{"href":"/api/payment-requests","path":["API","Payment Requests"],"title":"Payment Requests","description":"Payment request models and related endpoints"},"394":{"path":["API","Payment Requests"],"title":"Payment Request Model","description":"⭐️ For Payment Options which specify an address, there’s a requirement to make a transaction on an external ledger. Once you have made that payment, you can use the transaction id to Pay a Payment Request using the legacy payment API.","href":"/api/payment-requests#payment-request-model"},"395":{"path":["API","Payment Requests"],"title":"Attributes","description":"⭐️ For Payment Options which specify an address, there’s a requirement to make a transaction on an external ledger. Once you have made that payment, you can use the transaction id to Pay a Payment Request using the legacy payment API.","href":"/api/payment-requests#attributes"},"396":{"path":["API","Payment Requests"],"title":"Payment Option Model","description":"⭐️ For Payment Options which specify an address, there’s a requirement to make a transaction on an external ledger. Once you have made that payment, you can use the transaction id to Pay a Payment Request using the legacy payment API.","href":"/api/payment-requests#payment-option-model"},"397":{"path":["API","Payment Requests"],"title":"Attributes","description":"⭐️ For Payment Options which specify an address, there’s a requirement to make a transaction on an external ledger. Once you have made that payment, you can use the transaction id to Pay a Payment Request using the legacy payment API.","href":"/api/payment-requests#attributes"},"398":{"path":["API","Payment Requests"],"title":"Accepted Collections","description":"If a Payment Request contains a centrapay.token.* Payment Option, an array of Accepted Collections will be present inside the centrapay.token Payment Option.\nThe Accepted Collections returned can be used to determine if a Centrapay Token can be used to pay a Payment Request, and the Line Items able to be purchased using the Token.","href":"/api/payment-requests#accepted-collections"},"399":{"path":["API","Payment Requests"],"title":"Attributes","description":"Some Asset Types require conditional approval to pay. Possible Payment Conditions include confirming proof of ID\nor confirming a promotional item was purchased.","href":"/api/payment-requests#attributes"},"400":{"path":["API","Payment Requests"],"title":"Payment Condition Model","description":"Some Asset Types require conditional approval to pay. Possible Payment Conditions include confirming proof of ID\nor confirming a promotional item was purchased.","href":"/api/payment-requests#payment-condition-model"},"401":{"path":["API","Payment Requests"],"title":"Attributes","description":"An order item for which payment is requested.\nThe currency and units for a Line Item price will be consistent with the Payment Request value and the sum of Line Item prices should equal the Payment Request value.","href":"/api/payment-requests#attributes"},"402":{"path":["API","Payment Requests"],"title":"Line Item Model","description":"An order item for which payment is requested.\nThe currency and units for a Line Item price will be consistent with the Payment Request value and the sum of Line Item prices should equal the Payment Request value.","href":"/api/payment-requests#line-item-model"},"403":{"path":["API","Payment Requests"],"title":"Attributes","description":"The Paid By provides a summary of the transactions after the Payment Request was paid.","href":"/api/payment-requests#attributes"},"404":{"path":["API","Payment Requests"],"title":"Product Classification","description":"The Paid By provides a summary of the transactions after the Payment Request was paid.","href":"/api/payment-requests#product-classification"},"405":{"path":["API","Payment Requests"],"title":"Attributes","description":"The Paid By provides a summary of the transactions after the Payment Request was paid.","href":"/api/payment-requests#attributes"},"406":{"path":["API","Payment Requests"],"title":"Paid By Model","description":"The Paid By provides a summary of the transactions after the Payment Request was paid.","href":"/api/payment-requests#paid-by-model"},"407":{"path":["API","Payment Requests"],"title":"Attributes","description":"A Payment Activity records a transaction that has happened on a Payment Request.\nPayment Activities are created when a Payment Request has been created, paid, refunded, cancelled, or expired.","href":"/api/payment-requests#attributes"},"408":{"path":["API","Payment Requests"],"title":"Asset Totals","description":"A Payment Activity records a transaction that has happened on a Payment Request.\nPayment Activities are created when a Payment Request has been created, paid, refunded, cancelled, or expired.","href":"/api/payment-requests#asset-totals"},"409":{"path":["API","Payment Requests"],"title":"Attributes","description":"A Payment Activity records a transaction that has happened on a Payment Request.\nPayment Activities are created when a Payment Request has been created, paid, refunded, cancelled, or expired.","href":"/api/payment-requests#attributes"},"410":{"path":["API","Payment Requests"],"title":"Payment Activity Model","description":"A Payment Activity records a transaction that has happened on a Payment Request.\nPayment Activities are created when a Payment Request has been created, paid, refunded, cancelled, or expired.","href":"/api/payment-requests#payment-activity-model"},"411":{"path":["API","Payment Requests"],"title":"Attributes","description":"| Name | Description |\n| ----------------- | ----------------------------------------------------------------------------------------------------------- |\n| request | Payment Request was created. |\n| preAuthRequest | Payment Request was created with the preAuth flag set to \"true\". |\n| paid | Payment Request was paid. |\n| payment | A payment was made towards the Payment Request. |\n| refund | Funds were returned to the shopper. |\n| cancellation | Payment Request was cancelled by the merchant or the shopper. |\n| expiry | Payment Request wasn't paid before time out. |\n| accept-condition | A Payment Condition was accepted. |\n| decline-condition | A Payment Condition was declined. |\n| authorization | A Pre Auth Payment Request was approved and confirmations can be made against it. |\n| confirmation | Funds on a Pre Auth have been drawn down on. |\n| release | Pre Auth has been finalised and any remaining funds from Authorization have been returned. |","href":"/api/payment-requests#attributes"},"412":{"path":["API","Payment Requests"],"title":"Payment Activity Types","description":"| Name | Description |\n| ----------------- | ----------------------------------------------------------------------------------------------------------- |\n| request | Payment Request was created. |\n| preAuthRequest | Payment Request was created with the preAuth flag set to \"true\". |\n| paid | Payment Request was paid. |\n| payment | A payment was made towards the Payment Request. |\n| refund | Funds were returned to the shopper. |\n| cancellation | Payment Request was cancelled by the merchant or the shopper. |\n| expiry | Payment Request wasn't paid before time out. |\n| accept-condition | A Payment Condition was accepted. |\n| decline-condition | A Payment Condition was declined. |\n| authorization | A Pre Auth Payment Request was approved and confirmations can be made against it. |\n| confirmation | Funds on a Pre Auth have been drawn down on. |\n| release | Pre Auth has been finalised and any remaining funds from Authorization have been returned. |","href":"/api/payment-requests#payment-activity-types"},"413":{"path":["API","Payment Requests"],"title":"Cancellation Reasons","description":"| Reason | Description |\n| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| CANCELLED_BY_MERCHANT | The merchant cancelled the Payment Request by calling the cancel or void endpoint. |\n| CANCELLED_BY_PATRON | The patron cancelled the transaction. |\n| PATRON_CODE_INVALID | The patron code on the Payment Request was invalid. |\n| PAYMENT_FAILED | The Payment Request failed for an unknown reason. |\n| PATRON_CODE_EXPIRED | The patron code on the Payment Request has expired. |\n| DECLINED_BY_PATRON | The payment was declined by the patron during approval steps. |\n| DECLINED_BY_MERCHANT | The payment was declined by the merchant during approval steps. |\n| PAYMENT_DECLINED | The payment parameters were valid but payment was declined because additional payment restrictions were violated. For example, asset not active, asset overdrawn, quota exceeded or line item category restrictions. |\n| PAYMENT_REQUEST_EXPIRED | The Payment Request has expired. |\n| NO_AVAILABLE_PAYMENT_OPTIONS | No payment options match the requested payment parameters. |\n| INACTIVE_ASSET | The asset used to pay the Payment Request is inactive. |","href":"/api/payment-requests#cancellation-reasons"},"414":{"path":["API","Payment Requests"],"title":"Create a Payment Request","description":"This endpoint allows you to create a Payment Request.","href":"/api/payment-requests#create-a-payment-request"},"415":{"path":["API","Payment Requests"],"title":"Attributes","description":"","description":"Update a user’s mutable attributes. At least one field must be provided in the request.","href":"/api/profiles#update-profile-"},"451":{"path":["API","Profiles"],"title":"Attributes","description":"","description":"This endpoint allows you to retrieve a user's Profile.","href":"/api/profiles#get-profile-"},"453":{"path":["API","Profiles"],"title":"Attributes","description":"No attributes.","href":"/api/profiles#attributes"},"454":{"href":"/api/quotas","path":["API","Quotas"],"title":"Quotas","description":"Quota model and related endpoints"},"455":{"path":["API","Quotas"],"title":"Quota Model","description":"| Type | Description | Scoped | Periods |\n|:------|:--------------------------------------------------------------------|:------:|:-------------------|\n| spend | Value of wallet-based payments or asset transfers from the account. | Yes | monthly yearly |\n| topup | Value of topups from bank accounts linked to the account. | Yes | monthly yearly |","href":"/api/quotas#quota-model"},"456":{"path":["API","Quotas"],"title":"Attributes","description":"| Type | Description | Scoped | Periods |\n|:------|:--------------------------------------------------------------------|:------:|:-------------------|\n| spend | Value of wallet-based payments or asset transfers from the account. | Yes | monthly yearly |\n| topup | Value of topups from bank accounts linked to the account. | Yes | monthly yearly |","href":"/api/quotas#attributes"},"457":{"path":["API","Quotas"],"title":"Supported Quota Types","description":"| Type | Description | Scoped | Periods |\n|:------|:--------------------------------------------------------------------|:------:|:-------------------|\n| spend | Value of wallet-based payments or asset transfers from the account. | Yes | monthly yearly |\n| topup | Value of topups from bank accounts linked to the account. | Yes | monthly yearly |","href":"/api/quotas#supported-quota-types"},"458":{"path":["API","Quotas"],"title":"Get Account Quotas ","description":"Retrieve quota limits and usages for the current intervals. Ie, all quotas for the current day, current month and current year as well as any quotas that are not associated with a temporal period.","href":"/api/quotas#get-account-quotas-"},"459":{"path":["API","Quotas"],"title":"Attributes","description":"No attributes.","href":"/api/quotas#attributes"},"460":{"path":["API","Quotas"],"title":"Errors","description":"If a quota limit is exceeded by an action that enforces quota limits, an error response will be returned. The quotas field will contain all quota limits that are exceeded with the usage set to the amount that the quota would have been updated to if the action was completed.","href":"/api/quotas#errors"},"461":{"href":"/api/scanned-codes","path":["API","Scanned Codes"],"title":"Scanned Codes","description":"Scanned Code model and related endpoints"},"462":{"path":["API","Scanned Codes"],"title":"Scanned Code Model","description":"","description":""},"478":{"path":["API","Tokens"],"title":"Attributes","description":"","description":""},"480":{"path":["API","Tokens"],"title":"Attributes","description":"","description":""},"482":{"path":["API","Tokens"],"title":"Attributes","description":"","description":"This endpoint allows you to create a Token Collection.","href":"/api/tokens#create-token-collection-"},"484":{"path":["API","Tokens"],"title":"Attributes","description":"","description":"Returns a paginated list of Token Collections for an Account.","href":"/api/tokens#list-token-collections-"},"486":{"path":["API","Tokens"],"title":"Attributes","description":"","description":"This endpoint allows you to create a Redemption Condition.","href":"/api/tokens#create-redemption-condition-"},"488":{"path":["API","Tokens"],"title":"Attributes","description":"","description":"This endpoint allows you to create a Token.","href":"/api/tokens#create-token-"},"491":{"path":["API","Tokens"],"title":"Attributes","description":"","href":"/api/tokens#attributes"},"492":{"path":["API","Tokens"],"title":"Errors","description":"","href":"/api/tokens#errors"},"493":{"href":"/api/wallets","path":["API","Wallets"],"title":"Wallets","description":"Wallet models and related endpoints"},"494":{"path":["API","Wallets"],"title":"Settlement Wallets ","description":"A Settlement Wallet is a special type of Wallet that can only receive or refund money related to a Payment Request. This means you cannot topup, withdraw, or send money from this Wallet.","href":"/api/wallets#settlement-wallets-"},"495":{"path":["API","Wallets"],"title":"Wallet Model","description":" {\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"},"520":{"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."},"521":{"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"},"522":{"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"},"523":{"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"},"524":{"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"},"525":{"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"},"526":{"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"},"527":{"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"},"528":{"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"},"529":{"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."},"530":{"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"},"531":{"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"},"532":{"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"},"533":{"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"},"534":{"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"},"535":{"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"},"536":{"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"},"537":{"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"},"538":{"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"},"539":{"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"},"540":{"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"},"541":{"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"},"542":{"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"},"543":{"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"},"544":{"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"},"545":{"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"},"546":{"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"},"547":{"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"},"548":{"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"},"549":{"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"},"550":{"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."},"551":{"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"},"552":{"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"},"553":{"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"},"554":{"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"},"555":{"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"},"556":{"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"},"557":{"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"},"558":{"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"},"559":{"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"},"560":{"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"},"561":{"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"},"562":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Refunds","description":"Cardholder purchases are refunded by refunding the Payment Request.","href":"/guides/farmlands-pos-integration#refunds"},"563":{"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"},"564":{"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"},"565":{"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"},"566":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Next Steps","description":"","href":"/guides/farmlands-pos-integration#next-steps"},"567":{"href":"/guides/initiating-refunds","path":["Reference","Merchant Integrations","Initiating Refunds"],"title":"Initiating Refunds","description":"How to issue refunds on the Centrapay payment platform."},"568":{"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"},"569":{"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"},"570":{"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"},"571":{"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"},"572":{"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"},"573":{"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"},"574":{"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."},"575":{"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"},"576":{"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"},"577":{"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"},"578":{"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"},"579":{"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"},"580":{"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"},"581":{"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"},"582":{"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"},"583":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Protocol","description":"Each endpoint must use the HTTPS protocol.","href":"/guides/integrating-third-party-asset#protocol"},"584":{"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"},"585":{"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"},"586":{"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"},"587":{"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"},"588":{"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"},"589":{"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"},"590":{"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."},"591":{"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"},"592":{"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"},"593":{"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."},"594":{"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"},"595":{"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"},"596":{"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"},"597":{"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."},"598":{"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"},"599":{"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"},"600":{"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"},"601":{"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."},"602":{"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"},"603":{"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"},"604":{"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"},"605":{"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"},"606":{"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"},"607":{"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."},"608":{"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."},"609":{"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"},"610":{"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"},"611":{"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"},"612":{"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"},"613":{"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"},"614":{"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"},"615":{"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"},"616":{"path":["Reference","Merchant Integrations","Partial Payment"],"title":"See also","description":"","href":"/guides/partial-payment-extension#see-also"},"617":{"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."},"618":{"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."},"619":{"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"},"620":{"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"},"621":{"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."},"622":{"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"},"623":{"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"},"624":{"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"},"625":{"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"},"626":{"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"},"627":{"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"},"628":{"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"},"629":{"href":"/guides/payment-terminals","path":["Reference","Merchant Integrations","Payment Terminal"],"title":"Payment Terminal","description":"How to integrate a payment terminal with Centrapay APIs."},"630":{"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"},"631":{"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"},"632":{"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"},"633":{"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"},"634":{"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"},"635":{"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"},"636":{"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"},"637":{"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"},"638":{"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"},"639":{"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."},"640":{"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"},"641":{"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"},"642":{"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"},"643":{"href":"/guides/requesting-payment","path":["Reference","Merchant Integrations","Requesting Payment"],"title":"Requesting Payment","description":"How to request payment on the Centrapay payment platform."},"644":{"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"},"645":{"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"},"646":{"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"},"647":{"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"},"648":{"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"},"649":{"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"},"650":{"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."},"651":{"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"},"652":{"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"},"653":{"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"},"654":{"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"},"655":{"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"},"656":{"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"},"657":{"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"},"658":{"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"},"659":{"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"},"660":{"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"},"661":{"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"},"662":{"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"},"663":{"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"},"664":{"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"},"665":{"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"},"666":{"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"},"667":{"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"},"668":{"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"},"669":{"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"},"670":{"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":"Account Membership Model","description":"A Member contains extended information about a user's access to an account.","href":"/api/account-memberships#account-membership-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":"When you send another centrapay user cash or assets, they're automatically assigned to them.\nHowever, if they're not signed up yet then these assets are not immediately assigned.","href":"/api/asset-transfers#resolve-claimable-assets-"},"49":{"path":["API","Asset Transfers"],"title":"Attributes","description":"No Attributes.","href":"/api/asset-transfers#attributes"},"50":{"path":["API","Asset Transfers"],"title":"List Asset Transfers ","description":"Returns a paginated list of Asset Transfers.","href":"/api/asset-transfers#list-asset-transfers-"},"51":{"path":["API","Asset Transfers"],"title":"Attributes","description":"","href":"/api/asset-transfers#attributes"},"52":{"href":"/api/asset-types","path":["API","Asset Types"],"title":"Asset Types","description":"Asset types supported for payment"},"53":{"path":["API","Asset Types"],"title":"Flags","description":"","href":"/api/asset-types#flags"},"54":{"href":"/api/assets","path":["API","Assets"],"title":"Assets","description":"Asset models and related endpoints"},"55":{"path":["API","Assets"],"title":"Asset Model","description":"All assets have the following fields along with the additional fields that are\nspecific to its category. Assets which don't have a category are considered \nand the model may change.","href":"/api/assets#asset-model"},"56":{"path":["API","Assets"],"title":"Attributes","description":"Money assets, being backed by real currency, are the most flexible asset types.\nMoney is accepted for most payment requests, can be sent in arbitrary amounts\nand does not expire.","href":"/api/assets#attributes"},"57":{"path":["API","Assets"],"title":"Money Model","description":"Money assets, being backed by real currency, are the most flexible asset types.\nMoney is accepted for most payment requests, can be sent in arbitrary amounts\nand does not expire.","href":"/api/assets#money-model"},"58":{"path":["API","Assets"],"title":"Attributes","description":"Gift cards are similar to money but have greater spending restrictions and are\nnot always backed by real currency. Gift cards usually have an expiry date, are\ntypically tied to a small number of merchants, and can only be sent in their\nentirety.","href":"/api/assets#attributes"},"59":{"path":["API","Assets"],"title":"Gift Card Model","description":"Gift cards are similar to money but have greater spending restrictions and are\nnot always backed by real currency. Gift cards usually have an expiry date, are\ntypically tied to a small number of merchants, and can only be sent in their\nentirety.","href":"/api/assets#gift-card-model"},"60":{"path":["API","Assets"],"title":"Attributes","description":"Tokens are assets which can only be spent in full. Every token is associated with a collection, which defines the branding and general rules for the tokens, such as active duration.","href":"/api/assets#attributes"},"61":{"path":["API","Assets"],"title":"Token Model ","description":"Tokens are assets which can only be spent in full. Every token is associated with a collection, which defines the branding and general rules for the tokens, such as active duration.","href":"/api/assets#token-model-"},"62":{"path":["API","Assets"],"title":"Attributes","description":"The destParty and srcParty are optionally provided only on transactions of\ntype transfer. Values may include a merchant name, user handle, masked user\nemail, masked user phone, or bank account.","href":"/api/assets#attributes"},"63":{"path":["API","Assets"],"title":"Asset Transaction Model","description":"The destParty and srcParty are optionally provided only on transactions of\ntype transfer. Values may include a merchant name, user handle, masked user\nemail, masked user phone, or bank account.","href":"/api/assets#asset-transaction-model"},"64":{"path":["API","Assets"],"title":"Attributes","description":"","description":"Returns a paginated list of Asset Transactions. This endpoint is currently only supported for quartz asset types.","href":"/api/assets#list-asset-transactions-"},"72":{"path":["API","Assets"],"title":"Attributes","description":"No Attributes.","href":"/api/assets#attributes"},"73":{"path":["API","Assets"],"title":"Archive Asset","description":"Archive supported asset types by asset id. Currently only gift cards may be archived.","href":"/api/assets#archive-asset"},"74":{"path":["API","Assets"],"title":"Attributes","description":"No Attributes.","href":"/api/assets#attributes"},"75":{"path":["API","Assets"],"title":"Errors","description":"","href":"/api/assets#errors"},"76":{"href":"/api/auth","path":["API","Auth"],"title":"Auth","description":"Introduction to Authentication"},"77":{"path":["API","Auth"],"title":"Authenticating API Calls","description":"API calls can be authenticated by either providing an API key in the\n\"X-Api-Key\" header or by providing a user access token in the \"Authorization\"\nheader.","href":"/api/auth#authenticating-api-calls"},"78":{"path":["API","Auth"],"title":"API Keys","description":"API Keys provide enduring access to a single Centrapay account.","href":"/api/auth#api-keys"},"79":{"path":["API","Auth"],"title":"User Access Tokens","description":"User access tokens provide time-limited access to all Centrapay accounts for\nwhich the user is a member. Access tokens are issued using OIDC code flow via\nthe Centrapay OAuth authorization server and login page at auth.centrapay.com.","href":"/api/auth#user-access-tokens"},"80":{"path":["API","Auth"],"title":"Claims","description":"The following table lists the claims which may be be included in a user id token.\nAt minimum, the \"sub\" claim and one of \"phone_number\" or \"email\" will be present.","href":"/api/auth#claims"},"81":{"path":["API","Auth"],"title":"Roles and Permissions","description":"Users and API keys are assigned a role for their associated Centrapay\naccount(s). The permissions granted to the roles are shown in the table below.","href":"/api/auth#roles-and-permissions"},"82":{"path":["API","Auth"],"title":"Account Flags","description":"Some permissions require an additional flag associated to their individual account or the\ntargeted account that owns the resource (they may be the same account). For each permission,\nif there is a flag associated to it then at least one of them must be met.","href":"/api/auth#account-flags"},"83":{"path":["API","Auth"],"title":"Permissions","description":"| Permission | Account Owner | Anon Consumer | Merchant Terminal | External Asset Provider | Cashier |\n| ---------------------------------- | ------------- | ------------- | ----------------- | ----------------------- | ------- |\n| accounts:create | ✅ | | | | |\n| accounts:read | ✅ | | | ✅ | ✅ |\n| accounts:updat | ✅ | | | | |\n| api-keys:create | ✅ | | | | |\n| api-keys:list | ✅ | | | | |\n| api-keys:update | ✅ | | | | |\n| asset-transfers:claim | ✅ | | | ✅ | |\n| asset-transfers:create 👤 🧀 | ✅ | | | ✅ | |\n| asset-transfers:read | ✅ | | | ✅ | |\n| assets:read | ✅ | | | ✅ | |\n| assets:spend 👤 | ✅ | | | | |\n| bank-account-approvals:create | ✅ | | | | |\n| bank-account-requests:authorize | ✅ | | | | |\n| bank-account-requests:create | ✅ | | | | |\n| bank-accounts:create | ✅ | | | | |\n| bank-accounts:read | ✅ | | | | |\n| business:create | ✅ | | | | |\n| business:update | ✅ | | | | |\n| business:read | ✅ | | | | |\n| collections:create 🪙 | ✅ | | | | |\n| collections:read 🪙 | ✅ | | | | |\n| external-assets:create 👤 🧀 | ✅ | | | ✅ | |\n| external-assets:update | ✅ | | | ✅ | |\n| integration-requests:configure | | | | | |\n| integration-requests:create 🗄 | ✅ | | | | |\n| integration-requests:read 🗄 | ✅ | | | | |\n| invitations:accept | ✅ ✸ | | | | |\n| invitations:read | ✅ ✸ | | | | |\n| media-uploads:create | ✅ | | | | |\n| memberships:delete 🗄 | ✅ | | | | |\n| memberships:update | ✅ | | | | |\n| merchants:create 🗄 | ✅ | | | | |\n| merchants:list 🗄 | ✅ | | | | ✅ |\n| merchants:read 🗄 | ✅ | | | | ✅ |\n| merchants:update 🗄 | ✅ | | | | |\n| patron-codes:create | ✅ | | | | |\n| patron-codes:read | ✅ | | ✅ | | ✅ |\n| payment-activities:read | ✅ | | ✅ | | ✅ |\n| payment-conditions:approve | ✅ | | ✅ | | ✅ |\n| payment-requests:cancel 🗄 | ✅ | | ✅ | | ✅ |\n| payment-requests:create 🗄 | ✅ | | ✅ ✸ | | ✅ |\n| payment-requests:pay 🗄 | ✅ ✸ | ✅ ✸ | ✅ | | ✅ ✸ |\n| payment-requests:read | ✅ ✸ | ✅ ✸ | ✅ ✸ | | ✅ ✸ |\n| payment-requests:read-by-shortcode | ✅ | | ✅ | | ✅ |\n| payment-requests:refund 🗄 | ✅ | | ✅ | | ✅ |\n| payment-requests:void 🗄 | ✅ | | ✅ | | ✅ |\n| payment-requests:release 🗄 | ✅ | | ✅ | | ✅ |\n| payment-requests:confirm 🗄 | ✅ | | ✅ | | ✅ |\n| quotas:read | ✅ | | | | |\n| quotas:read | ✅ | | | | |\n| redemption-conditions:create 🪙 | ✅ | | | | |\n| scanned-code:decode | ✅ | | ✅ | | ✅ |\n| tokens:create 🪙 | ✅ | | | | |\n| topups:create 👤 | ✅ | | | | |\n| topups:read | ✅ | | | | |\n| wallets:create | ✅ | | | | |\n| wallets:deposit | ✅ | | | | |\n| wallets:read | ✅ | | | | |\n| wallets:transfer 👤 | ✅ | | | | |\n| wallets:withdraw | ✅ | | | | |","href":"/api/auth#permissions"},"84":{"href":"/api/bank-account-approvals","path":["API","Bank Account Approvals"],"title":"Bank Account Approvals","description":"Bank Account Approval model and related endpoints"},"85":{"path":["API","Bank Account Approvals"],"title":"Bank Account Approval Model","description":"| Name | description |\n| :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| settlement | An approved Bank Account Approval of type settlement is required for the funds in a Settlement Wallet to be released. A Media Upload is uploaded by the user to provide evidence of ownership of the Bank Account to be approved. |\n| account-consent | An approved Bank Account Approval of type account-consent provides an access token to read account details from a third-party. |\n| payment-consent | An approved Bank Account Approval of type payment-consent provides an access token for creating payments with a third-party. |","href":"/api/bank-account-approvals#bank-account-approval-model"},"86":{"path":["API","Bank Account Approvals"],"title":"Attributes","description":"| Name | description |\n| :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| settlement | An approved Bank Account Approval of type settlement is required for the funds in a Settlement Wallet to be released. A Media Upload is uploaded by the user to provide evidence of ownership of the Bank Account to be approved. |\n| account-consent | An approved Bank Account Approval of type account-consent provides an access token to read account details from a third-party. |\n| payment-consent | An approved Bank Account Approval of type payment-consent provides an access token for creating payments with a third-party. |","href":"/api/bank-account-approvals#attributes"},"87":{"path":["API","Bank Account Approvals"],"title":"Bank Account Approval Types","description":"| Name | description |\n| :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| settlement | An approved Bank Account Approval of type settlement is required for the funds in a Settlement Wallet to be released. A Media Upload is uploaded by the user to provide evidence of ownership of the Bank Account to be approved. |\n| account-consent | An approved Bank Account Approval of type account-consent provides an access token to read account details from a third-party. |\n| payment-consent | An approved Bank Account Approval of type payment-consent provides an access token for creating payments with a third-party. |","href":"/api/bank-account-approvals#bank-account-approval-types"},"88":{"path":["API","Bank Account Approvals"],"title":"Bank Account Approval Activity Model","description":"","description":"This endpoint allows you to request a Bank Account Approval.","href":"/api/bank-account-approvals#request-bank-account-approval-"},"91":{"path":["API","Bank Account Approvals"],"title":"Attributes","description":"","description":"This endpoint allows you to retrieve a Bank Account Approval.","href":"/api/bank-account-approvals#get-bank-account-approval-"},"94":{"path":["API","Bank Account Approvals"],"title":"Attributes","description":"No attributes.","href":"/api/bank-account-approvals#attributes"},"95":{"path":["API","Bank Account Approvals"],"title":"Accept Bank Account Approval ","description":"This endpoint allows you to accept a Bank Account Approval.","href":"/api/bank-account-approvals#accept-bank-account-approval-"},"96":{"path":["API","Bank Account Approvals"],"title":"Attributes","description":"","description":"This endpoint allows you to decline a Bank Account Approval.","href":"/api/bank-account-approvals#decline-bank-account-approval-"},"99":{"path":["API","Bank Account Approvals"],"title":"Attributes","description":"","description":"This endpoint allows you to list the Bank Account Approvals for a Bank Account.","href":"/api/bank-account-approvals#list-bank-account-approvals-"},"102":{"path":["API","Bank Account Approvals"],"title":"Attributes","description":"No attributes.","href":"/api/bank-account-approvals#attributes"},"103":{"href":"/api/bank-account-connection-intents","path":["API","Bank Account Connection Intents"],"title":"Bank Account Connection Intents","description":"Bank Account Connection Intent model and related endpoints"},"104":{"path":["API","Bank Account Connection Intents"],"title":"Bank Account Connection Intent Model","description":"| Name | description |\n| :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| quartz-accounts | Initiates an authorization flow for authorizing access to bank account details. After a Bank Account Connection Intent has been authorized, one or more Centrapay Bank Account resources may be created. |\n| quartz-payment | Initiates an authorization flow for authorizing access to create payments. |","href":"/api/bank-account-connection-intents#bank-account-connection-intent-model"},"105":{"path":["API","Bank Account Connection Intents"],"title":"Bank Account Connection Intent Types","description":"| Name | description |\n| :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| quartz-accounts | Initiates an authorization flow for authorizing access to bank account details. After a Bank Account Connection Intent has been authorized, one or more Centrapay Bank Account resources may be created. |\n| quartz-payment | Initiates an authorization flow for authorizing access to create payments. |","href":"/api/bank-account-connection-intents#bank-account-connection-intent-types"},"106":{"path":["API","Bank Account Connection Intents"],"title":"Create Bank Account Connection Intent ","description":"This endpoint allows you to create a Bank Account Connection Intent.","href":"/api/bank-account-connection-intents#create-bank-account-connection-intent-"},"107":{"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-"},"110":{"path":["API","Bank Account Connection Intents"],"title":"Attributes","description":"","href":"/api/bank-account-connection-intents#attributes"},"111":{"href":"/api/bank-accounts","path":["API","Bank Accounts"],"title":"Bank Accounts","description":"Bank Account model and related endpoints"},"112":{"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"},"113":{"path":["API","Bank Accounts"],"title":"Attributes","description":"Types of bank accounts to allow access to different Asset Types.","href":"/api/bank-accounts#attributes"},"114":{"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-"},"115":{"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-"},"116":{"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"},"117":{"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-"},"118":{"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-"},"128":{"path":["API","Bank Accounts"],"title":"Attributes","description":"No attributes.","href":"/api/bank-accounts#attributes"},"129":{"path":["API","Bank Accounts"],"title":"Errors","description":"","description":"If you're creating new interfaces, please work with Verify Bank Account.","href":"/api/bank-accounts#verify-bank-authority-"},"134":{"path":["API","Bank Accounts"],"title":"Attributes","description":"","description":"If you're creating new interfaces, please work with List Bank Accounts.","href":"/api/bank-accounts#list-bank-authorities-"},"139":{"path":["API","Bank Accounts"],"title":"Attributes","description":"No attributes.","href":"/api/bank-accounts#attributes"},"140":{"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-"},"141":{"path":["API","Bank Accounts"],"title":"Attributes","description":"","description":"If you're creating new interfaces, please work with Get Bank Account.","href":"/api/bank-accounts#get-bank-authority-"},"144":{"path":["API","Bank Accounts"],"title":"Attributes","description":"No attributes.","href":"/api/bank-accounts#attributes"},"145":{"path":["API","Bank Accounts"],"title":"Errors","description":"","href":"/api/bank-accounts#errors"},"146":{"href":"/api/batch-types/farmlands-external-asset","path":["Exclude","Farmlands External Asset Batch"],"title":"Farmlands External Asset Batch","description":"Farmlands External Asset Batch Models"},"147":{"path":["Exclude","Farmlands External Asset Batch"],"title":"Account Model","description":"Exported Farmlands Account used for importing and updating of a Centrapay Asset.","href":"/api/batch-types/farmlands-external-asset#account-model"},"148":{"path":["Exclude","Farmlands External Asset Batch"],"title":"Attributes","description":"Exported Farmlands Contact and Card information used for authentication, correspondence and payment.","href":"/api/batch-types/farmlands-external-asset#attributes"},"149":{"path":["Exclude","Farmlands External Asset Batch"],"title":"Contact Model","description":"Exported Farmlands Contact and Card information used for authentication, correspondence and payment.","href":"/api/batch-types/farmlands-external-asset#contact-model"},"150":{"path":["Exclude","Farmlands External Asset Batch"],"title":"Attributes","description":"Exported Farmlands Credit Card information used for importing and updating of a Patron Code.","href":"/api/batch-types/farmlands-external-asset#attributes"},"151":{"path":["Exclude","Farmlands External Asset Batch"],"title":"Card Model","description":"Exported Farmlands Credit Card information used for importing and updating of a Patron Code.","href":"/api/batch-types/farmlands-external-asset#card-model"},"152":{"path":["Exclude","Farmlands External Asset Batch"],"title":"Attributes","description":"A complete batch example with all batch types included. For more legible examples please refer to Example Models.","href":"/api/batch-types/farmlands-external-asset#attributes"},"153":{"path":["Exclude","Farmlands External Asset Batch"],"title":"Example JSONL File","description":"A complete batch example with all batch types included. For more legible examples please refer to Example Models.","href":"/api/batch-types/farmlands-external-asset#example-jsonl-file"},"154":{"path":["Exclude","Farmlands External Asset Batch"],"title":"Example Models","description":"Centrapay matches previously created resources using externalId and records get created or updated based on these IDs. In some cases, fields may be omitted to only update some fields.","href":"/api/batch-types/farmlands-external-asset#example-models"},"155":{"href":"/api/batch-types/verifone-terminal-status","path":["Exclude","Verifone Terminal Status Batch"],"title":"Verifone Terminal Status Batch","description":"Verifone Terminal Status Batch Models"},"156":{"path":["Exclude","Verifone Terminal Status Batch"],"title":"Terminal Status","description":"A complete batch example with all batch types included. For more legible examples please refer to Example Models.","href":"/api/batch-types/verifone-terminal-status#terminal-status"},"157":{"path":["Exclude","Verifone Terminal Status Batch"],"title":"Attributes","description":"A complete batch example with all batch types included. For more legible examples please refer to Example Models.","href":"/api/batch-types/verifone-terminal-status#attributes"},"158":{"path":["Exclude","Verifone Terminal Status Batch"],"title":"Example JSONL File","description":"A complete batch example with all batch types included. For more legible examples please refer to Example Models.","href":"/api/batch-types/verifone-terminal-status#example-jsonl-file"},"159":{"path":["Exclude","Verifone Terminal Status Batch"],"title":"Pretty Printed Example","description":"","href":"/api/batch-types/verifone-terminal-status#pretty-printed-example"},"160":{"href":"/api/batches","path":["API","Batches"],"title":"Batches","description":"Batch model and related endpoints"},"161":{"path":["API","Batches"],"title":"Batch Model","description":"Different stages of a Batch's lifecycle.","href":"/api/batches#batch-model"},"162":{"path":["API","Batches"],"title":"Attributes","description":"Different stages of a Batch's lifecycle.","href":"/api/batches#attributes"},"163":{"path":["API","Batches"],"title":"Batch Lifecycle","description":"Different stages of a Batch's lifecycle.","href":"/api/batches#batch-lifecycle"},"164":{"path":["API","Batches"],"title":"Batch Types","description":"The following table describes the Batch Types supported for loading.","href":"/api/batches#batch-types"},"165":{"path":["API","Batches"],"title":"Error","description":"| Field | Type | Description |\n| :--------- | :-------- | :----------------------------------------------------------- |\n| message | String | A description of what caused the Error. |\n| externalId | String | Field used in debugging in reference to an id from the file. |\n| index | BigNumber | Item offset where the Error was identified in the file. |","href":"/api/batches#error"},"166":{"path":["API","Batches"],"title":"Create Batch","description":"Initialize loading of entities from a batch file.","href":"/api/batches#create-batch"},"167":{"path":["API","Batches"],"title":"Attributes","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-"},"179":{"path":["API","Businesses"],"title":"Attributes","description":"","description":"This endpoint allows you to update a Business.","href":"/api/businesses#update-business-"},"182":{"path":["API","Businesses"],"title":"Attributes","description":"","description":"This endpoint allows you to retrieve a Business by account id.","href":"/api/businesses#get-business-by-account-id-"},"185":{"path":["API","Businesses"],"title":"Attributes","description":"No attributes.","href":"/api/businesses#attributes"},"186":{"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-"},"187":{"path":["API","Businesses"],"title":"Attributes","description":"No attributes.","href":"/api/businesses#attributes"},"188":{"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-"},"189":{"path":["API","Businesses"],"title":"Attributes","description":"No attributes.","href":"/api/businesses#attributes"},"190":{"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"},"191":{"path":["API","Businesses"],"title":"Attributes","description":"","href":"/api/businesses#attributes"},"192":{"href":"/api/data-types","path":["API","Data Types"],"title":"Data Types","description":"Introduction to Data Types"},"193":{"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"},"194":{"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"},"195":{"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"},"196":{"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"},"197":{"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"},"198":{"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"},"199":{"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"},"200":{"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"},"201":{"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"},"202":{"href":"/api/external-assets","path":["API","External Assets"],"title":"External Assets","description":"External Assets endpoint documentation"},"203":{"path":["API","External Assets"],"title":"Load an External Asset","description":"Load an asset from a supported third-party issuer. Asset details will be obtained from the issuer.","href":"/api/external-assets#load-an-external-asset"},"204":{"path":["API","External Assets"],"title":"Attributes","description":"","href":"/api/external-assets#attributes"},"205":{"path":["API","External Assets"],"title":"Errors","description":"","href":"/api/external-assets#errors"},"206":{"href":"/api/funds-transfers","path":["API","Funds Transfers"],"title":"Funds Transfers","description":"Endpoints for managing Funds Transfers"},"207":{"path":["API","Funds Transfers"],"title":"Create a Top Up","description":"This endpoint allows you to create a topup.","href":"/api/funds-transfers#create-a-top-up"},"208":{"path":["API","Funds Transfers"],"title":"Attributes","description":"","description":"This endpoint allows you to list the Top Ups for an account.","href":"/api/funds-transfers#list-top-ups-for-an-account-"},"215":{"path":["API","Funds Transfers"],"title":"Attributes","description":"No attributes.","href":"/api/funds-transfers#attributes"},"216":{"path":["API","Funds Transfers"],"title":"Create Withdrawal ","description":"This endpoint allows you to create a withdrawal.","href":"/api/funds-transfers#create-withdrawal-"},"217":{"path":["API","Funds Transfers"],"title":"Attributes","description":"","description":"This endpoint allows you to retrieve a Withdrawal by id.","href":"/api/funds-transfers#get-withdrawal-"},"220":{"path":["API","Funds Transfers"],"title":"Attributes","description":"No attributes.","href":"/api/funds-transfers#attributes"},"221":{"path":["API","Funds Transfers"],"title":"Errors","description":"","description":"This endpoint allows you to list the withdrawals for an Account.","href":"/api/funds-transfers#list-withdrawals-for-an-account-"},"223":{"path":["API","Funds Transfers"],"title":"Attributes","description":"No attributes.","href":"/api/funds-transfers#attributes"},"224":{"path":["API","Funds Transfers"],"title":"Abort Funds Transfer","description":"This endpoint allows you to abort a Funds Transfer.","href":"/api/funds-transfers#abort-funds-transfer"},"225":{"path":["API","Funds Transfers"],"title":"Attributes","description":"No attributes.","href":"/api/funds-transfers#attributes"},"226":{"path":["API","Funds Transfers"],"title":"Errors","description":"","href":"/api/funds-transfers#errors"},"227":{"href":"/api/http-status-codes","path":["API","HTTP Status Codes"],"title":"HTTP Status Codes","description":"Introduction to HTTP Status Codes"},"228":{"path":["API","HTTP Status Codes"],"title":"200 Ok","description":"Everything's ok. Enjoy your well formed response!","href":"/api/http-status-codes#200-ok"},"229":{"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"},"230":{"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"},"231":{"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"},"232":{"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"},"233":{"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"},"234":{"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"},"235":{"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"},"236":{"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"},"237":{"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"},"238":{"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"},"239":{"href":"/api/integration-requests","path":["API","Integration Requests"],"title":"Integration Requests","description":"Integration Request models and related endpoints"},"240":{"path":["API","Integration Requests"],"title":"Integration Request Model","description":"| Name | Description |\n| -------- | ---------------------------------------------------------- |\n| epay | Asset provider ePay |\n| invenco | Terminal vendor invenco |\n| skyzer | Terminal vendor skyzer |\n| smartpay | Terminal vendor smartpay |\n| verifone | Terminal vendor Verifone |\n| vista | Terminal vendor vista |\n| windcave | Terminal vendor Windcave |","href":"/api/integration-requests#integration-request-model"},"241":{"path":["API","Integration Requests"],"title":"Attributes","description":"| Name | Description |\n| -------- | ---------------------------------------------------------- |\n| epay | Asset provider ePay |\n| invenco | Terminal vendor invenco |\n| skyzer | Terminal vendor skyzer |\n| smartpay | Terminal vendor smartpay |\n| verifone | Terminal vendor Verifone |\n| vista | Terminal vendor vista |\n| windcave | Terminal vendor Windcave |","href":"/api/integration-requests#attributes"},"242":{"path":["API","Integration Requests"],"title":"Terminal","description":"| Name | Description |\n| -------- | ---------------------------------------------------------- |\n| epay | Asset provider ePay |\n| invenco | Terminal vendor invenco |\n| skyzer | Terminal vendor skyzer |\n| smartpay | Terminal vendor smartpay |\n| verifone | Terminal vendor Verifone |\n| vista | Terminal vendor vista |\n| windcave | Terminal vendor Windcave |","href":"/api/integration-requests#terminal"},"243":{"path":["API","Integration Requests"],"title":"Product","description":"| Name | Description |\n| -------- | ---------------------------------------------------------- |\n| epay | Asset provider ePay |\n| invenco | Terminal vendor invenco |\n| skyzer | Terminal vendor skyzer |\n| smartpay | Terminal vendor smartpay |\n| verifone | Terminal vendor Verifone |\n| vista | Terminal vendor vista |\n| windcave | Terminal vendor Windcave |","href":"/api/integration-requests#product"},"244":{"path":["API","Integration Requests"],"title":"Integration Types","description":"| Name | Description |\n| -------- | ---------------------------------------------------------- |\n| epay | Asset provider ePay |\n| invenco | Terminal vendor invenco |\n| skyzer | Terminal vendor skyzer |\n| smartpay | Terminal vendor smartpay |\n| verifone | Terminal vendor Verifone |\n| vista | Terminal vendor vista |\n| windcave | Terminal vendor Windcave |","href":"/api/integration-requests#integration-types"},"245":{"path":["API","Integration Requests"],"title":"Create an Integration Request ","description":"This endpoint allows you to create an Integration Request.","href":"/api/integration-requests#create-an-integration-request-"},"246":{"path":["API","Integration Requests"],"title":"Attributes","description":"","description":"This endpoint allows you to get an Integration Request.","href":"/api/integration-requests#get-an-integration-request-"},"248":{"path":["API","Integration Requests"],"title":"Attributes","description":"No attributes.","href":"/api/integration-requests#attributes"},"249":{"path":["API","Integration Requests"],"title":"Search Merchants","description":"Returns a paginated response of Integration Requests.","href":"/api/integration-requests#search-merchants"},"250":{"path":["API","Integration Requests"],"title":"Query Parameters","description":"","description":"This endpoint allows you to supply configuration values for the Integration Request.","href":"/api/integration-requests#configure-integration-request-"},"252":{"path":["API","Integration Requests"],"title":"Attributes","description":"","description":"This endpoint allows you to get the configuration values for the Integration Request.","href":"/api/integration-requests#get-integration-request-configuration-"},"254":{"path":["API","Integration Requests"],"title":"Attributes","description":"No attributes.","href":"/api/integration-requests#attributes"},"255":{"path":["API","Integration Requests"],"title":"Activate Integration Request ","description":"This endpoint allows you to activate an Integration Request.","href":"/api/integration-requests#activate-integration-request-"},"256":{"path":["API","Integration Requests"],"title":"Attributes","description":"No attributes.","href":"/api/integration-requests#attributes"},"257":{"path":["API","Integration Requests"],"title":"Errors","description":"","description":"This endpoint allows you to delete an Integration Request.","href":"/api/integration-requests#delete-integration-request-"},"259":{"path":["API","Integration Requests"],"title":"Attributes","description":"No attributes.","href":"/api/integration-requests#attributes"},"260":{"href":"/api/integrations","path":["API","Integrations"],"title":"Integrations","description":"Centrapay Integration documentation"},"261":{"href":"/api/introduction","path":["API","Introduction"],"title":"Introduction","description":"Introduction to the API Reference"},"262":{"href":"/api/invitations","path":["API","Invitations"],"title":"Invitations","description":"Invitation model and related endpoints"},"263":{"path":["API","Invitations"],"title":"Invitation Model","description":"","description":"This endpoint allows you to create an Invitation.","href":"/api/invitations#create-invitation-"},"268":{"path":["API","Invitations"],"title":"Attributes","description":"","description":"This endpoint allows you to retrieve an Invitation by code.","href":"/api/invitations#get-invitation-by-code-"},"271":{"path":["API","Invitations"],"title":"Attributes","description":"No attributes.","href":"/api/invitations#attributes"},"272":{"path":["API","Invitations"],"title":"List Invitations by Account Id ","description":"This endpoint allows you list Invitations for an Account.","href":"/api/invitations#list-invitations-by-account-id-"},"273":{"path":["API","Invitations"],"title":"Attributes","description":"No attributes.","href":"/api/invitations#attributes"},"274":{"path":["API","Invitations"],"title":"Accept Invitation ","description":"This endpoint allows you to accept an Invitation.","href":"/api/invitations#accept-invitation-"},"275":{"path":["API","Invitations"],"title":"Attributes","description":"","description":"This endpoint allows you to revoke an Invitation.","href":"/api/invitations#revoke-invitation-"},"278":{"path":["API","Invitations"],"title":"Attributes","description":"No attributes","href":"/api/invitations#attributes"},"279":{"path":["API","Invitations"],"title":"Errors","description":"","href":"/api/invitations#errors"},"280":{"href":"/api/legacy-payment-requests","path":["API","Legacy Payment Requests"],"title":"Legacy Payment Requests","description":"Legacy Payment Request models and related endpoints (deprecated)"},"281":{"path":["API","Legacy Payment Requests"],"title":"Payment Request Model ","description":"The \"ledger\" parameter indicates which payment option has been selected to pay\nthe payment request. The selected payment option must be one of the options\navailable for the payment request as per the payments array in the\nrequests.create and requests.info responses.","href":"/api/legacy-payment-requests#payment-request-model-"},"282":{"path":["API","Legacy Payment Requests"],"title":"Attributes","description":"The \"ledger\" parameter indicates which payment option has been selected to pay\nthe payment request. The selected payment option must be one of the options\navailable for the payment request as per the payments array in the\nrequests.create and requests.info responses.","href":"/api/legacy-payment-requests#attributes"},"283":{"path":["API","Legacy Payment Requests"],"title":"Payment Options Model ","description":"The \"ledger\" parameter indicates which payment option has been selected to pay\nthe payment request. The selected payment option must be one of the options\navailable for the payment request as per the payments array in the\nrequests.create and requests.info responses.","href":"/api/legacy-payment-requests#payment-options-model-"},"284":{"path":["API","Legacy Payment Requests"],"title":"Attributes","description":"The \"ledger\" parameter indicates which payment option has been selected to pay\nthe payment request. The selected payment option must be one of the options\navailable for the payment request as per the payments array in the\nrequests.create and requests.info responses.","href":"/api/legacy-payment-requests#attributes"},"285":{"path":["API","Legacy Payment Requests"],"title":"Paid By Model ","description":"The \"ledger\" parameter indicates which payment option has been selected to pay\nthe payment request. The selected payment option must be one of the options\navailable for the payment request as per the payments array in the\nrequests.create and requests.info responses.","href":"/api/legacy-payment-requests#paid-by-model-"},"286":{"path":["API","Legacy Payment Requests"],"title":"Attributes","description":"The \"ledger\" parameter indicates which payment option has been selected to pay\nthe payment request. The selected payment option must be one of the options\navailable for the payment request as per the payments array in the\nrequests.create and requests.info responses.","href":"/api/legacy-payment-requests#attributes"},"287":{"path":["API","Legacy Payment Requests"],"title":"Ledger and Authorization Values","description":"The \"ledger\" parameter indicates which payment option has been selected to pay\nthe payment request. The selected payment option must be one of the options\navailable for the payment request as per the payments array in the\nrequests.create and requests.info responses.","href":"/api/legacy-payment-requests#ledger-and-authorization-values"},"288":{"path":["API","Legacy Payment Requests"],"title":"Create a Payment Request ","description":"This endpoint allows you to create a Payment Request.","href":"/api/legacy-payment-requests#create-a-payment-request-"},"289":{"path":["API","Legacy Payment Requests"],"title":"Attributes","description":"","description":"This endpoint allows you to receive Payment Request information.","href":"/api/legacy-payment-requests#get-a-payment-request-"},"292":{"path":["API","Legacy Payment Requests"],"title":"Attributes","description":"","description":"This endpoint allows you to pay a Payment Request.","href":"/api/legacy-payment-requests#pay-a-payment-request-"},"294":{"path":["API","Legacy Payment Requests"],"title":"Attributes","description":"","description":"This endpoint allows you to cancel a Payment Request.","href":"/api/legacy-payment-requests#cancel-a-payment-request-"},"297":{"path":["API","Legacy Payment Requests"],"title":"Attributes","description":"","description":"This endpoint allows you to void a Payment Request.","href":"/api/legacy-payment-requests#void-a-payment-request-"},"300":{"path":["API","Legacy Payment Requests"],"title":"Attributes","description":"Voiding a payment request can cause it to be cancelled or refunded. Therefore, this endpoint can give the same error responses as requests.cancel and transactions.refund.\nAfter 24 hours voiding a payment request will be disallowed, however a refund can still be made against the payment request if it has been paid successfully.","href":"/api/legacy-payment-requests#attributes"},"301":{"path":["API","Legacy Payment Requests"],"title":"Errors","description":"Voiding a payment request can cause it to be cancelled or refunded. Therefore, this endpoint can give the same error responses as requests.cancel and transactions.refund.\nAfter 24 hours voiding a payment request will be disallowed, however a refund can still be made against the payment request if it has been paid successfully.","href":"/api/legacy-payment-requests#errors"},"302":{"path":["API","Legacy Payment Requests"],"title":"Refund a Transaction ","description":"Refunding a transaction can be done with or without an external reference.","href":"/api/legacy-payment-requests#refund-a-transaction-"},"303":{"path":["API","Legacy Payment Requests"],"title":"Refund without external reference","description":"If you refund a transaction without providing an external reference, you\nwill get a successful response for the first request and then an\nALREADY_REFUNDED message for any refund requests that follow for the same\ntransaction, unless an external reference is provided.","href":"/api/legacy-payment-requests#refund-without-external-reference"},"304":{"path":["API","Legacy Payment Requests"],"title":"Refund with external reference","description":"If you provide an external reference then a transaction can be refunded\nmultiple times provided that the external reference is unique for each\nrefund request. When a duplicate external reference is provided when\nattempting to refund the same transaction we return a successful response if\nthe amount of the request is the same both times but do not process another\nrefund, this is because we assume it to be a repeat request. If the amount\nis different you will get a REPEAT_REFERENCE error message.","href":"/api/legacy-payment-requests#refund-with-external-reference"},"305":{"path":["API","Legacy Payment Requests"],"title":"Refund a Pre Auth Payment Request with Confirmations","description":"The legacy refund endpoint cannot be used to refund Pre Auth Payment Requests with Confirmations. Please use the current refund endpoint instead.","href":"/api/legacy-payment-requests#refund-a-pre-auth-payment-request-with-confirmations"},"306":{"path":["API","Legacy Payment Requests"],"title":"Attributes","description":"Webhook notifications are sent for significant Payment life-cycle\nevents. The Webhook endpoint is notified by sending an HTTP POST request to the\nnotifyUrl defined in the Payment Request.","href":"/api/legacy-payment-requests#attributes"},"307":{"path":["API","Legacy Payment Requests"],"title":"Errors","description":"Webhook notifications are sent for significant Payment life-cycle\nevents. The Webhook endpoint is notified by sending an HTTP POST request to the\nnotifyUrl defined in the Payment Request.","href":"/api/legacy-payment-requests#errors"},"308":{"path":["API","Legacy Payment Requests"],"title":"Webhooks ","description":"Webhook notifications are sent for significant Payment life-cycle\nevents. The Webhook endpoint is notified by sending an HTTP POST request to the\nnotifyUrl defined in the Payment Request.","href":"/api/legacy-payment-requests#webhooks-"},"309":{"path":["API","Legacy Payment Requests"],"title":"Life-cycle Events That Trigger Webhooks","description":"The supported event types that will be notified to the Payment Requests webhook\nand the associated \"transactionType\" value that will be sent in the payload\nare:","href":"/api/legacy-payment-requests#life-cycle-events-that-trigger-webhooks"},"310":{"path":["API","Legacy Payment Requests"],"title":"Payment Request Cancelled","description":"A payment request can be cancelled by either calling the requests.cancel\nor requests.void endpoint before a request has been paid successfully.\nWhen a request has been cancelled we send a JWT that when decoded matches the\nPayment Request Cancelled example in the Decoded Webhook JWT Examples\nsection below.","href":"/api/legacy-payment-requests#payment-request-cancelled"},"311":{"path":["API","Legacy Payment Requests"],"title":"Payment Request Expired","description":"A payment request expires two minutes after being created if it hasn't been\ncancelled, or paid. When a request has expired we send a JWT that when\ndecoded matches the Payment Request Cancelled example in the Decoded\nWebhook JWT Examples section below with the transactionType set to EXPIRED.","href":"/api/legacy-payment-requests#payment-request-expired"},"312":{"path":["API","Legacy Payment Requests"],"title":"Transaction Completed","description":"A transaction is considered complete when requests.pay is called with\nparameters that satisfy a payment request and the request has been paid\nsuccessfully. When a transaction has been completed we send a JWT that when\ndecoded matches the Transaction Completed example in the Decoded Webhook\nJWT Examples section below.","href":"/api/legacy-payment-requests#transaction-completed"},"313":{"path":["API","Legacy Payment Requests"],"title":"Transaction Refunded","description":"A transaction can be refunded one to many times and each time a transaction\nhas been refunded successfully we notify the webhook associated with the\noriginal payment request. A transaction can be refunded when\ntransactions.refund has been called for a partial or full refund, or when\nrequests.void is called for a request that has been paid. When a\ntransaction has been refunded we send a JWT that when decoded matches the\nTransaction Completed example in the Decoded Webhook JWT Examples section\nbelow but with transactionType set to REFUND.","href":"/api/legacy-payment-requests#transaction-refunded"},"314":{"path":["API","Legacy Payment Requests"],"title":"Webhook Payload","description":"The body of the webhook is a JSON document with the following format:","href":"/api/legacy-payment-requests#webhook-payload"},"315":{"path":["API","Legacy Payment Requests"],"title":"Webhook Payload Fields","description":"| Property | Description |\n|:----------------|:------------------------------------------------------------|\n| transactionId | Id of the transaction |\n| transactionType | Indicates which event triggered the notification message |\n| state | Current state of the transaction |\n| ledger | The ledger at which the authorization was processed |\n| amount | Transaction amount in the lowest denomination available |\n| createdAt | Timestamp at which the request was created |\n| updatedAt | Timestamp at which the request was updated |\n| type | The payment type used by the issuer to reconcile settlement |\n| request | Request object, see details at [requests.info][] |\n| authCode | Authorization code used to settle this transaction |","href":"/api/legacy-payment-requests#webhook-payload-fields"},"316":{"path":["API","Legacy Payment Requests"],"title":"Webhook JWT Validation","description":"A webhook JWT can be validated by checking the signature against the Centrapay\nWebhook public key:","href":"/api/legacy-payment-requests#webhook-jwt-validation"},"317":{"path":["API","Legacy Payment Requests"],"title":"Decoded Webhook JWT Examples","description":"","href":"/api/legacy-payment-requests#decoded-webhook-jwt-examples"},"318":{"href":"/api/managed-integrations","path":["API","Managed Integrations"],"title":"Managed Integrations","description":"Managed Integration model and related endpoints"},"319":{"path":["API","Managed Integrations"],"title":"Managed Integration Model","description":"A summary of the Invitation for a Managed Integration.","href":"/api/managed-integrations#managed-integration-model"},"320":{"path":["API","Managed Integrations"],"title":"Attributes","description":"A summary of the Invitation for a Managed Integration.","href":"/api/managed-integrations#attributes"},"321":{"path":["API","Managed Integrations"],"title":"Invitation Summary Model","description":"A summary of the Invitation for a Managed Integration.","href":"/api/managed-integrations#invitation-summary-model"},"322":{"path":["API","Managed Integrations"],"title":"Attributes","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-"},"334":{"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-"},"336":{"path":["API","Media Uploads"],"title":"Attributes","description":"No attributes.","href":"/api/media-uploads#attributes"},"337":{"href":"/api/merchant-configs","path":["API","Merchant Configs"],"title":"Merchant Configs","description":"Merchant Config model and related endpoints"},"338":{"path":["API","Merchant Configs"],"title":"Merchant Config Model","description":"See Asset Types for values that may be present in the type field.","href":"/api/merchant-configs#merchant-config-model"},"339":{"path":["API","Merchant Configs"],"title":"Attributes","description":"See Asset Types for values that may be present in the type field.","href":"/api/merchant-configs#attributes"},"340":{"path":["API","Merchant Configs"],"title":"Payment Option Config Model","description":"See Asset Types for values that may be present in the type field.","href":"/api/merchant-configs#payment-option-config-model"},"341":{"path":["API","Merchant Configs"],"title":"Attributes","description":"See Asset Types for values that may be present in the type field.","href":"/api/merchant-configs#attributes"},"342":{"path":["API","Merchant Configs"],"title":"Create Merchant Config","description":"This endpoint allows you to create a Merchant Config for a Merchant.","href":"/api/merchant-configs#create-merchant-config"},"343":{"path":["API","Merchant Configs"],"title":"Attributes","description":"","description":"Returns a paginated list of Merchants which belong to the authenticated subject.","href":"/api/merchants#list-merchants-"},"380":{"path":["API","Merchants"],"title":"Attributes","description":"No attributes.","href":"/api/merchants#attributes"},"381":{"href":"/api/pagination","path":["API","Pagination"],"title":"Pagination","description":"Introduction to Pagination"},"382":{"path":["API","Pagination"],"title":"Pagination Model","description":"","href":"/api/pagination#pagination-model"},"383":{"path":["API","Pagination"],"title":"Example","description":"","href":"/api/pagination#example"},"384":{"href":"/api/patron-codes","path":["API","Patron Codes"],"title":"Patron Codes","description":"Patron Code model and related endpoints"},"385":{"path":["API","Patron Codes"],"title":"Patron Code Model","description":"✩ Barcode is a 16 digit number. The first 6 digits are a Centrapay defined prefix, then a 9 digit\ncode, then a luhn checksum digit.","href":"/api/patron-codes#patron-code-model"},"386":{"path":["API","Patron Codes"],"title":"Attributes","description":"✩ Barcode is a 16 digit number. The first 6 digits are a Centrapay defined prefix, then a 9 digit\ncode, then a luhn checksum digit.","href":"/api/patron-codes#attributes"},"387":{"path":["API","Patron Codes"],"title":"Test Scenario Name","description":"This field is used to inject behavior into a Payment Request when the\ngenerated barcode is supplied on creation. If a Test Scenario Name is\ndefined on a Patron Code, it is considered a test resource and can only\nbe used with Payment Requests that will have a liveness of 'test'. The Asset Type\ncentrapay.nzd.test is required to run test scenarios.","href":"/api/patron-codes#test-scenario-name"},"388":{"path":["API","Patron Codes"],"title":"Create Patron Code","description":"This endpoint allows you to create a Patron Code. You can find payment request information attached to a Patron Code by polling for the Payment Request using the transacting APIs.","href":"/api/patron-codes#create-patron-code"},"389":{"path":["API","Patron Codes"],"title":"Attributes","description":"No attributes.","href":"/api/patron-codes#attributes"},"390":{"path":["API","Patron Codes"],"title":"Get Patron Code","description":"This endpoint allows you to retrieve a Patron Code by id.","href":"/api/patron-codes#get-patron-code"},"391":{"path":["API","Patron Codes"],"title":"Attributes","description":"No attributes.","href":"/api/patron-codes#attributes"},"392":{"path":["API","Patron Codes"],"title":"Get Patron Code By Barcode","description":"This endpoint allows you to retrieve a Patron Code by barcode.","href":"/api/patron-codes#get-patron-code-by-barcode"},"393":{"path":["API","Patron Codes"],"title":"Attributes","description":"No attributes.","href":"/api/patron-codes#attributes"},"394":{"path":["API","Patron Codes"],"title":"Errors","description":"","href":"/api/patron-codes#errors"},"395":{"href":"/api/payment-requests","path":["API","Payment Requests"],"title":"Payment Requests","description":"Payment request models and related endpoints"},"396":{"path":["API","Payment Requests"],"title":"Payment Request Model","description":"⭐️ For Payment Options which specify an address, there’s a requirement to make a transaction on an external ledger. Once you have made that payment, you can use the transaction id to Pay a Payment Request using the legacy payment API.","href":"/api/payment-requests#payment-request-model"},"397":{"path":["API","Payment Requests"],"title":"Attributes","description":"⭐️ For Payment Options which specify an address, there’s a requirement to make a transaction on an external ledger. Once you have made that payment, you can use the transaction id to Pay a Payment Request using the legacy payment API.","href":"/api/payment-requests#attributes"},"398":{"path":["API","Payment Requests"],"title":"Payment Option Model","description":"⭐️ For Payment Options which specify an address, there’s a requirement to make a transaction on an external ledger. Once you have made that payment, you can use the transaction id to Pay a Payment Request using the legacy payment API.","href":"/api/payment-requests#payment-option-model"},"399":{"path":["API","Payment Requests"],"title":"Attributes","description":"⭐️ For Payment Options which specify an address, there’s a requirement to make a transaction on an external ledger. Once you have made that payment, you can use the transaction id to Pay a Payment Request using the legacy payment API.","href":"/api/payment-requests#attributes"},"400":{"path":["API","Payment Requests"],"title":"Accepted Collections","description":"If a Payment Request contains a centrapay.token.* Payment Option, an array of Accepted Collections will be present inside the centrapay.token Payment Option.\nThe Accepted Collections returned can be used to determine if a Centrapay Token can be used to pay a Payment Request, and the Line Items able to be purchased using the Token.","href":"/api/payment-requests#accepted-collections"},"401":{"path":["API","Payment Requests"],"title":"Attributes","description":"Some Asset Types require conditional approval to pay. Possible Payment Conditions include confirming proof of ID\nor confirming a promotional item was purchased.","href":"/api/payment-requests#attributes"},"402":{"path":["API","Payment Requests"],"title":"Payment Condition Model","description":"Some Asset Types require conditional approval to pay. Possible Payment Conditions include confirming proof of ID\nor confirming a promotional item was purchased.","href":"/api/payment-requests#payment-condition-model"},"403":{"path":["API","Payment Requests"],"title":"Attributes","description":"An order item for which payment is requested.\nThe currency and units for a Line Item price will be consistent with the Payment Request value and the sum of Line Item prices should equal the Payment Request value.","href":"/api/payment-requests#attributes"},"404":{"path":["API","Payment Requests"],"title":"Line Item Model","description":"An order item for which payment is requested.\nThe currency and units for a Line Item price will be consistent with the Payment Request value and the sum of Line Item prices should equal the Payment Request value.","href":"/api/payment-requests#line-item-model"},"405":{"path":["API","Payment Requests"],"title":"Attributes","description":"The Paid By provides a summary of the transactions after the Payment Request was paid.","href":"/api/payment-requests#attributes"},"406":{"path":["API","Payment Requests"],"title":"Product Classification","description":"The Paid By provides a summary of the transactions after the Payment Request was paid.","href":"/api/payment-requests#product-classification"},"407":{"path":["API","Payment Requests"],"title":"Attributes","description":"The Paid By provides a summary of the transactions after the Payment Request was paid.","href":"/api/payment-requests#attributes"},"408":{"path":["API","Payment Requests"],"title":"Paid By Model","description":"The Paid By provides a summary of the transactions after the Payment Request was paid.","href":"/api/payment-requests#paid-by-model"},"409":{"path":["API","Payment Requests"],"title":"Attributes","description":"A Payment Activity records a transaction that has happened on a Payment Request.\nPayment Activities are created when a Payment Request has been created, paid, refunded, cancelled, or expired.","href":"/api/payment-requests#attributes"},"410":{"path":["API","Payment Requests"],"title":"Asset Totals","description":"A Payment Activity records a transaction that has happened on a Payment Request.\nPayment Activities are created when a Payment Request has been created, paid, refunded, cancelled, or expired.","href":"/api/payment-requests#asset-totals"},"411":{"path":["API","Payment Requests"],"title":"Attributes","description":"A Payment Activity records a transaction that has happened on a Payment Request.\nPayment Activities are created when a Payment Request has been created, paid, refunded, cancelled, or expired.","href":"/api/payment-requests#attributes"},"412":{"path":["API","Payment Requests"],"title":"Payment Activity Model","description":"A Payment Activity records a transaction that has happened on a Payment Request.\nPayment Activities are created when a Payment Request has been created, paid, refunded, cancelled, or expired.","href":"/api/payment-requests#payment-activity-model"},"413":{"path":["API","Payment Requests"],"title":"Attributes","description":"| Name | Description |\n| ----------------- | ----------------------------------------------------------------------------------------------------------- |\n| request | Payment Request was created. |\n| preAuthRequest | Payment Request was created with the preAuth flag set to \"true\". |\n| paid | Payment Request was paid. |\n| payment | A payment was made towards the Payment Request. |\n| refund | Funds were returned to the shopper. |\n| cancellation | Payment Request was cancelled by the merchant or the shopper. |\n| expiry | Payment Request wasn't paid before time out. |\n| accept-condition | A Payment Condition was accepted. |\n| decline-condition | A Payment Condition was declined. |\n| authorization | A Pre Auth Payment Request was approved and confirmations can be made against it. |\n| confirmation | Funds on a Pre Auth have been drawn down on. |\n| release | Pre Auth has been finalised and any remaining funds from Authorization have been returned. |","href":"/api/payment-requests#attributes"},"414":{"path":["API","Payment Requests"],"title":"Payment Activity Types","description":"| Name | Description |\n| ----------------- | ----------------------------------------------------------------------------------------------------------- |\n| request | Payment Request was created. |\n| preAuthRequest | Payment Request was created with the preAuth flag set to \"true\". |\n| paid | Payment Request was paid. |\n| payment | A payment was made towards the Payment Request. |\n| refund | Funds were returned to the shopper. |\n| cancellation | Payment Request was cancelled by the merchant or the shopper. |\n| expiry | Payment Request wasn't paid before time out. |\n| accept-condition | A Payment Condition was accepted. |\n| decline-condition | A Payment Condition was declined. |\n| authorization | A Pre Auth Payment Request was approved and confirmations can be made against it. |\n| confirmation | Funds on a Pre Auth have been drawn down on. |\n| release | Pre Auth has been finalised and any remaining funds from Authorization have been returned. |","href":"/api/payment-requests#payment-activity-types"},"415":{"path":["API","Payment Requests"],"title":"Cancellation Reasons","description":"| Reason | Description |\n| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| CANCELLED_BY_MERCHANT | The merchant cancelled the Payment Request by calling the cancel or void endpoint. |\n| CANCELLED_BY_PATRON | The patron cancelled the transaction. |\n| PATRON_CODE_INVALID | The patron code on the Payment Request was invalid. |\n| PAYMENT_FAILED | The Payment Request failed for an unknown reason. |\n| PATRON_CODE_EXPIRED | The patron code on the Payment Request has expired. |\n| DECLINED_BY_PATRON | The payment was declined by the patron during approval steps. |\n| DECLINED_BY_MERCHANT | The payment was declined by the merchant during approval steps. |\n| PAYMENT_DECLINED | The payment parameters were valid but payment was declined because additional payment restrictions were violated. For example, asset not active, asset overdrawn, quota exceeded or line item category restrictions. |\n| PAYMENT_REQUEST_EXPIRED | The Payment Request has expired. |\n| NO_AVAILABLE_PAYMENT_OPTIONS | No payment options match the requested payment parameters. |\n| INACTIVE_ASSET | The asset used to pay the Payment Request is inactive. |","href":"/api/payment-requests#cancellation-reasons"},"416":{"path":["API","Payment Requests"],"title":"Create a Payment Request","description":"This endpoint allows you to create a Payment Request.","href":"/api/payment-requests#create-a-payment-request"},"417":{"path":["API","Payment Requests"],"title":"Attributes","description":"","description":"Update a user’s mutable attributes. At least one field must be provided in the request.","href":"/api/profiles#update-profile-"},"453":{"path":["API","Profiles"],"title":"Attributes","description":"","description":"This endpoint allows you to retrieve a user's Profile.","href":"/api/profiles#get-profile-"},"455":{"path":["API","Profiles"],"title":"Attributes","description":"No attributes.","href":"/api/profiles#attributes"},"456":{"href":"/api/quotas","path":["API","Quotas"],"title":"Quotas","description":"Quota model and related endpoints"},"457":{"path":["API","Quotas"],"title":"Quota Model","description":"| Type | Description | Scoped | Periods |\n|:------|:--------------------------------------------------------------------|:------:|:-------------------|\n| spend | Value of wallet-based payments or asset transfers from the account. | Yes | monthly yearly |\n| topup | Value of topups from bank accounts linked to the account. | Yes | monthly yearly |","href":"/api/quotas#quota-model"},"458":{"path":["API","Quotas"],"title":"Attributes","description":"| Type | Description | Scoped | Periods |\n|:------|:--------------------------------------------------------------------|:------:|:-------------------|\n| spend | Value of wallet-based payments or asset transfers from the account. | Yes | monthly yearly |\n| topup | Value of topups from bank accounts linked to the account. | Yes | monthly yearly |","href":"/api/quotas#attributes"},"459":{"path":["API","Quotas"],"title":"Supported Quota Types","description":"| Type | Description | Scoped | Periods |\n|:------|:--------------------------------------------------------------------|:------:|:-------------------|\n| spend | Value of wallet-based payments or asset transfers from the account. | Yes | monthly yearly |\n| topup | Value of topups from bank accounts linked to the account. | Yes | monthly yearly |","href":"/api/quotas#supported-quota-types"},"460":{"path":["API","Quotas"],"title":"Get Account Quotas ","description":"Retrieve quota limits and usages for the current intervals. Ie, all quotas for the current day, current month and current year as well as any quotas that are not associated with a temporal period.","href":"/api/quotas#get-account-quotas-"},"461":{"path":["API","Quotas"],"title":"Attributes","description":"No attributes.","href":"/api/quotas#attributes"},"462":{"path":["API","Quotas"],"title":"Errors","description":"If a quota limit is exceeded by an action that enforces quota limits, an error response will be returned. The quotas field will contain all quota limits that are exceeded with the usage set to the amount that the quota would have been updated to if the action was completed.","href":"/api/quotas#errors"},"463":{"href":"/api/scanned-codes","path":["API","Scanned Codes"],"title":"Scanned Codes","description":"Scanned Code model and related endpoints"},"464":{"path":["API","Scanned Codes"],"title":"Scanned Code Model","description":"","description":""},"480":{"path":["API","Tokens"],"title":"Attributes","description":"","description":""},"482":{"path":["API","Tokens"],"title":"Attributes","description":"","description":""},"484":{"path":["API","Tokens"],"title":"Attributes","description":"","description":"This endpoint allows you to create a Token Collection.","href":"/api/tokens#create-token-collection-"},"486":{"path":["API","Tokens"],"title":"Attributes","description":"","description":"Returns a paginated list of Token Collections for an Account.","href":"/api/tokens#list-token-collections-"},"488":{"path":["API","Tokens"],"title":"Attributes","description":"","description":"This endpoint allows you to create a Redemption Condition.","href":"/api/tokens#create-redemption-condition-"},"490":{"path":["API","Tokens"],"title":"Attributes","description":"","description":"This endpoint allows you to create a Token.","href":"/api/tokens#create-token-"},"493":{"path":["API","Tokens"],"title":"Attributes","description":"","href":"/api/tokens#attributes"},"494":{"path":["API","Tokens"],"title":"Errors","description":"","href":"/api/tokens#errors"},"495":{"href":"/api/wallets","path":["API","Wallets"],"title":"Wallets","description":"Wallet models and related endpoints"},"496":{"path":["API","Wallets"],"title":"Settlement Wallets ","description":"A Settlement Wallet is a special type of Wallet that can only receive or refund money related to a Payment Request. This means you cannot topup, withdraw, or send money from this Wallet.","href":"/api/wallets#settlement-wallets-"},"497":{"path":["API","Wallets"],"title":"Wallet Model","description":" {\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"},"522":{"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."},"523":{"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"},"524":{"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"},"525":{"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"},"526":{"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"},"527":{"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"},"528":{"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"},"529":{"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"},"530":{"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"},"531":{"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."},"532":{"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"},"533":{"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"},"534":{"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"},"535":{"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"},"536":{"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"},"537":{"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"},"538":{"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"},"539":{"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"},"540":{"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"},"541":{"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"},"542":{"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"},"543":{"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"},"544":{"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"},"545":{"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"},"546":{"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"},"547":{"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"},"548":{"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"},"549":{"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"},"550":{"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"},"551":{"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"},"552":{"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."},"553":{"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"},"554":{"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"},"555":{"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"},"556":{"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"},"557":{"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"},"558":{"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"},"559":{"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"},"560":{"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"},"561":{"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"},"562":{"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"},"563":{"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"},"564":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Refunds","description":"Cardholder purchases are refunded by refunding the Payment Request.","href":"/guides/farmlands-pos-integration#refunds"},"565":{"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"},"566":{"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"},"567":{"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"},"568":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Next Steps","description":"","href":"/guides/farmlands-pos-integration#next-steps"},"569":{"href":"/guides/initiating-refunds","path":["Reference","Merchant Integrations","Initiating Refunds"],"title":"Initiating Refunds","description":"How to issue refunds on the Centrapay payment platform."},"570":{"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"},"571":{"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"},"572":{"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"},"573":{"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"},"574":{"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"},"575":{"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"},"576":{"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."},"577":{"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"},"578":{"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"},"579":{"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"},"580":{"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"},"581":{"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"},"582":{"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"},"583":{"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"},"584":{"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"},"585":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Protocol","description":"Each endpoint must use the HTTPS protocol.","href":"/guides/integrating-third-party-asset#protocol"},"586":{"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"},"587":{"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"},"588":{"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"},"589":{"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"},"590":{"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"},"591":{"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"},"592":{"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."},"593":{"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"},"594":{"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"},"595":{"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."},"596":{"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"},"597":{"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"},"598":{"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"},"599":{"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."},"600":{"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"},"601":{"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"},"602":{"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"},"603":{"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."},"604":{"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"},"605":{"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"},"606":{"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"},"607":{"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"},"608":{"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"},"609":{"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."},"610":{"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."},"611":{"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"},"612":{"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"},"613":{"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"},"614":{"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"},"615":{"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"},"616":{"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"},"617":{"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"},"618":{"path":["Reference","Merchant Integrations","Partial Payment"],"title":"See also","description":"","href":"/guides/partial-payment-extension#see-also"},"619":{"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."},"620":{"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."},"621":{"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"},"622":{"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"},"623":{"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."},"624":{"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"},"625":{"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"},"626":{"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"},"627":{"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"},"628":{"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"},"629":{"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"},"630":{"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"},"631":{"href":"/guides/payment-terminals","path":["Reference","Merchant Integrations","Payment Terminal"],"title":"Payment Terminal","description":"How to integrate a payment terminal with Centrapay APIs."},"632":{"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"},"633":{"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"},"634":{"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"},"635":{"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"},"636":{"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"},"637":{"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"},"638":{"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"},"639":{"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"},"640":{"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"},"641":{"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."},"642":{"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"},"643":{"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"},"644":{"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"},"645":{"href":"/guides/requesting-payment","path":["Reference","Merchant Integrations","Requesting Payment"],"title":"Requesting Payment","description":"How to request payment on the Centrapay payment platform."},"646":{"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"},"647":{"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"},"648":{"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"},"649":{"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"},"650":{"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"},"651":{"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"},"652":{"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."},"653":{"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"},"654":{"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"},"655":{"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"},"656":{"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"},"657":{"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"},"658":{"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"},"659":{"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"},"660":{"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"},"661":{"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"},"662":{"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"},"663":{"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"},"664":{"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"},"665":{"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"},"666":{"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"},"667":{"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"},"668":{"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"},"669":{"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"},"670":{"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"},"671":{"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"},"672":{"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 diff --git a/redirects.json b/redirects.json index 3ef6157fb..8d88457ab 100644 --- a/redirects.json +++ b/redirects.json @@ -1 +1 @@ -{"/accounts":"/api/accounts","/assets/asset-transfers":"/api/asset-transfers","/assets/":"/api/assets","/assets/asset-categories":"/api/assets","/api/asset-categories":"/api/assets","/auth":"/api/auth","/fiat":"/api/bank-accounts","/fiat/bank-accounts":"/api/bank-accounts","/fiat/bank-authorities":"/api/bank-accounts","/fiat/authorities":"/api/bank-accounts","/assets/discrete-assets":"/api/external-assets","/api/discrete-assets":"/api/external-assets","/api/batch-types/farmlands":"/api/batch-types/farmlands-external-asset","/fiat/funds-transfers":"/api/funds-transfers","/api/section/settlements":"/api/settlements","/api/section/assets":"/api/assets","/api/section/payment-requests":"/api/payment-requests","/api/section/accounts":"/api/accounts","/api/section/merchants":"/api/merchants","/api/section/batches":"/api/batches","/api/section/scanned-codes":"/api/scanned-codes","/api/section/integrations":"/api/integrations","/api/section/bank-accounts":"/api/bank-accounts","/api":"/api/introduction","/transacting":"/api/legacy-payment-requests","/api/transacting":"/api/legacy-payment-requests","/merchants":"/api/merchants","/api/payment-activities":"/api/payment-requests","/profile":"/api/profiles","/quotas":"/api/quotas","/settlements":"/api/settlements","/assets/wallets":"/api/wallets"} \ No newline at end of file +{"/accounts":"/api/accounts","/assets/asset-transfers":"/api/asset-transfers","/assets/":"/api/assets","/assets/asset-categories":"/api/assets","/api/asset-categories":"/api/assets","/auth":"/api/auth","/fiat":"/api/bank-accounts","/fiat/bank-accounts":"/api/bank-accounts","/fiat/bank-authorities":"/api/bank-accounts","/fiat/authorities":"/api/bank-accounts","/assets/discrete-assets":"/api/external-assets","/api/discrete-assets":"/api/external-assets","/api/batch-types/farmlands":"/api/batch-types/farmlands-external-asset","/fiat/funds-transfers":"/api/funds-transfers","/api/section/integrations":"/api/integrations","/api/section/assets":"/api/assets","/api/section/batches":"/api/batches","/api/section/accounts":"/api/accounts","/api/section/payment-requests":"/api/payment-requests","/api/section/bank-accounts":"/api/bank-accounts","/api/section/merchants":"/api/merchants","/api/section/scanned-codes":"/api/scanned-codes","/api/section/settlements":"/api/settlements","/api":"/api/introduction","/transacting":"/api/legacy-payment-requests","/api/transacting":"/api/legacy-payment-requests","/merchants":"/api/merchants","/api/payment-activities":"/api/payment-requests","/profile":"/api/profiles","/quotas":"/api/quotas","/settlements":"/api/settlements","/assets/wallets":"/api/wallets"} \ No newline at end of file