From 65a52a73705e6355dc0634f07ed8cb6ada815eeb Mon Sep 17 00:00:00 2001 From: alexBinns <85718272+alexBinns@users.noreply.github.com> Date: Wed, 1 Nov 2023 06:41:52 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=2036f09?= =?UTF-8?q?244dff7a0256d51679c3f04b58877903022=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index-data.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index-data.json b/index-data.json index a3f182de2..c52d7e8e8 100644 --- a/index-data.json +++ b/index-data.json @@ -1 +1 @@ -{"0":{"href":"/api/account-memberships","path":["API","Accounts","Account Memberships"],"title":"Account Memberships","description":"Account Memberships model and related endpoints"},"1":{"path":["API","Accounts","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","Accounts","Account Memberships"],"title":"Account Membership Model Attributes","description":"\nand the model may change.","href":"/api/assets#asset-model"},"62":{"path":["API","Assets","Assets"],"title":"Asset Model 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"},"63":{"path":["API","Assets","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"},"64":{"path":["API","Assets","Assets"],"title":"Money Model 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"},"65":{"path":["API","Assets","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"},"66":{"path":["API","Assets","Assets"],"title":"Gift Card Model 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"},"67":{"path":["API","Assets","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"},"68":{"path":["API","Assets","Assets"],"title":"Token Model 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"},"69":{"path":["API","Assets","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"},"70":{"path":["API","Assets","Assets"],"title":"Asset Transaction Model Attributes","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"},"528":{"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."},"529":{"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"},"530":{"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"},"531":{"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"},"532":{"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"},"533":{"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"},"534":{"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"},"535":{"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"},"536":{"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"},"537":{"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."},"538":{"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"},"539":{"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"},"540":{"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"},"541":{"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"},"542":{"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"},"543":{"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"},"544":{"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"},"545":{"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"},"546":{"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"},"547":{"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"},"548":{"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"},"549":{"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"},"550":{"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"},"551":{"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"},"552":{"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"},"553":{"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"},"554":{"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"},"555":{"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"},"556":{"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"},"557":{"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"},"558":{"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."},"559":{"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"},"560":{"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"},"561":{"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"},"562":{"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"},"563":{"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"},"564":{"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"},"565":{"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"},"566":{"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"},"567":{"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"},"568":{"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"},"569":{"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"},"570":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Refunds","description":"Cardholder purchases are refunded by refunding the Payment Request.","href":"/guides/farmlands-pos-integration#refunds"},"571":{"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"},"572":{"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"},"573":{"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"},"574":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Next Steps","description":"","href":"/guides/farmlands-pos-integration#next-steps"},"575":{"href":"/guides/initiating-refunds","path":["Reference","Merchant Integrations","Initiating Refunds"],"title":"Initiating Refunds","description":"How to issue refunds on the Centrapay payment platform."},"576":{"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"},"577":{"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"},"578":{"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"},"579":{"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"},"580":{"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"},"581":{"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"},"582":{"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."},"583":{"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"},"584":{"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"},"585":{"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"},"586":{"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"},"587":{"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"},"588":{"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"},"589":{"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"},"590":{"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"},"591":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Protocol","description":"Each endpoint must use the HTTPS protocol.","href":"/guides/integrating-third-party-asset#protocol"},"592":{"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"},"593":{"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"},"594":{"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"},"595":{"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"},"596":{"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"},"597":{"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"},"598":{"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."},"599":{"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"},"600":{"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"},"601":{"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."},"602":{"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"},"603":{"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"},"604":{"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"},"605":{"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."},"606":{"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"},"607":{"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"},"608":{"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"},"609":{"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."},"610":{"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"},"611":{"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"},"612":{"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"},"613":{"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"},"614":{"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"},"615":{"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."},"616":{"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."},"617":{"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"},"618":{"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"},"619":{"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"},"620":{"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"},"621":{"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"},"622":{"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"},"623":{"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"},"624":{"path":["Reference","Merchant Integrations","Partial Payment"],"title":"See also","description":"","href":"/guides/partial-payment-extension#see-also"},"625":{"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."},"626":{"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."},"627":{"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"},"628":{"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"},"629":{"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."},"630":{"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"},"631":{"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"},"632":{"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"},"633":{"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"},"634":{"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"},"635":{"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"},"636":{"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"},"637":{"href":"/guides/payment-terminals","path":["Reference","Merchant Integrations","Payment Terminal"],"title":"Payment Terminal","description":"How to integrate a payment terminal with Centrapay APIs."},"638":{"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"},"639":{"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"},"640":{"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"},"641":{"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"},"642":{"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"},"643":{"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"},"644":{"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"},"645":{"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"},"646":{"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"},"647":{"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."},"648":{"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"},"649":{"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"},"650":{"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"},"651":{"href":"/guides/requesting-payment","path":["Reference","Merchant Integrations","Requesting Payment"],"title":"Requesting Payment","description":"How to request payment on the Centrapay payment platform."},"652":{"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"},"653":{"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"},"654":{"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"},"655":{"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"},"656":{"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"},"657":{"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"},"658":{"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."},"659":{"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"},"660":{"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"},"661":{"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"},"662":{"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"},"663":{"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"},"664":{"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"},"665":{"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"},"666":{"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"},"667":{"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"},"668":{"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"},"669":{"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"},"670":{"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"},"671":{"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"},"672":{"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"},"673":{"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"},"674":{"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"},"675":{"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"},"676":{"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"},"677":{"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"},"678":{"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","Accounts","Account Memberships"],"title":"Account Memberships","description":"Account Memberships model and related endpoints"},"1":{"path":["API","Accounts","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","Accounts","Account Memberships"],"title":"Account Membership Model Attributes","href":"/api/account-memberships#attributes"},"3":{"path":["API","Accounts","Account Memberships"],"title":"Add Member","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","Accounts","Account Memberships"],"title":"Add Member Attributes","href":"/api/account-memberships#attributes"},"5":{"path":["API","Accounts","Account Memberships"],"title":"List members","description":"This endpoint allows you to retrieve the list memberships to an account.","href":"/api/account-memberships#list-members"},"6":{"path":["API","Accounts","Account Memberships"],"title":"List members Attributes","href":"/api/account-memberships#attributes"},"7":{"path":["API","Accounts","Account Memberships"],"title":"Revoke Member","description":"This endpoint allows you to revoke a users membership to an account.","href":"/api/account-memberships#revoke-member"},"8":{"path":["API","Accounts","Account Memberships"],"title":"Revoke Member Attributes","href":"/api/account-memberships#attributes"},"9":{"path":["API","Accounts","Account Memberships"],"title":"Revoke Member Errors","href":"/api/account-memberships#errors"},"10":{"path":["API","Accounts","Account Memberships"],"title":"List Account Memberships for Authenticated Subject","description":"This endpoint allows you to retrieve the accounts that the authenticated subject is a member of.","href":"/api/account-memberships#list-account-memberships-for-authenticated-subject"},"11":{"path":["API","Accounts","Account Memberships"],"title":"List Account Memberships for Authenticated Subject Attributes","href":"/api/account-memberships#attributes"},"12":{"path":["API","Accounts","Account Memberships"],"title":"List Account Memberships for a User","description":"This endpoint allows you to retrieve the accounts that a user is a member of.","href":"/api/account-memberships#list-account-memberships-for-a-user"},"13":{"path":["API","Accounts","Account Memberships"],"title":"List Account Memberships for a User Attributes","href":"/api/account-memberships#attributes"},"14":{"href":"/api/accounts","path":["API","Accounts","Accounts"],"title":"Accounts","description":"Account model and related endpoints"},"15":{"path":["API","Accounts","Accounts"],"title":"Account Model","description":"\nand the model may change.","href":"/api/assets#asset-model"},"62":{"path":["API","Assets","Assets"],"title":"Asset Model Attributes","href":"/api/assets#attributes"},"63":{"path":["API","Assets","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"},"64":{"path":["API","Assets","Assets"],"title":"Money Model Attributes","href":"/api/assets#attributes"},"65":{"path":["API","Assets","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"},"66":{"path":["API","Assets","Assets"],"title":"Gift Card Model Attributes","href":"/api/assets#attributes"},"67":{"path":["API","Assets","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"},"68":{"path":["API","Assets","Assets"],"title":"Token Model Attributes","href":"/api/assets#attributes"},"69":{"path":["API","Assets","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"},"70":{"path":["API","Assets","Assets"],"title":"Asset Transaction Model Attributes","href":"/api/assets#attributes"},"71":{"path":["API","Assets","Assets"],"title":"Get Asset","description":"No attributes.","href":"/api/assets#get-asset"},"72":{"path":["API","Assets","Assets"],"title":"Get Asset Attributes","href":"/api/assets#attributes"},"73":{"path":["API","Assets","Assets"],"title":"Get Asset Summary","description":"No attributes.","href":"/api/assets#get-asset-summary"},"74":{"path":["API","Assets","Assets"],"title":"Get Asset Summary Attributes","href":"/api/assets#attributes"},"75":{"path":["API","Assets","Assets"],"title":"List Assets for Account","description":"Returns a paginated list of Assets for an account. This will not return archived assets.","href":"/api/assets#list-assets-for-account"},"76":{"path":["API","Assets","Assets"],"title":"List Assets for Account Attributes","href":"/api/assets#attributes"},"77":{"path":["API","Assets","Assets"],"title":"List Asset Transactions","description":"Returns a paginated list of Asset Transactions. This endpoint is currently only supported for quartz asset types.","href":"/api/assets#list-asset-transactions"},"78":{"path":["API","Assets","Assets"],"title":"List Asset Transactions Attributes","href":"/api/assets#attributes"},"79":{"path":["API","Assets","Assets"],"title":"Archive Asset","description":"Archive supported asset types by asset id. Currently only gift cards may be archived.","href":"/api/assets#archive-asset"},"80":{"path":["API","Assets","Assets"],"title":"Archive Asset Attributes","href":"/api/assets#attributes"},"81":{"path":["API","Assets","Assets"],"title":"Archive Asset Errors","href":"/api/assets#errors"},"82":{"href":"/api/auth","path":["API","Auth"],"title":"Auth","description":"Introduction to Authentication"},"83":{"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"},"84":{"path":["API","Auth"],"title":"API Keys","description":"API Keys provide enduring access to a single Centrapay account.","href":"/api/auth#api-keys"},"85":{"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"},"86":{"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"},"87":{"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"},"88":{"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"},"89":{"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"},"90":{"href":"/api/bank-account-approvals","path":["API","Bank Accounts","Bank Account Approvals"],"title":"Bank Account Approvals","description":"Bank Account Approval model and related endpoints"},"91":{"path":["API","Bank Accounts","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"},"92":{"path":["API","Bank Accounts","Bank Account Approvals"],"title":"Bank Account Approval Model Attributes","href":"/api/bank-account-approvals#attributes"},"93":{"path":["API","Bank Accounts","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"},"94":{"path":["API","Bank Accounts","Bank Account Approvals"],"title":"Bank Account Approval Activity 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"},"528":{"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."},"529":{"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"},"530":{"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"},"531":{"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"},"532":{"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"},"533":{"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"},"534":{"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"},"535":{"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"},"536":{"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"},"537":{"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."},"538":{"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"},"539":{"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"},"540":{"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"},"541":{"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"},"542":{"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"},"543":{"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"},"544":{"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"},"545":{"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"},"546":{"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"},"547":{"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"},"548":{"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"},"549":{"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"},"550":{"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"},"551":{"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"},"552":{"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"},"553":{"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"},"554":{"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"},"555":{"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"},"556":{"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"},"557":{"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"},"558":{"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."},"559":{"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"},"560":{"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"},"561":{"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"},"562":{"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"},"563":{"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"},"564":{"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"},"565":{"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"},"566":{"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"},"567":{"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"},"568":{"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"},"569":{"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"},"570":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Refunds","description":"Cardholder purchases are refunded by refunding the Payment Request.","href":"/guides/farmlands-pos-integration#refunds"},"571":{"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"},"572":{"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"},"573":{"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"},"574":{"path":["Connections","Farmlands","POS Integration Guide"],"title":"Next Steps","description":"","href":"/guides/farmlands-pos-integration#next-steps"},"575":{"href":"/guides/initiating-refunds","path":["Reference","Merchant Integrations","Initiating Refunds"],"title":"Initiating Refunds","description":"How to issue refunds on the Centrapay payment platform."},"576":{"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"},"577":{"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"},"578":{"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"},"579":{"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"},"580":{"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"},"581":{"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"},"582":{"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."},"583":{"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"},"584":{"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"},"585":{"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"},"586":{"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"},"587":{"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"},"588":{"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"},"589":{"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"},"590":{"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"},"591":{"path":["Reference","Digital Assets","Third-party Asset"],"title":"Protocol","description":"Each endpoint must use the HTTPS protocol.","href":"/guides/integrating-third-party-asset#protocol"},"592":{"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"},"593":{"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"},"594":{"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"},"595":{"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"},"596":{"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"},"597":{"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"},"598":{"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."},"599":{"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"},"600":{"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"},"601":{"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."},"602":{"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"},"603":{"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"},"604":{"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"},"605":{"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."},"606":{"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"},"607":{"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"},"608":{"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"},"609":{"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."},"610":{"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"},"611":{"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"},"612":{"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"},"613":{"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"},"614":{"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"},"615":{"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."},"616":{"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."},"617":{"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"},"618":{"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"},"619":{"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"},"620":{"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"},"621":{"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"},"622":{"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"},"623":{"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"},"624":{"path":["Reference","Merchant Integrations","Partial Payment"],"title":"See also","description":"","href":"/guides/partial-payment-extension#see-also"},"625":{"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."},"626":{"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."},"627":{"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"},"628":{"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"},"629":{"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."},"630":{"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"},"631":{"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"},"632":{"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"},"633":{"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"},"634":{"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"},"635":{"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"},"636":{"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"},"637":{"href":"/guides/payment-terminals","path":["Reference","Merchant Integrations","Payment Terminal"],"title":"Payment Terminal","description":"How to integrate a payment terminal with Centrapay APIs."},"638":{"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"},"639":{"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"},"640":{"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"},"641":{"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"},"642":{"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"},"643":{"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"},"644":{"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"},"645":{"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"},"646":{"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"},"647":{"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."},"648":{"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"},"649":{"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"},"650":{"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"},"651":{"href":"/guides/requesting-payment","path":["Reference","Merchant Integrations","Requesting Payment"],"title":"Requesting Payment","description":"How to request payment on the Centrapay payment platform."},"652":{"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"},"653":{"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"},"654":{"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"},"655":{"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"},"656":{"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"},"657":{"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"},"658":{"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."},"659":{"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"},"660":{"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"},"661":{"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"},"662":{"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"},"663":{"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"},"664":{"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"},"665":{"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"},"666":{"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"},"667":{"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"},"668":{"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"},"669":{"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"},"670":{"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"},"671":{"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"},"672":{"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"},"673":{"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"},"674":{"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"},"675":{"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"},"676":{"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"},"677":{"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"},"678":{"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