{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-vas/vas.sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Voucher provision for POS","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"voucher-provision-for-pos"},"children":["Voucher provision for POS"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"operations-and-messages"},"children":["Operations and Messages"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The table below lists the transactions that make up digital voucher provisions and the API calls you will need to implement."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Transaction Leg"},"children":["Transaction Leg"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Operation"},"children":["Operation"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"API Calls"},"children":["API Calls"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Provision voucher"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/other/provisionvoucher"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["provisionVoucher"]}]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /vouchers"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Request payload: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/provisionrequest"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ProvisionRequest"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Response payload: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/provisionresponse"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ProvisionResponse"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Error payload: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/errordetail"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ErrorDetail"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Confirm voucher"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/other/confirmvoucher"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["confirmVoucher"]}]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /vouchers/confirmations"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Request payload: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/tenderadvice"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TenderAdvice"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Response payload: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/tenderadvice"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TenderAdvice"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Error payload: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/errordetail"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ErrorDetail"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Retry voucher provision"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/other/retryprovisionvoucher"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["retryProvisionVoucher"]}]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /vouchers/{provisionId}/retry"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Request payload: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/provisionrequest"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ProvisionRequest"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Response payload: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/provisionresponse"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ProvisionResponse"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Error payload: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/errordetail"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ErrorDetail"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Reverse voucher"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/other/reversevoucher"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["reverseVoucher"]}]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /vouchers/reversals"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Request payload: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/basicreversal"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["BasicReversal"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Response payload: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/basicreversal"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["BasicReversal"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Error payload: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/errordetail"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ErrorDetail"]}]}]}]}]}]}]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Important"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Stellr does not support advice messages (",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/vas/public/advanced-topics/reversals-and-refunds"},"children":["reversals"]}," or confirmations), therefore if implemented Electrum will consume any advice messages sent to the Electrum Switch."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Important"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Netcare and Stellr do not support retries, therefore Electrum will respond with a hard decline when a retry is sent to the Electrum Switch."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"message-flows"},"children":["Message Flows"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The voucher provision phase of a digital voucher purchase initiates the transaction and returns a digital voucher from the service provider. In the case of ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/vas/public/advanced-topics/dual-and-single-messaging"},"children":["dual messaging"]}," systems this is followed by a confirmation phase in which the transaction is confirmed."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The sections below describe successful voucher provision transactions and error scenarios."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"successful-voucher-provision-dual-messaging"},"children":["Successful Voucher Provision: Dual Messaging"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The originating system sends a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST"]}," call to the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/vouchers"]}," API endpoint (",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/other/provisionvoucher"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["provisionVoucher"]}]}," operation)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The API responds with a ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/provisionresponse"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ProvisionResponse"]}]}," message payload containing the details of the voucher."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The originating system sends a ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/tenderadvice"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TenderAdvice"]}]}," confirmation message to the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/vouchers/confirmations"]}," endpoint of the API (",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/other/confirmvoucher"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["confirmVoucher"]}]},".)"," ","Electrum immediately sends a ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/tenderadvice"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TenderAdvice"]}]}," response back to the originating system."," ","The confirmation message is sent to the service provider via a ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/vas/public/advanced-topics/store-and-forward-queues"},"children":["store-and-forward queue"]},". The message is repeated until Electrum receives a response."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/successful-digital-vouchers-provision-dual.df69f6f1940431f75aeb6bfae08e63ebaede5caca9c242cf1008514429ea824b.f0281c88.png","alt":"alt text"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"successful-voucher-provision-single-messaging"},"children":["Successful Voucher Provision: Single Messaging"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The originating system sends a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST"]}," call to the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/vouchers"]}," API endpoint (",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/other/provisionvoucher"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["provisionVoucher"]}]}," operation)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The API responds with a ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/provisionresponse"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ProvisionResponse"]}]}," message payload containing the details of the voucher."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The transaction is complete."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/successful-digital-vouchers-provision-single.806ba4039db5e493720237a51711d4fa3864942f9ce8f41d13f7d6c8622a950e.f0281c88.png","alt":"alt text"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"error-or-timeout-at-originating-system"},"children":["Error or Timeout at Originating System"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The originating system sends a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST"]}," call to the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/vouchers"]}," API endpoint (",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/other/provisionvoucher"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["provisionVoucher"]}]}," operation)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A timeout (no response received) or other error is encountered at the originating system."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The originating system retries the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/provisionrequest"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ProvisionRequest"]}]}," (",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/other/retryprovisionvoucher"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["retryProvisionVoucher"]}]}," operation) up to three times (or more, depending on the originating system's business rules)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The originating system receives a successful ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/provisionresponse"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ProvisionResponse"]}]}," containing the details of the voucher within three retries or fewer."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The transaction is concluded as follows according to one of the following scenarios."]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In the case of a single messaging system, the transaction is complete."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In the case of a dual messaging system, the originating system sends a ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/tenderadvice"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TenderAdvice"]}]}," confirmation message (",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/other/confirmvoucher"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["confirmVoucher"]}]}," operation), and Electrum immediately sends a ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/tenderadvice"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TenderAdvice"]}]}," response. Electrum sends a confirmation message to the service provider via a store-and-forward queue until a response is received."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/error-at-os-retries-succeed.51a791ec5415884863cd8a8b065bb8c0d6339cbc88ae66fdcafeb8426f081ed0.f0281c88.png","alt":"alt text"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"error-or-timeout-at-originating-system-retries-fail"},"children":["Error or Timeout at Originating System: Retries Fail"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The originating system sends a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST"]}," call to the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/vouchers"]}," API endpoint (",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/other/provisionvoucher"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["provisionVoucher"]}]}," operation)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A timeout (no response received) or other error is encountered at the originating system."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The originating system retries the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/provisionrequest"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ProvisionRequest"]}]}," (",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/other/retryprovisionvoucher"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["retryProvisionVoucher"]}]}," operation) up to three times (or more, depending on the originating system's business rules)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The originating system receives a timeout response after three retries. No voucher details are received."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The originating system sends a ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/basicreversal"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["BasicReversal"]}]}," message to Electrum (",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/other/reversevoucher"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["reverseVoucher"]}]}," operation) and immediately receives a response."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Electrum sends a reversal message to the service provider – if the provider supports reversal messaging – via a store-and-forward queue until a response is received."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/error-at-os-retries-fail.a9ac5bba279376ce836d4a26edc692288d9bc2f4a33944b02a3edacca7d28ef7.f0281c88.png","alt":"alt text"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"error-upstream-transaction-failed"},"children":["Error Upstream: Transaction Failed"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The originating system sends a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST"]}," call to the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/vouchers"]}," API endpoint (",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/other/provisionvoucher"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["provisionVoucher"]}]}," operation)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["An error is encountered at Electrum or the service provider."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Electrum responds to the originating system with an HTTP status of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["400"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["404"]}," and an ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/errordetail"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ErrorDetail"]}]}," message payload."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If the error is a hard decline, then no further messaging is required from the originating system."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/copy-of-error-at-sp-during-voucher-provision.cd395d5c2e5fbe7224f4653ebee8a5e3071775ec9a24c89ff7b17c6d80afb016.f0281c88.png","alt":"alt text"},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If the error message indicates that the transaction outcome is unknown, then the provision request may be retried, as described below."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"error-upstream-unknown-transaction-outcome"},"children":["Error Upstream: Unknown Transaction Outcome"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The originating system sends a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST"]}," call to the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/vouchers"]}," API endpoint (",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/other/provisionvoucher"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["provisionVoucher"]}]}," operation)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["An error occurs at Electrum or the service provider."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Electrum responds to the originating system with an HTTP status of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["500"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["503"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["504"]},", and an ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/errordetail"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ErrorDetail"]}]}," message payload."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The error is due to a timeout or the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/errordetail"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ErrorDetail"]}]}," message contains an errorType of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UPSTREAM_UNAVAILABLE"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["VOUCHER_STATUS_UNKNOWN"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The originating system retries the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/provisionrequest"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ProvisionRequest"]}]}," (",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/other/retryprovisionvoucher"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["retryProvisionVoucher"]}]}," operation) up to three times (or more, depending on the originating system's business rules)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The originating system receives a successful ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/provisionresponse"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ProvisionResponse"]}]}," containing the details of the voucher within three retries or fewer."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The transaction is concluded according to one of the following scenarios."]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In the case of a single messaging system, the transaction is complete."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["In the case of a dual messaging system, the originating system sends a ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/tenderadvice"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TenderAdvice"]}]}," confirmation message (",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/other/confirmvoucher"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["confirmVoucher"]}]}," operation), and Electrum immediately sends a ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/tenderadvice"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TenderAdvice"]}]}," response. Electrum sends a confirmation message to the service provider via a store-and-forward queue until a response is returned."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/error-at-sp-or-electrum-retries-succeed.ddd2d427bc2ff28ebc4f3c1c171faf2133479913c9c5b3577cc654cdfb326bc8.f0281c88.png","alt":"alt text"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"error-upstream-retries-fail"},"children":["Error Upstream: Retries Fail"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The originating system sends a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST"]}," call to the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/vouchers"]}," API endpoint (",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/other/provisionvoucher"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["provisionVoucher"]}]}," operation)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["An error occurs at Electrum or the service provider."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Electrum responds to the originating system with an HTTP status of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["500"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["503"]},", or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["504"]},", and an ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/errordetail"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ErrorDetail"]}]}," message payload."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The error is due to a timeout or the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/errordetail"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ErrorDetail"]}]}," message contains an errorType of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UPSTREAM_UNAVAILABLE"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["VOUCHER_STATUS_UNKNOWN"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The originating system retries the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/provisionrequest"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ProvisionRequest"]}]}," (",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/other/retryprovisionvoucher"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["retryProvisionVoucher"]}]}," operation) up to three times (or more, depending on the originating system's business rules)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The originating system either receives an ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/errordetail"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ErrorDetail"]}]}," (hard decline) at any point, or does not receive a successful voucher response within the three retries."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The originating system sends a ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/schema/basicreversal"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["BasicReversal"]}]},"  message to Electrum (",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://docs.electrumsoftware.com/openapi/suv/swagger/other/reversevoucher"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["reverseVoucher"]}]}," operation) and immediately receives a response."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Electrum sends a reversal message to the service provider – if the provider supports reversal messaging – via a store-and-forward queue until a response is returned."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/error-at-sp-or-electrum-retries-fail.304fc77ed29863ac74dfa0b5029201780a2fc9418ae20fa7ac88a0aa848ea4e9.f0281c88.png","alt":"alt text"},"children":[]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning","name":"Important"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You should not attempt transaction lookups until after the initial processing period concludes (after Electrum has received and processed the transaction outcome)."]}]}]},"headings":[{"value":"Voucher provision for POS","id":"voucher-provision-for-pos","depth":1},{"value":"Operations and Messages","id":"operations-and-messages","depth":2},{"value":"Message Flows","id":"message-flows","depth":2},{"value":"Successful Voucher Provision: Dual Messaging","id":"successful-voucher-provision-dual-messaging","depth":2},{"value":"Successful Voucher Provision: Single Messaging","id":"successful-voucher-provision-single-messaging","depth":2},{"value":"Error or Timeout at Originating System","id":"error-or-timeout-at-originating-system","depth":2},{"value":"Error or Timeout at Originating System: Retries Fail","id":"error-or-timeout-at-originating-system-retries-fail","depth":2},{"value":"Error Upstream: Transaction Failed","id":"error-upstream-transaction-failed","depth":2},{"value":"Error Upstream: Unknown Transaction Outcome","id":"error-upstream-unknown-transaction-outcome","depth":2},{"value":"Error Upstream: Retries Fail","id":"error-upstream-retries-fail","depth":2}],"frontmatter":{"seo":{"title":"Voucher provision for POS"}},"lastModified":"2026-01-28T10:41:29.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/vas/public/digital-vouchers/integrate-your-channel/voucher-provision","userData":{"isAuthenticated":false,"teams":["anonymous"]}}