Skip to content

Logo

D8 Corporation

We enable your digital payment services. D8 Corporation helps you bring your services to market quickly and at scale.

Supports in this guide: Payments, Payouts

Provider website: www.d8corporation.com


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

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

Choose account type

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

  • If you do card, Apple Pay, or Google Pay payments -> choose H2H Merchant account
  • If you do card payouts -> choose Provider account

D8 does not currently support payments through a Provider account, or payouts through the H2H Merchant account. If you're not sure which one to use, confirm with your Corefy account manager.


Prerequisites: get from D8

Contact your D8 account manager to get your account verified and receive the following credentials. H2H Merchant account and Provider account are separate connections with independent credentials.

For H2H Merchant account:

  • Merchant ID -> Corefy field merchant_id.
  • Terminal ID -> Corefy field terminal_id.
  • CA Certificate -> Corefy field ca_cert -> uploaded as a file.
  • CA Certificate Key (optional) -> Corefy field ca_cert_key -> uploaded as a file.
  • API type (optional) -> Corefy field api_type -> card_payment (default) or c2a (card-to-account) -> confirm with your D8 manager which one applies to your terminal.

Optional, only if you use cardholder verification (see the card_vs_itn_verification_bins option below):

  • Verification user -> Corefy field verification_user.
  • Verification password -> Corefy field verification_password.
  • Verification API URL -> Corefy field verification_api_url.

Optional, only if you use Cybersource network tokenization:

  • Cybersource key -> Corefy field cb_key.
  • Cybersource shared secret -> Corefy field cb_shared_secret.
  • Tokenization organization ID -> Corefy field tokenize_org_id.
  • Tokenization MLE key ID -> Corefy field tokenize_mle_key_id.
  • Tokenization MLE private key -> Corefy field tokenize_mle_private_key -> uploaded as a file.

For Provider account:

  • Merchant ID -> Corefy field merchant_id.
  • Terminal ID (optional) -> Corefy field terminal_id.
  • SSL Certificate -> Corefy field ssl_cert -> uploaded as a file.
  • SSL Private Key -> Corefy field ssl_private_key -> uploaded as a file.
  • API URL (optional) -> Corefy field api_url -> leave as default unless your account manager tells you otherwise.

Optional, only if you use cardholder verification (same mechanism as the H2H Merchant account, see card_vs_itn_verification_bins below):

  • Verification user -> Corefy field verification_user.
  • Verification password -> Corefy field verification_password.
  • Verification API URL -> Corefy field verification_api_url.

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

Connect H2H Merchant account in Corefy Dashboard

Step 1 - Open connection form

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

Step 2 - Fill in fields and select settings

  • Merchant ID
  • Terminal ID
  • CA Certificate
  • CA Certificate Key (optional)
  • API type (optional)
  • Verification user / password / API URL (optional)
  • Cybersource key / shared secret (optional)
  • Tokenization organization ID / MLE key ID / MLE private key (optional)
  • Use Cybersource tokenization (optional)
  • Test Mode -> (enable if you are using sandbox credentials)

Success

You have connected D8 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. Card, Apple Pay, and Google Pay are all supported on this same connection. D8 may return a 3D Secure challenge redirect depending on the card.

Payment - MIN

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "9c005348-0bd2-4e7f-aa64-b50d0660c01d",
      "service": "payment_card_uah_hpp",
      "currency": "UAH",
      "amount": 100
    }
  }
}

Payment - MAX

POST /api/payment-invoices

{
  "data": {
    "type": "payment-invoice",
    "attributes": {
      "reference_id": "06fa1ea9-8a5b-4dbc-b67b-6236b3b9af3d",
      "service": "payment_card_uah_hpp",
      "currency": "UAH",
      "amount": 100,
      "description": "Order #12345",
      "customer": {
        "reference_id": "33cc9165-6ab2-4cee-8d9a-10f05cddbb5a",
        "name": "John Doe",
        "individual_tax_id": "1234567890"
      }
    }
  }
}

Important

customer.individual_tax_id (or customer.passport_series + customer.passport_number instead) is sent to D8 as the sender ID. When the card_vs_itn_verification_bins option is set and the card BIN matches, Corefy's own connector requires one of these values and declines the payment without calling D8 if none is provided.


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

  • card_vs_itn_verification_bins -> optional, array - list of 6- or 8-digit card BINs for which the cardholder is verified against the customer's tax ID/passport before the payment.
  • wait_final_status -> optional, boolean - waits for the final payment status in the same request for non-3DS payments.
card_vs_itn_verification_bins

What it does: for cards whose first 6 or 8 digits match one of the listed BINs, Corefy checks via the D8 verification API (verification_* credentials) that the customer (customer.individual_tax_id or passport) is the card owner. If the check fails, the payment is declined before it is sent to D8.

When to use: when D8 or your compliance requirements call for cardholder verification on specific card ranges.

Default: not set (no verification)

Allowed values: list of 6- or 8-digit BINs

wait_final_status

What it does: for non-3DS payments, after the payment is submitted to D8, Corefy checks the payment status several times (up to 5 checks, about 2 seconds apart) and returns the final status in the response instead of a pending one. When the customer returns to the merchant site, Corefy also requests the payment status from D8 and returns the final result if it is available.

When to use: when you use cascading from a non-3DS D8 terminal to another terminal (for example, a 3DS one). With the option enabled, a decline on the non-3DS terminal (for example, limit_violation) is known right away, so the cascaded payment and its 3DS redirect link (auth_payload.action) can be returned in the response to your payment request.

Default: false

