Skip to content

Logo

DNS PAY

THE EASIEST WAY TO HAVE IT ALL. FAST. You can stop looking for a payment provider, because DNS Pay is the top-of-the-line solution you've been looking for. With the fastest and easiest, single integration, you have full access to the most advanced technology, with unbeatable service by our payment experts.

Supports in this guide: Payments

Provider website: dns-pay.com


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

  1. Get your credentials (from DNS PAY)
  2. Connect in Dashboard
  3. Send an API request

Prerequisites: get from DNS PAY

Contact your DNS PAY account manager to get your account verified and receive the following credentials.

  • Login -> Corefy field login.
  • Control key -> Corefy field control_key.
  • Endpoint ID -> Corefy field endpoint_id.
  • Multi-currency integration -> Corefy field is_multi_currency_integration -> confirm with your account manager whether your account is set up for multiple currencies.

USD, EUR.


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

Connect H2H Merchant account in Corefy Dashboard

Step 1 - Open connection form

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

Step 2 - Fill in fields and select settings

  • Login
  • Control key
  • Endpoint ID
  • Multi-currency integration
  • Test Mode -> (enable if you are using sandbox credentials)

Success

You have connected DNS PAY H2H Merchant account!


First request to Corefy API (MIN)

What it does: creates a payment-invoice; card data itself is collected and submitted separately by Corefy's checkout/SDK layer, not as part of this request. DNS PAY may return a 3D Secure challenge redirect depending on the card.

Payment - MIN

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "d9a8b2e8-d1e1-40b2-8a57-0d425f7fee5f",
      "service": "payment_card_usd_hpp",
      "currency": "USD",
      "amount": 10
    }
  }
}

Payment - MAX

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "ea02d04f-ae2b-4e09-91e4-e1d41c1d07fa",
      "service": "payment_card_usd_hpp",
      "currency": "USD",
      "amount": 10,
      "customer": {
        "reference_id": "92134e0d-8aca-4e0b-b9fa-a0c8a2e3f0a9",
        "name": "John Wick",
        "email": "johnwick@example.com",
        "phone": "+380661234123",
        "date_of_birth": "2024-07-07",
        "address": {
          "full_address": "Test street 123",
          "country": "FR",
          "region": "Paris",
          "city": "Paris",
          "street": "Test street",
          "post_code": "12354"
        }
      }
    }
  }
}

Important

If a customer field is missing, Corefy falls back to the matching Constant (below); if neither is set, that field is simply not sent.


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

  • ignore_callback -> optional, boolean - for cascading, relies only on an active status request to finalize the payment instead of also allowing the asynchronous callback to do so.
  • use_default_browser_info -> optional, boolean - when the customer's real browser info isn't available, sends the browser-info Constants (below) instead of leaving those fields empty.
  • allow_callback_for_all_transaction_types -> optional, boolean - by default, the callback URL is only attached to a Sale request; enabling this also attaches it to Refund requests.
  • custom_finalization_logic -> optional, boolean - treats an approved status as successful even if the response also carries an error code/message; default false.

Note

If you are not sure which value to select, please contact our support team!


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 -> provider may reject the request or apply its defaults (depends on provider)

Currently available constants (constant -> Corefy API field)

  • PHONE -> customer.phone
  • EMAIL -> customer.email
  • ADDRESS -> customer.address.full_address
  • CITY -> customer.address.city
  • POST_CODE -> customer.address.post_code
  • COUNTRY -> customer.address.country
  • DATE_OF_BIRTH -> customer.date_of_birth
  • BROWSER_INFO, BROWSER_TZ_OFFSET, BROWSER_SCREEN_WIDTH, BROWSER_SCREEN_HEIGHT, BROWSER_COLOR_DEPTH, BROWSER_LANGUAGE, BROWSER_JAVA_ENABLED, BROWSER_ACCEPT_HEADER, BROWSER_USER_AGENT, BROWSER_IP -> fallback browser fingerprint values, used only when use_default_browser_info is enabled and the customer's real browser info is unavailable

Refunds

DNS PAY supports partial refunds, but only one refund per payment (no multiple partial refunds against the same payment).


Additional info

  1. No recurring - this connector does not support saving/charging a token through Corefy.

FAQ / Troubleshooting

  • Invalid credentials / auth error -> verify Login, Control key, Endpoint ID and the is_multi_currency_integration setting for the selected environment (test_mode)
  • Currency or service is not supported -> confirm allowed currencies/features in your DNS PAY account and in Corefy - only USD and EUR are available
  • Refund fails with multiple attempts -> only one refund per payment is allowed
  • No callback received on Refund -> enable allow_callback_for_all_transaction_types

Question

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