
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)
- Choose account type
- Get your credentials (from D8)
- Connect in Dashboard
- 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) orc2a(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 ofCC,CH,DA,CA,MC)BUSINESS_APPLICATION_ID->businessAppId(one ofOGG,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.nameis split into first/last name and transliterated to Latin automatically before being sent to D8.customer.individual_tax_id(orcustomer.passport_series+customer.passport_numberinstead) 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_binsoption 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-invoicerequest.
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_idor 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 ofCC,CH,DA,CA,MC; defaultCC)BUSINESS_APP_ID->businessAppId(3-letter code; defaultGPO)LANGUAGE->language(2-letter language code; defaulten)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 fromcustomer.address)BILLING_CITY->baddrCity(cardholder billing city; falls back fromcustomer.address)BILLING_ZIP->baddrZip(cardholder billing ZIP code; falls back fromcustomer.address)BILLING_ADDRESS_LINE1->baddrline1(cardholder billing address; falls back fromcustomer.address)
D8 does not support refunds for payouts.
Additional info
- 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.
- Payouts are reconciled - the Provider account supports active status reconciliation for payouts.
-
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; sendcustomer.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!