Skip to content

Logo

Payes

Supports in this guide: Payments

Provider website: payes.io


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

  1. Choose account type
  2. Get your credentials (from Payes)
  3. Connect in Dashboard
  4. Send an API request

Choose account type

Payes can be connected in different ways (depending on your needs):

  • If you do direct card payments -> choose H2H Merchant account
  • If you need a hosted-page flow (for example, local methods such as UPI) -> choose Provider account

If you are not sure which one to use, confirm with your Corefy account manager.


Prerequisites: get from Payes

Get the following values for your Payes account:

  • Shop ID -> Corefy field shop_id -> where to find: Payes back office / issued by your Payes manager
  • Public key -> Corefy field public_key -> where to find: Payes back office / issued by your Payes manager
  • Secret key -> Corefy field secret_key -> where to find: Payes back office / issued by your Payes manager

Payments processing (connect H2H Merchant account, create payment-invoice)

Connect H2H Merchant account in Corefy Dashboard

Step 1 - Open connection form

Open Payes in the provider directory and press Connect at Payes Provider Overview page in the New connection section. Choose H2H Merchant account.

Step 2 - Fill in fields and select settings

  • Shop ID -> shop_id
  • Public key -> public_key
  • Secret key -> secret_key
  • Test mode -> test_mode
  • 3-D Secure mode -> three_ds_mode (Simple / Advanced)

Additionally, choose Currency and Features according to what is enabled for your Payes account.

Success

You have connected Payes H2H Merchant account!


First request to Corefy API (MIN)

What it does: creates a payment-invoice.

Payment - MIN

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "8afec793-9b41-4dc4-b281-c76cc54ffb89",
      "service": "payment_card_eur",
      "currency": "EUR",
      "amount": 10
    }
  }
}

Payment - MAX

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "06fa1ea9-8a5b-4dbc-b67b-6236b3b9af3d",
      "service": "payment_card_eur",
      "currency": "EUR",
      "amount": 10.04,
      "customer": {
        "reference_id": "cus_123",
        "email": "sss@gmail.com"
      }
    }
  }
}


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


Options

Options are configured on the Corefy side and affect how Corefy builds provider requests or processes responses.

Currently available options (2)

  • ignore_callback - ignores incoming provider callbacks for this account
  • send_customer_data - sends customer billing details (name, country, city, state, zip, address) with each request
ignore_callback

What it does: stops Corefy from processing provider callback notifications for this account.

When to use: only if your account manager asked you to rely on active reconciliation instead of callbacks.

Default: disabled (callbacks are processed)

send_customer_data

What it does: adds a billing address block (name, country, city, state, zip, address) to the request sent to Payes, built from the customer fields in your API request, or from Constants when a field is missing.

When to use: enable it if your Payes account requires billing/address data for approval.

Default: disabled (no billing address block is sent)


Constants (fallback fields)

Constants are static values that Corefy can send to the provider instead of dynamic data from your API request, when those fields are missing in the request.

Priority (predictable rule): 1. If a value is present in the request -> Corefy uses the request value 2. Else if the constant is set -> Corefy uses the constant 3. Else -> Corefy sends its own built-in placeholder value (see note below)

Currently available constants (constant -> Corefy API field)

  • IP -> client IP address
  • DESCRIPTION -> payment description
  • LANG -> language
  • EMAIL -> customer.email
  • REASON -> refund reason
  • COUNTRY -> customer.address.country (sent only when send_customer_data is enabled)
  • CITY -> customer.address.city (sent only when send_customer_data is enabled)
  • STATE -> customer.address.region (sent only when send_customer_data is enabled)
  • ZIP -> customer.address.postCode (sent only when send_customer_data is enabled)
  • ADDRESS -> customer.address.fullAddress (sent only when send_customer_data is enabled)

Built-in placeholder values

If a Constant above is not configured in Dashboard and the matching field is also missing from your API request, Corefy does not omit the field or fail the request - it silently sends a fixed placeholder value to Payes instead:

  • IP -> 127.0.0.1
  • Description -> Some service
  • Language -> en
  • Email -> john@example.com
  • Refund reason -> return of goods
  • Country -> DE
  • City -> Denver
  • State -> CO
  • Postal code -> 96002
  • Address -> 1st Street

