Exactly
Payment acceptance for your business
Supports in this guide: Payments, Payouts
Provider website: exactly.com
What you need to do for start processing transactions (brief summary)
- Choose account type
- Get your credentials (from Exactly)
- Connect in Dashboard
- Send an API request
Choose account type
Exactly can be connected in different ways (depending on your needs):
- If you do H2H card payments (card data sent directly) -> choose H2H Merchant account
- If you do redirect payments (customer redirected to a hosted payment page) or payouts -> choose Provider account
If you're not sure which one to use, confirm with your Corefy account manager.
Prerequisites: get from Exactly
After your shop is set up with Exactly (provide them your shop name/URL, IP addresses you'll call from, and your Success/Failure return URLs), you'll get:
For H2H Merchant account:
- API Key -> Corefy field
api_key-> the secret token issued after your shop's setup. - Project ID (optional) -> Corefy field
project_id. - Callback Secret Key (optional) -> Corefy field
callback_secret_key. - API URL (optional) -> Corefy field
api_url-> leave as default unless your account manager tells you otherwise. - Acquirer BIN / Acquirer Merchant ID (optional) -> Corefy fields
acquirer_bin/acquirer_merchant_id-> only relevant when Use External MPI is enabled (see Additional info). - MPI API Key (optional) -> Corefy field
mpi_api_key-> only relevant when Use External MPI is enabled.
For Provider account:
- API Key -> Corefy field
api_key. - API URL (optional) -> Corefy field
api_url.
Payments processing (connect H2H Merchant account, create payment-invoice)
Connect H2H Merchant account in Corefy Dashboard
Step 1 - Open connection form
Open Exactly in the provider directory and press Connect at Exactly Provider Overview page in the New connection section. Choose H2H Merchant account.
Step 2 - Fill in fields and select settings
- API Key
- Project ID (optional)
- Callback Secret Key (optional)
- API URL (optional)
- New API -> (enable to use Exactly's newer integration - required for Apple Pay/Google Pay; off by default, which keeps the original integration)
- Save Instant Token -> (enable if you plan to use instant/recurring payments, or to later pay out back to the same card)
- Acquirer BIN, Acquirer Merchant ID, MPI API Key, Acquirer Country Code, Acquirer Country Code Source (optional, see Additional info)
Choose Currency and Features. You can set these parameters according to available currencies and features for your Exactly account (USD, EUR, GBP, RUB, UAH, PEN confirmed); enabling Apple Pay/Google Pay as a feature requires New API to also be enabled.
Success
You have connected Exactly 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.
Payment - MIN
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "8e3dbbb0-17af-4c9a-bedb-93bdac6900a2",
"service": "payment_card_usd_hpp",
"currency": "USD",
"amount": 10
}
}
}
Payment - MAX
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "6795502c-e27d-4d07-85e0-93245aab9a3f",
"service": "payment_card_usd_hpp",
"currency": "USD",
"amount": 10,
"customer": {
"reference_id": "cus_123",
"name": "John Smith",
"email": "johnsmith@gmail.com",
"phone": "+15551234567",
"date_of_birth": "2000-12-31",
"address": {
"full_address": "1st Avenue North",
"country": "US",
"city": "New York",
"post_code": "10115"
}
}
}
}
}
customer is entirely optional at the code level, but note that name/phone/date_of_birth are only forwarded to Exactly when Send Customer Data is enabled below (on by default), and the address block only when Send Source Address is enabled (also on by default). This connector also supports EUR, GBP, RUB, UAH, and PEN (use payment_card_<currency>_hpp as the service code).
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 (9)
refund_with_delay- reports a refund asRECONCILE_REQUIREDinstead of an immediate final result, when Exactly's response supports a delayed check.transaction_lifetime- how long (in minutes) the transaction stays valid.arn_reconcile_delay_hours- waits before expecting the ARN (Acquirer Reference Number) to be available via reconciliation (New API only).set_threeds_data- adds 3DS data (ARN, verification, CAVV) to the response for successful transactions.use_external_mpi- uses a third-party MPI service for 3D Secure instead of Exactly's own built-in 3DS.set_original_resolution_message- sets the resolution message to Exactly's own raw result code.send_customer_data- sends customer name, phone, and date of birth to Exactly.send_source_address- sends the customer's address (country, city, street, post code, region) to Exactly.generate_customer_birth_date- auto-generates a random date of birth (1955-2003) when none is provided.
refund_with_delay
What it does: when enabled and Exactly's response indicates a delayed refund is in progress, Corefy reports the refund as RECONCILE_REQUIRED rather than an immediate final result.
When to use: leave it on (default) unless you have a specific reason to always expect an immediate refund result.
Default: true
Allowed values: true / false
transaction_lifetime
What it does: sets how many minutes a transaction stays valid before Exactly expires it.
When to use: increase it if your checkout flow needs more time to complete.
Default: 30
Allowed values: any whole number of minutes, 30 or higher
arn_reconcile_delay_hours
What it does: when a reconciliation finds no ARN yet, waits this many hours before expecting one to be available on a later reconciliation attempt. Only takes effect when New API is enabled.
When to use: set it if Exactly's ARN data for your account is typically available only after a delay.
Default: 0 (disabled - no wait applied)
Allowed values: any whole number of hours, 1 or higher
set_threeds_data
What it does: adds 3D Secure data (ARN, verification details, CAVV) to the response for successful transactions.
When to use: enable it if you need this 3DS detail available on the transaction record.
Default: false
Allowed values: true / false
use_external_mpi
What it does: routes 3D Secure authentication through a third-party MPI service instead of Exactly's own built-in 3DS.
When to use: enable it only if instructed by Exactly or your Corefy account manager - this ties to your own Acquirer BIN/Acquirer Merchant ID setup, not something Corefy operates itself. Contact your account manager for details on getting this configured for your account.
Default: false
Allowed values: true / false
set_original_resolution_message
What it does: sets the transaction's originalResolutionMessage to Exactly's own raw result code, instead of Corefy's own mapped message.
When to use: enable it if you need Exactly's exact result code surfaced rather than a normalized message.
Default: false
Allowed values: true / false
send_customer_data
What it does: when disabled, customer name, phone, and date of birth are not sent to Exactly at all.
When to use: disable it only if you have a specific reason not to share this data with Exactly - most integrations leave it on.
Default: true
Allowed values: true / false
send_source_address
What it does: when disabled, the customer's address (country, city, street, post code, region) is not sent to Exactly at all.
When to use: disable it only if you have a specific reason not to share address data with Exactly - most integrations leave it on.
Default: true
Allowed values: true / false
generate_customer_birth_date
What it does: when enabled and no customer.date_of_birth is provided, generates a random date of birth (between 1955 and 2003) instead of leaving it blank.
When to use: enable it if Exactly requires a date of birth on every request and you can't always supply a real one.
Default: false
Allowed values: true / false
Payments processing (connect Provider account, create payment-invoice)
Connect Provider account in Corefy Dashboard
Step 1 - Open connection form
Open Exactly in the provider directory and press Connect at Exactly Provider Overview page in the New connection section. Choose Provider account.
Step 2 - Fill in fields and select settings
- API Key
- API URL (optional)
Success
You have connected Exactly Provider account!
First request to Corefy API (MIN)
What it does: creates a payment-invoice and returns a redirect link to Exactly's hosted payment page.
Payment - MIN
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "0dde9e79-2c64-4703-adaf-93d710633401",
"service": "payment_card_usd_hpp",
"currency": "USD",
"amount": 10
}
}
}
Payment - MAX
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "7976b4ce-fadd-4585-baa0-6b02c65351dc",
"service": "payment_card_usd_hpp",
"currency": "USD",
"amount": 10,
"customer": {
"reference_id": "cus_123",
"email": "johnsmith@gmail.com",
"phone": "+15551234567",
"address": {
"country": "US"
}
}
}
}
}
customer.email/phone are optional pass-throughs. customer.address.country (or the DEFAULT_LANGUAGE constant below) selects the language on Exactly's hosted page; if neither is set, a platform default is used. This connector also supports EUR, GBP, CHF, PLN, and MXN (use payment_card_<currency>_hpp as the service code).
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.
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)
DEFAULT_LANGUAGE->customer.address.country- a country code selecting which language Exactly's hosted payment page is shown in, used when the request doesn't includecustomer.address.country.
Payouts processing (connect Provider account, create payout-invoice)
Connect Provider account in Corefy Dashboard
Uses the same Provider account connection as Payments above.
First request to Corefy API (MIN)
What it does: creates a payout-invoice that sends funds back to a card previously saved via an H2H payment with Save Instant Token enabled - this is a token-based payout, not a raw card number payout.
Payout - MIN
POST /api/payout-invoices
{
"data": {
"type": "payout-invoice",
"attributes": {
"reference_id": "0dde9e79-2c64-4703-adaf-93d710633401",
"service": "card_token",
"currency": "USD",
"amount": 10,
"customer": {
"reference_id": "cus_123",
"address": {
"country": "US",
"city": "New York",
"full_address": "1st Avenue North"
}
},
"fields": {
"token": "tok_1a2b3c4d5e6f"
}
}
}
}
Payout - MAX
POST /api/payout-invoices
{
"data": {
"type": "payout-invoice",
"attributes": {
"reference_id": "7976b4ce-fadd-4585-baa0-6b02c65351dc",
"service": "card_token",
"currency": "USD",
"amount": 10,
"description": "Refund to original card",
"customer": {
"reference_id": "cus_123",
"address": {
"country": "US",
"city": "New York",
"full_address": "1st Avenue North"
}
},
"fields": {
"token": "tok_1a2b3c4d5e6f"
}
}
}
}
fields.token (the token payload returned from an earlier H2H payment made with Save Instant Token enabled) is required, as is customer.address - a request missing either is rejected before reaching Exactly. currency should match whatever currency the original tokenized payment used. description is optional.
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
Note
No Corefy-side Options or Constants apply to Exactly payouts. Payouts settle via reconciliation only - Exactly doesn't send a payout callback.
Additional info
H2H Merchant account:
- "New API" is a per-connection toggle, off by default. It switches this connection to Exactly's newer integration - required for Apple Pay/Google Pay support, and for the
arn_reconcile_delay_hoursoption above. With it off, the connection uses Exactly's original integration, which doesn't support those. - 3D Secure runs through a third-party MPI service, not something Corefy operates itself, when Use External MPI is enabled - it's tied to your own
Acquirer BIN/Acquirer Merchant ID(your own acquirer/3DS setup). These fields are schema-optional and the connector tolerates them being unset, but check with Exactly/your account manager whether your specific setup actually needs them filled in for this mode to work correctly.Acquirer Country CodeandAcquirer Country Code Sourceare additional, rarely-needed fields for this same MPI setup. Contact your Corefy account manager for details on getting this configured for your account. - Callback routing. The callback endpoint is
/exactly/callback- this was provided to Exactly when your shop was set up. -
Apple Pay and Google Pay are supported (requires New API enabled and the corresponding feature selected on this connection).
For more information, visit:
Provider account:
- Callback routing is automatic for Payments - Corefy generates the callback URL per transaction, nothing to configure in Exactly's own back-office.
FAQ / Troubleshooting
- Invalid credentials / auth error -> verify credentials for the selected environment and account type
- Payout rejected for missing address ->
customer.address(or equivalent metadata) is required for every Exactly payout - Apple Pay / Google Pay feature not working -> confirm New API is enabled on this H2H Merchant account connection
- Currency or service is not supported -> confirm allowed currencies/features in your Exactly account and in Corefy
- Not sure which account type to use? -> ask your Corefy account manager
Question
Still looking for help connecting your Exactly account? Please contact our support team!