Push-to-card P2P enables approved partners to send funds from consumers’ payment accounts to a Visa or Mastercard card. The primary difference between P2P and A2A is that P2P is used when a customer sends funds to another cardholder, whereas A2A is used when a customer sends funds to their own card.
These features require special approval by Paynetics and by both card schemes. When sending OCT, you will use a dedicated set of credentials provided by Paynetics for authenticating to the acquiring API.
To execute a push-to-card payment, you must use the /v1/oct endpoint of the Acquiring API.
Example request:
const body = {
"balance": OCT_TEST_BALANCE,
"merchant": OCT_TEST_MERCHANT,
"user": "OCT_TEST_USER",
"card_number": BG_MSCARD_NUMBER,//"5355945027725460",//BG_MSCARD_NUMBER,//"4748365035326863",//BG_MSCARD_NUMBER, //
// "card_expiration_month": BG_MSCARD_EXPIRYMONTH,
// "card_expiration_year": "30",
"card": "{{uuid}}",
"industry_specific_transaction": "P",
"cardholder_name": "Test Test",
"reference": `ref-${Date.now()}`,//"1394271126652792832",
"amount": 5.00,
"currency": "BGN",
"first_name": "Test",
"last_name": "Test",
"nationality": "BG",
"birthday": "1970-01-01"
};
"OCT_BALANCE": "b7df9bd7-64bb-492f-9e08-6e2d5e3d1d3c",
"OCT_MERCHANT": "16c0ac96-4fc6-4960-b6d6-e3cd600e9768"
Fields | Description |
balance | mandatory, the balance token of the account of the customer the money are sent from, Format: UUID |
merchant | mandatory, token of the merchant, Format: UUID |
user | optional, token of the individual user sending the OCT, Format: UUID |
card details | card number (STRING, length 16), expiration month (STRING, “01” to “12”), expiration year (STRING, min current year); conditional mandatory if card details are not provided should be sent the token of the saved recipient card POST v1/cards |
card | the token of the saved recipient card POST v1/cards, conditionally mandatory if card details are not provided, Format: UUID |
industry_specific_transaction | mandatory, P for P2P and A for A2A |
reference | mandatory, reference field to be used for reconciliation, fill the unique id of the transaction in your system, Format: string |
amount | mandatory, OCT amount, Format: number, min 0.01 |
currency | mandatory, OCT currency, Format: ISO 4217 Currency code, Accepted currencies: GBP, EUR, USD, BGN |
first_name | optional, the first name of the sender, Format: string |
last_name | optional, the last name of the sender, Format: string |
nationality | optional, sender nationality, Format: ISO 3166 (alpha-2) |
birthday | optional, sender birthday, Format: ISO 8601 date |