Set the Constants you care about (or always send the fields in your request) so Payes never receives these placeholders by accident.


Refunds

Refunds are supported for the H2H Merchant account:

  • Partial refunds are allowed.
  • Only a single refund per transaction is allowed (multiple/split refunds on the same transaction are not supported).
  • The original transaction ID is always required.
  • The refund reason sent to Payes comes from your request description, or falls back to the REASON constant (default return of goods) if not provided.

Reconciliation

Active reconciliation is supported: Corefy can query Payes directly for the current status of a transaction, rather than relying only on callbacks.


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

Connect Provider account in Corefy Dashboard

Step 1 - Open connection form

Open Payes in the provider directory and press Connect at Payes Provider Overview page in the New connection section. Choose Provider account.

Step 2 - Fill in fields (provider -> Corefy)

  • Shop ID -> shop_id
  • Secret key -> secret_key
  • Public key -> public_key
  • Test mode -> test_mode
  • Live URL (optional) -> live_url - only needed if your account manager gave you a custom API host; otherwise the default production host is used.

Success

You have connected Payes Provider account!


First request to Corefy API (MIN)

What it does: creates a payment-invoice.

Payment - MIN

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "eae08d28-1a7a-407f-ab4d-2c8275ca7964",
      "service": "upi_inr_hpp",
      "currency": "INR",
      "amount": 100
    }
  }
}

Payment - MAX

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "58acf793-9b41-4dc4-b281-c76cc54ff230",
      "service": "upi_inr_hpp",
      "currency": "INR",
      "amount": 100,
      "customer": {
        "reference_id": "33cc9165-6ab2-4cee-8d9a-10f05cddbb5a",
        "first_name": "John",
        "last_name": "Doe",
        "email": "sss@gmail.com",
        "phone": "380663031389",
        "address": {
          "country": "IN"
        }
      }
    }
  }
}

This flow covers the hosted-page and local-method side of Payes (for example, UPI payments in India); available services/currencies depend on what is enabled for your account - confirm the exact list with your account manager.


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


Constants (fallback fields)

Constants are static values that Corefy can send to the provider instead of dynamic data from your API request, when those fields are missing in the request. Unlike the H2H Merchant account, the Provider account has no built-in placeholder values - if a field is missing from both your request and Constants, it is simply left blank.

Priority (predictable rule): 1. If a value is present in the request -> Corefy uses the request value 2. Else if the constant is set -> Corefy uses the constant 3. Else -> the field is left blank

Currently available constants (constant -> Corefy API field)

  • LANGUAGE -> language
  • FIRST_NAME -> customer.first_name
  • LAST_NAME -> customer.last_name
  • EMAIL -> customer.email
  • PHONE -> customer.phone
  • COUNTRY -> customer.address.country

Refunds

Refunds are not available through the Provider account. If you need refund capability, use the H2H Merchant account instead.

Reconciliation

Active reconciliation is supported: Corefy can query Payes directly for the current status of a transaction, rather than relying only on callbacks.


Additional info

  1. Recurring/tokenized payments are not supported by Payes in either account type.
  2. Incoming callback requests are authenticated with an RSA SHA-256 signature carried in the Content-Signature header, verified against your connected Public key - this applies to both account types.
  3. The H2H Merchant account currently supports EUR, USD, RUB and UZS; the Provider account is intended for methods/currencies outside that set (for example, UPI in India) - confirm the exact list enabled for your account with your Corefy account manager.
  4. Refunds and active reconciliation behave independently per account type - see the Refunds/Reconciliation notes inside each flow above before relying on either.

FAQ / Troubleshooting

  • Invalid credentials / auth error -> verify shop_id, public_key and secret_key match the Dashboard field and the selected environment (test vs live)
  • Refund request fails -> confirm you are using the H2H Merchant account; the Provider account does not support refunds, and only one refund per transaction is allowed on the H2H Merchant account
  • Unexpected values arriving at Payes (email, address, etc.) -> check the Constants section for the H2H Merchant account; unset Constants fall back to built-in placeholder values rather than failing the request
  • Currency or service is not supported -> confirm allowed currencies/features in your Payes account and in Corefy
  • Not sure which account type to use? -> ask your Corefy account manager

Question

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