.. _pan_eligibility: PAN Eligibility ############### .. toctree:: :maxdepth: 1 .. contents:: :local: .. role:: ex .. role:: code Introduction ^^^^^^^^^^^^ PAN Eligibility services allow Connecting Party to detect whether card is eligible for Money Transfer (either as sending or as receiving card) along with providing extended information about card issuer and card product before making a financial transaction request. PAN Eligibility Direct Flow ^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. uml:: :align: center skinparam roundcorner 20 skinparam sequenceArrowThickness 1 skinparam maxmessagesize 1200 skinparam sequenceParticipant underline actor Payer participant "Connecting Party" as A participant Payneteasy as B autonumber Payer -> A: Checkout activate A A -> B: /api/v2/pan-eligibility/send/ activate B A -> B: /api/v2/pan-eligibility/receive/ A -> B: /api/v2/pan-eligibility/both/ B --> A: Order ID B -> B: Process\npan-eligibility group Get Final Status == Receive Connecting Party Callback == A <- B: Callback with Final Status A --> B: HTTP 200 deactivate B == Order Status Request == A -> B: Get Status by Order ID activate B B --> A: Final Status deactivate B end A --> Payer: Show result deactivate Payer deactivate A | (2,3,4) To implement PAN eligibility direct flow request see :ref:`/api/v2/pan-eligibility/`. PAN eligibility information can be requested for Payer card (also referred as Sender), Recipient card (also referred as Receiver) or both cards at once. | (5) To implement callback with final status handling see :ref:`Connecting Party Callback`. | (7) To implement order status request see :ref:`/api/v2/status/`. Status should be requested multiple times with 3-5 seconds interval until final status will be received in response. PAN Eligibility Form Flow ^^^^^^^^^^^^^^^^^^^^^^^^^ .. uml:: :align: center skinparam roundcorner 20 skinparam sequenceArrowThickness 2 skinparam ParticipantPadding 30 actor Payer as Customer participant "Connecting Party\nwebsite" as Merchant participant "Payment Gateway" as g autonumber Customer -> Merchant: Checkout activate Merchant == Purchase payment request == Merchant -> g: api/v2/pan-eligibility/send-form activate g Merchant -> g: api/v2/pan-eligibility/receive-form Merchant -> g: api/v2/pan-eligibility/both-form g --> Merchant: Redirect-url, orderId deactivate g Merchant -> Customer: Provide redirect-url \nto payer’s browser deactivate Merchant activate Customer Customer -> g: GET redirect-url deactivate Customer activate g g --> Customer: Payment Form deactivate g activate Customer Customer -> g: Submit form deactivate Customer activate g g --> g: Process PAN Eligibility == Final redirect of customer == g -> Customer: Connecting Party website redirect_url activate Customer Customer -> Merchant: POST redirect_url\nstatus, orderid deactivate Customer activate Merchant group Get Final Status == Receive Connecting Party Callback == Merchant <- g: Сallback with final status g <-- Merchant: HTTP 200 deactivate g == Order Status Request == Merchant -> g: api/v2/status activate g g --> Merchant: Response \nstatus, order-stage deactivate g end Merchant --> Customer: Show result deactivate Merchant | (2,3,4) To implement PAN eligibility form flow request see :ref:`/api/v2/pan-eligibility-form/`. PAN eligibility information can be requested for Payer card (also referred as Sender), Recipient card (also referred as Receiver) or both cards at once. | (5) To implement callback with final status handling see :ref:`Connecting Party Callback`. | (7) To implement order status request see :ref:`/api/v2/status/`. Status should be requested multiple times with 3-5 seconds interval until final status will be received in response. PAN Eligibility Callback ^^^^^^^^^^^^^^^^^^^^^^^^ Callback Parameters ~~~~~~~~~~~~~~~~~~~ Additional parameters are sent in callbacks for PAN Eligibility transactions. For more information see :ref:`Connecting Party Callback Parameters`. .. list-table:: :widths: 40, 60 :header-rows: 1 :class: longtable * - Callback Parameter - Description * - :code:`status` - See :ref:`status_list` for details. * - :code:`serial-number` - Serial number of the request. * - :code:`client_orderid` - Connecting Party order identifier. * - :code:`paynet-order-id` - Order id set by Payneteasy. * - :code:`processor-tx-id` - Transaction id set by processor. * - :code:`type` - Transaction type, :ex:`sale` :ex:`reversal` :ex:`chargeback` * - :code:`sending-card-type` - The sending card type (:ex:`VISA`, :ex:`MASTERCARD`). * - :code:`sending-cardholder` - Cardholder of the sending card. * - :code:`sending-bin` - The sending card Bank identification number. * - :code:`sending-last-four-digits` - The sending card last 4 digits. * - :code:`sending-eligible` - Whether the sending card is eligible for sending funds. Possible values: :ex:`true`/:ex:`false`/:ex:`unknown`. * - :code:`sending-ica` - The sending card ICA. * - :code:`sending-bank-name` - The sending card Bank name. * - :code:`sending-currency-code` - The sending card currency code. * - :code:`sending-country-code` - The sending card country code. * - :code:`sending-acceptance-brand-code` - The sending card Acceptance brand code. * - :code:`sending-acceptance-brand-name` - The sending card Acceptance brand name. * - :code:`sending-product-brand-code` - The sending card Product brand code. * - :code:`sending-product-brand-name` - The sending card Product brand name. * - :code:`receiving-card-type` - The receiving card type (:ex:`VISA`, :ex:`MASTERCARD`). * - :code:`receiving-bin` - The receiving card Bank identification number. * - :code:`receiving-last-four-digits` - The receiving card last 4 digits. * - :code:`receiving-eligible` - Whether the receiving card is eligible for sending funds. Possible values: :ex:`true`/:ex:`false`/:ex:`unknown`. * - :code:`receiving-ica` - The receiving card ICA. * - :code:`receiving-bank-name` - The receiving card Bank name. * - :code:`receiving-currency-code` - The receiving card currency code. * - :code:`receiving-country-code` - The receiving card country code. * - :code:`receiving-acceptance-brand-code` - The receiving card Acceptance brand code. * - :code:`receiving-acceptance-brand-name` - The receiving card Acceptance brand name. * - :code:`receiving-product-brand-code` - The receiving card Product brand code. * - :code:`receiving-product-brand-name` - The receiving card Product brand name. * - :code:`error-code` - Error Code. * - :code:`error-message` - Error Message. * - :code:`control` - | Checksum generated by :ref:`SHA-1`. Control string is represented as concatenation of the following parameters: | 1. Callback parameter: :ex:`status`. | 2. Callback parameter: :ex:`orderid`. | 3. Callback parameter: :ex:`merchant_order`. | 4. :ex:`merchant_control` (Control key assigned to Merchant account in the Payneteasy Payment Gateway). Callback Macros ~~~~~~~~~~~~~~~ Simple callback URL contains all parameters listed in :ref:`Callback Parameters`. Customizable URL allows Connecting Party to define own parameter names, whereas the actual parameters values are defined by use of macros with the following format :ex:`${parameter_name}`. Available macros are listed in :ref:`Callback Macros`. .. list-table:: :widths: 44, 15, 41 :header-rows: 1 :class: longtable * - Field Name Macro - Field Value Macro - Description * - :code:`${status}` - n/a - Transaction status, :ex:`approved` :ex:`declined` :ex:`processing`. * - :code:`${serial-number}` - n/a - Unique number assigned by Payneteasy server to particular request from the Connecting Party. * - :code:`${client-order-id}` - n/a - Unique order identifier assigned by Connecting Party. * - :code:`${paynet-order-id}` - n/a - Payneteasy-generated order id. * - :code:`${processor-tx-id}` - n/a - Processor-generated transaction id. * - :code:`${type}` - n/a - Transaction type, ex. :ex:`sale`, :ex:`return`, :ex:`chargeback`, etc. * - :code:`${sending-card-type}` - n/a - The sending card type (:ex:`VISA`, :ex:`MASTERCARD`). * - :code:`${sending-cardholder}` - n/a - Cardholder of the sending card. * - :code:`${sending-bin}` - n/a - The sending card Bank identification number. * - :code:`${sending-last-four-digits}` - n/a - The sending card last 4 digits. * - :code:`${sending-eligible}` - n/a - Whether the sending card is eligible for sending funds. Possible values: :ex:`true`/:ex:`false`/:ex:`unknown`. * - :code:`${sending-ica}` - n/a - The sending card ICA. * - :code:`${sending-bank-name}` - n/a - The sending card Bank name. * - :code:`${sending-currency-code}` - n/a - The sending card currency code. * - :code:`${sending-country-code}` - n/a - The sending card country code. * - :code:`${sending-acceptance-brand-code}` - n/a - The sending card Acceptance brand code. * - :code:`${sending-acceptance-brand-name}` - n/a - The sending card Acceptance brand name. * - :code:`${sending-product-brand-code}` - n/a - The sending card Product brand code. * - :code:`${sending-product-brand-name}` - n/a - The sending card Product brand name. * - :code:`${receiving-card-type}` - n/a - The receiving card type (:ex:`VISA`, :ex:`MASTERCARD`). * - :code:`${receiving-bin}` - n/a - The receiving card Bank identification number. * - :code:`${receiving-last-four-digits}` - n/a - The receiving card last 4 digits. * - :code:`${receiving-eligible}` - n/a - Whether the receiving card is eligible for sending funds. Possible values: :ex:`true`/:ex:`false`/:ex:`unknown`. * - :code:`${receiving-ica}` - n/a - The receiving card ICA. * - :code:`${receiving-bank-name}` - n/a - The receiving card Bank name. * - :code:`${receiving-currency-code}` - n/a - The receiving card currency code. * - :code:`${receiving-country-code}` - n/a - The receiving card country code. * - :code:`${receiving-acceptance-brand-code}` - n/a - The receiving card Acceptance brand code. * - :code:`${receiving-acceptance-brand-name}` - n/a - The receiving card Acceptance brand name. * - :code:`${receiving-product-brand-code}` - n/a - The receiving card Product brand code. * - :code:`${receiving-product-brand-name}` - n/a - The receiving card Product brand name. * - :code:`${error-code}` - n/a - Error Code. * - :code:`${error-message}` - n/a - Error Message. * - :code:`${control}` - n/a - | Checksum generated by :ref:`SHA-1`. Control string is represented as concatenation of the following parameters: | 1. Callback parameter: :ex:`status`. | 2. Callback parameter: :ex:`orderid`. | 3. Callback parameter: :ex:`merchant_order`. | 4. :ex:`merchant_control` (Control key assigned to Merchant account in the Payneteasy Payment Gateway).