OCT (Original Credit Transaction)

Push funds to a recipient's Visa card account — the reverse of a normal card payment. Used for payouts, refunds, commissions, and winnings.

An Original Credit Transaction (OCT) is a payment method that allows funds to be pushed to a recipient's Visa card account — reversing the typical flow of funds. Unlike traditional card payments where cardholders pay merchants, OCTs enable merchants to initiate payments to consumers for uses like payouts, refunds, commissions, and winnings.

Supported use cases

Paynetics supports OCT functionality for approved merchant categories across six transaction types:

  • Account to Account (A) — transfers between two accounts belonging to the same person across different platforms or institutions.
  • Funds Disbursement (F) — corporate or fintech bulk payouts for salary advances, loan disbursements, and affiliate rewards.
  • Person to Person (P) — card-to-card transfers between individuals with distinct identities.
  • Wallet Transfers (W) — transfers into digital wallets or apps pre-staged for payouts.
  • Gaming & Gambling (G) — winnings or refund payouts from legal, regulated gambling merchants.
  • Cryptocurrency (C) — off-ramping from crypto holdings into fiat currency for licensed partners.

Geographic support

Account to Account, Funds Disbursement, Person to Person, and Wallet Transfers enjoy broad support across Europe, MENA, Africa, the Americas, and APAC. Gaming & Gambling and Cryptocurrency use cases have more limited support, primarily in Western European countries, and require explicit scheme and underwriting approval.

Technical integration

OCT transactions use the POST /v1/oct endpoint of the Acquiring API. Merchants must provide transaction details including amount, currency, merchant token, funding balance token, recipient card information (either as a token or card details), recipient personal information, and transaction reference. The system accepts GBP, EUR, USD, and BGN currencies and requires secure tokenisation or encryption of cardholder card numbers.

Compliance and settlement

All merchants undergo underwriting, scheme registration, and risk checks. Gaming and cryptocurrency transactions may face issuer or Visa blocks even in eligible countries. Approved merchants must fund their OCT account via SEPA, SEPA Instant, Faster Payments, or BISERA. Daily reconciliation is available via SFTP with configurable fee models and settlement in supported currencies.

OCT REQUEST — POST /v1/oct
{
  "balance": "8b1c1d20-1cf2-4ab7-92d3-3a3e7b6f12ab",
  "merchant": "0a3b9b0a-93b3-4d51-8f23-e0e6e36a01ff",
  "card_number": "4444333322221111",
  "card_expiration_month": "12",
  "card_expiration_year": "2030",
  "industry_specific_transaction": "F",
  "cardholder_name": "John Doe",
  "reference": "payout-2026-05-03-001",
  "amount": 250.00,
  "currency": "EUR"
}

API reference

Live request / response schema, parameters, example payload, and cURL / Node / Python / PHP code samples — pulled from the OpenAPI spec for post_/v1/oct/{init}.

POST /v1/oct/{init}
Operation oct

Path parameters

NameExampleDescription
init Token returned from /v1/init. Not required

Request body

Field Type Description
card_expiration_month string (0,any)
010203040506070809101112
card_expiration_year string (0,any)
balance string (0,any)
first_name string (0,any)
last_name string (0,any)
birthday string (0,any)
nationality string (0,any)
aml_check string (0,any)
matchno-match
reference2 string (0,any)
industry_specific_transaction string (0,any)
ADPWGC
merchant string (0,any)
terminal string (0,any)
user string (0,any)
currency string (0,any)
card string (0,any)
card_number string (0,any)
reference string (0,any)
cardholder_name string (2,45)
cvv2 string (0,any)
mid string (0,any)

Example request

{
    "card_expiration_month": "string",
    "card_expiration_year": "string",
    "balance": "string",
    "first_name": "string",
    "last_name": "string",
    "birthday": "string",
    "nationality": "string",
    "aml_check": "string",
    "reference2": "string",
    "industry_specific_transaction": "string",
    "merchant": "string",
    "terminal": "string",
    "user": "string",
    "amount": "number",
    "currency": "string",
    "card": "string",
    "card_number": "string",
    "reference": "string",
    "cardholder_name": "string",
    "cvv2": "string",
    "mid": "string",
    "card_acceptor": {
        "name": "string"
    }
}

Response

Field Type Description
code integer (0,any)

Example response

{
    "code": "integer",
    "data": {
        "card_number": "string",
        "processing_code": "string",
        "amount": "number",
        "stan": "string",
        "local_time": "string",
        "local_date": "string",
        "auth_code": "string",
        "response_code": "string",
        "card_acceptor_terminal_id": "string",
        "card_acceptor_identification_code": "string",
        "currency": "string",
        "transaction": "string",
        "external_transaction_id": "string",
        "error_details": "string",
        "cvv_status": "string",
        "avs_status": "string",
        "ccti_id": "string",
        "transaction_stamp": "string",
        "retrieval_reference_number": "string",
        "card": "string",
        "original_network_response_code": "string",
        "action_code": "string",
        "order": "string"
    }
}
esc
navigate open esc close
Copied