PartnerCard Payment: Difference between revisions

From Barion Documentation
Jump to navigation Jump to search
Line 78: Line 78:


== TopUp process ==
== TopUp process ==
In this process a customers wallet (identified by a card) can be topped up via a third party e-wallet (called a topup fascilitator in this model). This means that an e-money transfer will take place between two wallets.
[[File:Topup-participants.jpg]]
To be able to topup an account with a partner card, the partner app has to call the <tt>[[Topup_FromWalletWithPartnerCard_v2|v2/Topup/FromWalletWithPartnerCard]]</tt> API endpoint. This will move the specified amount from the source wallett to the target wallet (card owners wallet). To be able to do this, the source wallets owner should have enough money for the specified amount and for the topup fee as well.




[[File:Topup.jpg]]
[[File:Topup.jpg]]


To be able to topup an account with a partner card, the partner app has to call the <tt>[[Topup_FromWalletWithPartnerCard_v2|v2/Topup/FromWalletWithPartnerCard]]</tt> API endpoint. This will move the specified amount from the source wallett to the target wallet (card owners wallet). To be able to do this, the source wallets owner should have enough money for the specified amount and for the topup fee as well.


'''Example request'''
'''Example request'''

Revision as of 16:08, 12 June 2017

Partner Card Payment

With partner card payment a Barion partner can issue a plastic card that can be used to topup a Barion wallet or make a payment with it. For this the partner has to request a Barion API key. This API is only available for specific partners.

The feature contains three major areas:

  • Card registration
  • Topup with the card
  • Payment with the card


Card registration process


The partner card registration contains three steps.

  1. Card preparation: The partner requests a new card secret from the Barion API. This is stored on the card and used for authentication later. One card number can only be registered once. At this point the card is not attached to any Barion wallet.
  2. Card issueing: The previously registered card can be issued. This means that the card will be attached to a Barion wallett.
  3. Card activation: The owner of the card must choose a PIN number that ensures another factor in the security protocol. This should be registered with the Barion API and must not be stored on the card itself.

Card preparation example

Request

{
   "PartnerKey" : "f776efde-bd50-4755-a233-caa48cdf961f",
   "PAN": "4657 3726 1490"
}

Response

{
  "PrivateCardKey": "b9c8c4c3e660484ca166a32f0ba584cf",
  "Errors": []
}

Card issueing example

Request

{
   "PartnerKey" : "f776efde-bd50-4755-a233-caa48cdf961f",
   "PrivateCardKey": "b9c8c4c3e660484ca166a32f0ba584cf",
   "OwnerLoginName": "[email protected]"
}

Response

{
  "PrivateCardKey": "b9c8c4c3e660484ca166a32f0ba584cf",
  "CardIssueWasSuccessful": true,
  "Errors": []
}

Card activation example

Request

{
   "PartnerKey" : "f776efde-bd50-4755-a233-caa48cdf961f",
   "PrivateCardKey": "b9c8c4c3e660484ca166a32f0ba584cf",
   "CardPin": "1234"
}

Response

{
  "PrivateCardKey": "b9c8c4c3e660484ca166a32f0ba584cf",
  "CardActivationWasSuccessful": true,
  "Errors": []
}

Related API endpoints

TopUp process

In this process a customers wallet (identified by a card) can be topped up via a third party e-wallet (called a topup fascilitator in this model). This means that an e-money transfer will take place between two wallets.

To be able to topup an account with a partner card, the partner app has to call the v2/Topup/FromWalletWithPartnerCard API endpoint. This will move the specified amount from the source wallett to the target wallet (card owners wallet). To be able to do this, the source wallets owner should have enough money for the specified amount and for the topup fee as well.



Example request

{
     "PartnerKey": "f776efde-bd50-4755-a233-caa48cdf961f",
     "SourceWalletLoginName": "[email protected]",
     "PrivateCardKey": "2ba47cde700442f18639f47aa492a3b4",
     "CardPin": "1234",
     "Amount": 500,
     "Currency": "HUF"
}

Example response

{
    "WasTopUpSuccessful": true,
    "TopUpTransactionId": "356e532734fd43dc91d4d4f8b558d8b4",
    "Errors": []
}

Releated API endpoints

Payment process

The partner card payment uses the Barion PaymentGateway to prepare the payment. This means that the payment should first be prepared and than fulfilled. At this moment only e-money payment is supported. This means that the total of the payment must be available in the wallet of the payer.

Preparing the payment

To prepare the payment the partner has to model a payment scenario. The easiest scenario is a simple immediate payment that can be configured as described on the Responsive Web Payment page. At this point only the immediate e-money payment scenario is supported (no matter what the FundingSources property is set to).

Example preparation request


{
    "POSKey": "ab9ebdba-e1bf-46a6-bf3c-4a3a38b95044",
    "PaymentType": "Immediate",
    "PaymentRequestId": "PAYMENT--001",
    "FundingSources": ["All"],
    "OrderNumber": "Order_01",
    "Currency": "HUF",
    "Transactions": [
        {
            "POSTransactionId": "TRANSACTION--01",
            "Payee": "[email protected]",
            "Total": 150000,
            "Comment": "Shipment 002",
            "Items": [ ]
        }
    ]
}

Example reparation response

{
  "PaymentId": "9361c11b72f548b9a21537d23f34ce20",
  "PaymentRequestId": "PAYMENT--001",
  "Status": "Prepared",
  "QRUrl": "https://api.barion.com/qr/generate?paymentId=9361c11b72f548b9a21537d23f34ce20&size=Large",
  "Transactions": [
    {
      "POSTransactionId": "TRANSACTION--01",
      "TransactionId": "12084502b4474188abec644207b9fa2e",
      "Status": "Prepared",
      "Currency": "HUF",
      "TransactionTime": "2017-06-02T08:33:48.118",
      "RelatedId": null
    }
  ],
  "RecurrenceResult": "None",
  "GatewayUrl": "https://secure.barion.com/Pay?Id=9361c11b72f548b9a21537d23f34ce20",
  "RedirectUrl": null,
  "CallbackUrl": null,
  "Errors": []
}

Fulfilling the payment

To fulfill the payment you have to use the v2/Payment/PayWithPartnerCard endpoint and POST the PaymentId and the card information.

Example payment request

{
   "PartnerKey" : "f776efdebd504755a233caa48cdf961f",
   "PrivateCardKey": "14b3c9133c2c4416af8806282e9f4b0e",
   "CardPin": "1234",
   "PaymentId": "9f51f0c209294f5a913d9304758defcd"
}

Example payment response

{
  "IsSuccessful": true,
  "PaymentId": "9f51f0c209294f5a913d9304758defcd",
  "PaymentRequestId": "PAYMENT--001",
  "PaymentStatus": "Succeeded",
  "Errors": []
}

Related API endpoints