Apple Pay and Google Pay

Mobile-wallet integration for the Paynetics acquiring product — accept Apple Pay and Google Pay across in-app, online, and in-store channels with end-to-end encryption and tokenisation.

Overview

Paynetics offers Apple Pay and Google Pay integration for its acquiring product. These mobile wallets enable merchants to accept secure payments via smartphones, tablets, and wearables across in-app, online, and in-store channels. The solution features end-to-end encryption and tokenisation to minimise fraud risks.

Currency and country coverage

Settlement currencies supported are EUR, GBP, and BGN. Processing accepts all currencies that Apple Pay and Google Pay support. Geographic coverage includes EU27 member states, Iceland, Liechtenstein, Norway, and the UK.

Merchant onboarding

Onboarding follows standard procedures with two options:

  • API onboarding (recommended) — uses the Paynetics onboarding API for automated setup.
  • Manual onboarding — merchants upload application forms and documents to secure storage, with email notification to underwriting@paynetics.digital. This method has limited capacity, processing only 10–15 applications per month.

Partners manage merchant onboarding with wallet providers. Paynetics handles transaction processing but not message decryption or key exchange.

Fees, payouts, and reporting

Fees and payouts follow existing procedures. Real-time transaction tracking is available via API, with daily reconciliation reports sent via SFTP. Monthly commission reports arrive by the 10th, requiring invoice submission upon approval.

Technical integration

After agreement execution, developers receive sandbox access for integration testing. Production deployment requires a new API key and updated API root path.

Payments use POST /v1/purchase or POST /v1/pre-authorization endpoints. Key parameters include network card tokens, cardholder names, expiration data, wallet identifiers, cryptograms, and merchant identifiers.

For Visa transactions, 3D Secure authentication is optional but recommended for liability protection when ECI 05 status is desired.

API reference

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

POST /v1/purchase/{init}
Operation purchase

Path parameters

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

Request body

Field Type Description
reference2 string (0,any)
industry_specific_transaction string (0,any)
06
moto boolean
zip string (0,any)
address string (0,any)
balance string (0,any)
fee number (0,any)
sca_exemption string (0,any)
low-value
mpg_id string (0,any)
card_expiration_month string (0,any)
010203040506070809101112
card_expiration_year string (0,any)
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)
xid string (28,28)
cavv string (28,28)
version integer (0,any)
12
directory_transaction_id string (36,36)
resolution string (0,any)
eci string (0,2)
000102050607
recurring_type integer (0,any)
012345
initial_transaction string (0,any)
transaction_stamp string (0,any)
settlement_date string (0,any)

Example request

{
    "reference2": "string",
    "industry_specific_transaction": "string",
    "moto": "boolean",
    "zip": "string",
    "address": "string",
    "balance": "string",
    "fee": "number",
    "financial_institution_service_data": {
        "date_of_birth": "2021-12-12",
        "postal_code": "string",
        "surname": "string"
    },
    "client_fingerprint": {
        "location_finger_print": "",
        "ip_address": "127.0.0.1",
        "geo_location": "string",
        "device_type": "string",
        "operating_type_and_version": "WI11",
        "browser_type_and_version": "CH88",
        "email": "string"
    },
    "delivery_details": {
        "delivery_name": "John Doe",
        "delivery_street_name": "James Bourchier 76A",
        "delivery_zip": "1407",
        "delivery_city": "Sofia",
        "delivery_country": "BG"
    },
    "sca_exemption": "string",
    "wallet_payment": {
        "wallet_identifier": "apple-pay",
        "digital_payment_cryptogram": "string",
        "remote_commerce_acceptor_identifier": "string"
    },
    "aft": {
        "account_owner_address1": "James Bourchier 76A",
        "account_owner_address2": "James Bourchier 76A",
        "account_owner_street": "James Bourchier",
        "account_owner_postal_code": "ABCDE12345",
        "account_owner_city": "Sofia",
        "account_owner_country": "BGR",
        "merchant_postal_code": "ABCDE123",
        "merchant_state": "SOF",
        "acceptor_legal_name": "Paynetics",
        "sender_address": "James Bourchier 76A",
        "sender_city": "Sofia",
        "sender_state": "SF",
        "sender_country": "BGR",
        "sender_name": "John Doe",
        "sender_account_number": "efa213eab69d46c4a690",
        "recipient_name": "John Doe",
        "bai": "string",
        "account_owner_subdivision_code": "abc",
        "mvv": "13456ABCD"
    },
    "partner_data": {
        "independent_sales_organization_id": "00001111222"
    },
    "market_specific_extensions": {
        "mcc": "0000"
    },
    "additional_clearing_data": {
        "merchant_street": "James Bourchier",
        "merchant_postcode": "ABCDE12345"
    },
    "mpg_id": "string",
    "card_expiration_month": "string",
    "card_expiration_year": "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"
    },
    "xid": "string",
    "cavv": "string",
    "version": "integer",
    "directory_transaction_id": "string",
    "resolution": "string",
    "eci": "string",
    "recurring_type": "integer",
    "initial_transaction": "string",
    "transaction_stamp": "string",
    "settlement_date": "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