Allowed values: true / false


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 -> D8 parameter)

  • LANGUAGE -> language (2-letter language code; used when the customer's browser language is not available)
  • LEGAL_ENTITY_ID -> recipientId (used when the legal entity identifier is not set in your merchant profile)

Used only when API type is c2a:

  • ACCOUNT_NUMBER -> dstAccNum (recipient account number)
  • ACCOUNT_TYPE -> dstAccType (recipient account type, number)
  • DST_FIRST_NAME -> dstFname (recipient first name)
  • DST_LAST_NAME -> dstLname (recipient last name)
  • FOUNDING_SOURCE -> fundingSource (one of CC, CH, DA, CA, MC)
  • BUSINESS_APPLICATION_ID -> businessAppId (one of OGG, GPO, TPP, TAA, TAC, TCB, TBD, TGD, TMS, TCA, TCC, TBB, TBI, TFT, TWT)

Refunds

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


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

Connect Provider account in Corefy Dashboard

Step 1 - Open connection form

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

Step 2 - Fill in fields and select settings

  • Merchant ID
  • Terminal ID (optional)
  • SSL Certificate
  • SSL Private Key
  • API URL (optional)
  • Verification user / password / API URL (optional)
  • Test Mode -> (enable if you are using sandbox credentials)

Success

You have connected D8 Provider account!


First request to Corefy API (MIN)

What it does: creates a payout-invoice and sends funds directly to a card.

Payout - MIN

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.

Payout - MAX

POST /api/payout-invoices

{
  "data": {
    "type": "payout-invoice",
    "attributes": {
      "reference_id": "4d5e6f7a-8b9c-4d0e-8f13-4a5b6c7d8e9f",
      "service": "payment_card_uah",
      "currency": "UAH",
      "amount": 100,
      "customer": {
        "reference_id": "33cc9165-6ab2-4cee-8d9a-10f05cddbb5a",
        "name": "John Doe",
        "individual_tax_id": "1234567890",
        "address": {
          "country": "UA",
          "city": "Kyiv",
          "street": "Main street 1"
        }
      },
      "fields": {
        "card_number": "4111111111111111"
      }
    }
  }
}

Important

  • customer.name is split into first/last name and transliterated to Latin automatically before being sent to D8.
  • customer.individual_tax_id (or customer.passport_series + customer.passport_number instead) is used automatically as the recipient ID when D8 requires it for the payout - no separate field or option needed.
  • When the card_vs_itn_verification_bins option is set and the card BIN matches, one of these values is required, same as on the H2H Merchant account.
  • D8's payout flow is a multi-step process (create -> submit card data -> submit additional sender/recipient data if D8 requires it -> confirm) that Corefy runs automatically behind this single payout-invoice request.

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

  • card_vs_itn_verification_bins -> optional, array - same mechanism as on the H2H Merchant account: for matching card BINs, verifies the recipient (customer.individual_tax_id or passport) against the card via the D8 verification API before paying out.

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.

After the successful connection, fill in constants for the necessary routes in the editing menu.

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 -> D8 parameter)

  • FUNDING_SOURCE -> fundingSource (one of CC, CH, DA, CA, MC; default CC)
  • BUSINESS_APP_ID -> businessAppId (3-letter code; default GPO)
  • LANGUAGE -> language (2-letter language code; default en)
  • DETAIL -> detail (payment description; falls back to the request description, then to the operation ID)
  • CLIENT_IP -> clientIp (client IPv4/IPv6; falls back to the request user IP)
  • SENDER_ACCOUNT_NUMBER -> srcAccNum (sender account number)
  • SENDER_ACCOUNT_TYPE -> srcAccType (sender account type, 0-8)
  • SENDER_FIRST_NAME -> chFirstName (sender first name)
  • SENDER_LAST_NAME -> chLastName (sender last name)
  • SENDER_EMAIL -> chMail (sender email)
  • SENDER_PHONE -> chPhoneNum (sender phone number)
  • SENDER_PHONE_CC -> chPhonceCc (sender phone country code)
  • SENDER_ID_TYPE -> senderIdType (sender ID type: CP - company, PS - passport, TX - tax; sent only when D8 requires it)
  • SENDER_ID -> senderId (sender identification number; sent only when D8 requires it)
  • BILLING_COUNTRY -> baddrCountry (cardholder billing country, numeric ISO 3166-1; falls back from customer.address)
  • BILLING_CITY -> baddrCity (cardholder billing city; falls back from customer.address)
  • BILLING_ZIP -> baddrZip (cardholder billing ZIP code; falls back from customer.address)
  • BILLING_ADDRESS_LINE1 -> baddrline1 (cardholder billing address; falls back from customer.address)

D8 does not support refunds for payouts.


Additional info

  1. No callbacks on the H2H Merchant account - D8 does not send callbacks to Corefy for H2H payments; payment statuses are updated via active status requests (reconciliation) only.
  2. Payouts are reconciled - the Provider account supports active status reconciliation for payouts.
  3. D8 supports Apple Pay and Google Pay with decryption on the Corefy side.

    For more information, visit:


FAQ / Troubleshooting

  • Invalid credentials / auth error -> verify the certificate, key and IDs for the selected account type and environment (test_mode) - H2H Merchant account and Provider account use entirely different credential sets
  • Payment declined with invalid cardholder -> the card BIN is listed in card_vs_itn_verification_bins; send customer.individual_tax_id (or passport data) of the card owner/recipient
  • Refund fails with multiple attempts -> only one refund per payment is allowed, and only on the H2H Merchant account - payouts do not support refunds at all
  • Currency or service is not supported -> confirm allowed currencies/features in your D8 account and in Corefy
  • Not sure which account type to use? -> H2H Merchant account is for Payments (card, Apple Pay, Google Pay); Provider account is for card Payouts

Question

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