Skip to content

Logo

GEO Pay

Manage your online assets with GEO Pay

Supports in this guide: Payments, Payouts

Provider website: geo-pay.net


What you need to do for start processing transactions (brief summary)

  1. Get your credentials (from GEO Pay)
  2. Generate and share a key pair
  3. Connect in Dashboard
  4. Send an API request

Prerequisites: get from GEO Pay

Create an account on the website or message the GEO Pay support team. In the Profile section, copy your Merchant Hash ID, then contact GEO Pay support to request an API key.

Generate a key pair (format P521 / secp521r1):

# to generate a private key
openssl genrsa -out key.pem 1024

# to get a public key from a private one
openssl rsa -in key.pem -outform PEM -pubout -out public.pem
Share your public key with GEO Pay support and receive GEO Pay's own public key in return, used to verify their responses.

  • API key -> Corefy field api_key.
  • Merchant Hash ID -> Corefy field merchant_hash_id.
  • Private key (optional in the Dashboard, but required for requests to be signed) -> Corefy field private_key -> upload your own private key.
  • GEO Pay public key (optional) -> Corefy field public_key -> upload GEO Pay's public key.

Important

Be sure to check with your account manager if you need to whitelist IPs on GEO Pay's side, using the Corefy IP list.

One Provider account is used for both Payments and Payouts.


Payments processing (connect Provider account, create payment-invoice)

Connect Provider account in Corefy Dashboard

Step 1 - Open connection form

Open GEO Pay in the provider directory and press Connect at GEO Pay Provider Overview page in the New connection section.

Step 2 - Fill in fields and select settings

  • API key
  • Merchant Hash ID
  • Private key
  • GEO Pay public key (optional)

Success

You have connected GEO Pay Provider account!


First request to Corefy API (MIN)

What it does: creates a payment-invoice and redirects the customer to GEO Pay's hosted checkout. GEO Pay wallet, Binance Pay, and a card-transfer (P2P) method are all supported on this same connection, selected via service.

Payment - MIN

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "1f2e3d4c-5b6a-4978-8c01-2d3e4f5a6b7c",
      "service": "geopaynet_uah_hpp",
      "currency": "UAH",
      "amount": 100
    }
  }
}

Important

customer is not used at all by this connector - no customer fields are sent to GEO Pay for Payments.

Payment - MAX

There is no MAX variant - the request above already includes every field GEO Pay's Payments API accepts. No Options or Constants are configured for this connector.


Extended request (MAX)

Why add extra fields (typical reasons): - Provide additional customer details for compliance/reconciliation - Positively influence conversion rate - Include optional fields required by your specific flow


Refunds

GEO Pay does not support refunds.


Payouts processing (connect Provider account, create payout-invoice)

Connect Provider account in Corefy Dashboard

Uses the same Provider account connected above - no separate connection step.

First request to Corefy API (MIN)

What it does: creates a payout-invoice and sends funds either to a GEO Pay wallet or directly to a card, depending on the method.

Payout - MIN (to a GEO Pay wallet)

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "reference_id": "2a3b4c5d-6e7f-4089-8d12-3e4f5a6b7c8d",
      "service": "geopaynet_uah",
      "currency": "UAH",
      "amount": 100,
      "fields": {
        "user_id": "recipient-hash-id-123"
      }
    }
  }
}

Important

fields.user_id (the recipient's GEO Pay Hash ID) is required for payouts to a GEO Pay wallet.

Payout - MIN (to a card)

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "reference_id": "3c4d5e6f-7a8b-4c9d-8e02-3f4a5b6c7d8e",
      "service": "payment_card_uah",
      "currency": "UAH",
      "amount": 100,
      "fields": {
        "card_number": "4111111111111111"
      }
    }
  }
}

Important

fields.card_number is required for card payouts. customer is not used by either payout method.

Payout - MAX

There is no MAX variant - the requests above already include every field GEO Pay's Payouts API accepts. No Options or Constants are configured for this connector.


Extended request (MAX)

Why add extra fields (typical reasons): - Provide additional customer details for compliance/reconciliation - Positively influence conversion rate - Include optional fields required by your specific flow


Additional info

  1. UAH, EUR, RUB, and KZT are available, depending on the method; GEO Pay wallet and card payouts in UAH are limited to 20-25000 UAH per transaction.
  2. Active reconciliation is available - both Payments and Payouts support an active status request (Payouts do not have an asynchronous callback at all, so an active status request is the only way to get a final payout status).
  3. No recurring - this connector does not support saving/charging a token through Corefy.

FAQ / Troubleshooting

  • Invalid credentials / auth error -> verify the API key, Merchant Hash ID, and that your private key is uploaded - requests are signed with it and fail without one
  • Payout to a wallet fails with recipient not found -> confirm fields.user_id matches a real GEO Pay Hash ID
  • Currency or service is not supported -> confirm allowed currencies/features in your GEO Pay account and in Corefy - only UAH, EUR, RUB, KZT are available, and availability depends on the method
  • Refund fails -> GEO Pay does not support refunds through Corefy

Question

Still looking for help connecting your GEO Pay account? Please contact our support team!