VisaNet Connect
Design. Build. Deliver. Open up a new world of possibilities for your business with direct access to Visa's APIs, tools and expertise.
VisaNet Connect is Visa's own direct global card payment network API (not a third-party payment service provider).
Supports in this guide: Payments | Payouts
Provider website: developer.visa.com
What you need to do for start processing transactions (brief summary)
- Choose account type
- Get your credentials (from VisaNet Connect)
- Connect in Dashboard
- Send an API request
Choose account type
VisaNet Connect 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 payouts -> choose Provider account
If you are not sure which one to use, confirm with your Corefy account manager.
Prerequisites: get from VisaNet Connect
To get access, send a connection request at developer.visa.com -> Contact Us or contact your Visa relationship manager directly, then submit the required documents to verify your account.
Get the following values for your VisaNet Connect project/account:
- User ID -> Corefy field
user_id-> example:VNC_USER_001-> where to find: issued by Visa during onboarding - Password -> Corefy field
password-> example: a password issued by Visa -> where to find: issued by Visa during onboarding - Acceptor ID -> Corefy field
acceptor_id-> example:123456789012345-> where to find: issued by Visa during onboarding - Terminal ID -> Corefy field
terminal_id-> example:TERM0001-> where to find: issued by Visa during onboarding - SSL Certificate -> Corefy field
ssl_cert-> format: upload the mutual-TLS client certificate issued by Visa -> where to find: issued by Visa during onboarding - SSL Private Key -> Corefy field
ssl_private_key-> format: upload the private key matching the SSL Certificate -> where to find: issued by Visa during onboarding - MLE Key ID -> Corefy field
mle_key_id-> example:8b1b...e4f2-> where to find: Message Level Encryption (MLE) key identifier issued by Visa, used to encrypt/decrypt VisaNet API payloads - MLE Server Certificate -> Corefy field
mle_server_cert-> format: upload Visa's MLE server certificate -> where to find: issued by Visa during onboarding - MLE Private Key -> Corefy field
mle_private_key-> format: upload your own MLE private key -> where to find: generated for your account, registered with Visa
Depending on the account type and the 3-D Secure/API mode you use, VisaNet Connect may also require additional values (Client ID, Cybersource or UPC 3-D Secure credentials, tokenization keys, Acquiring BIN / Acquirer Country Code) - these are listed in the matching "Connect ... in Dashboard" step below.
Payments processing (connect H2H Merchant account, create payment-invoice)
Connect H2H Merchant account in Corefy Dashboard
Step 1 - Open connection form
Open VisaNet Connect in the provider directory and press Connect at VisaNet Connect Provider Overview page in the New connection section. Choose H2H Merchant account.
Step 2 - Fill in fields and select settings
Core credentials
- User ID ->
user_id - Password ->
password - Client ID ->
client_id-> required unless you use the Card-to-Account (C2A) mode below - Acceptor ID ->
acceptor_id - Terminal ID ->
terminal_id - SSL Certificate ->
ssl_cert(upload file) - SSL Private Key ->
ssl_private_key(upload file) - MLE Key ID ->
mle_key_id - MLE Server Certificate ->
mle_server_cert(upload file) - MLE Private Key ->
mle_private_key(upload file) - Test Mode ->
test_mode-> (enable if you are using sandbox credentials)
3DS Provider (3ds_provider, optional, default Cybersource) selects which backend handles the mandatory 3-D Secure v2 authentication step for card payments:
- If set to Cybersource, also provide: Cybersource Org ID ->
cb_org_id, Cybersource Key ->cb_key, Cybersource Shared Secret ->cb_shared_secret - If set to Upc, also provide: UPC Merchant ID ->
upc_merchant_id, UPC Terminal ID ->upc_terminal_id, UPC Private Key ->upc_private_key(upload file)
Save Instant Token -> save_instant_token -> (enable if you plan to use instant/recurring payments; stores a Visa network token). When enabled, also provide: Tokenization MLE Key ID -> tokenize_mle_key_id, Tokenization MLE Private Key -> tokenize_mle_private_key (upload file), Tokenization Org ID -> tokenize_org_id
API type -> api_type -> optional, default Card Payment. Advanced: switches the connection to Visa Direct Card-to-Account (C2A) mode instead of the standard 3-D Secure card payment flow described above. When set to Card-to-Account, also provide Acquiring BIN -> acquiring_bin and Acquirer Country Code -> acquirer_country_code, and leave 3DS Provider unset or set to Cybersource (Upc is not supported in this mode).
API URL -> api_url -> optional, overrides the default VisaNet API endpoint; leave blank unless instructed otherwise by your Visa relationship manager.
Additionally, choose Currency and Features. You can set these parameters according to available currencies and features for your VisaNet Connect account, but it is necessary to check details of the connection with your Corefy account manager.
Success
You have connected VisaNet Connect 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": "c7513313-648f-422d-b17d-8884606f22c3",
"service": "payment_card_uah_hpp",
"currency": "UAH",
"amount": 50
}
}
}
Payment - MAX
POST /api/payment-invoices
{
"data": {
"type": "payment-invoice",
"attributes": {
"reference_id": "35584634-020c-475f-b6ed-09aa656f3564",
"service": "payment_card_uah_hpp",
"currency": "UAH",
"amount": 100,
"customer": {
"reference_id": "b84dbf31-6764-49d6-a06c-9848bcbc83a5",
"name": "John Doe",
"email": "johndoe@email.com",
"phone": "+380665544332",
"address": {
"country": "US",
"region": "CA",
"city": "LA",
"street": "Some street",
"post_code": "94111"
}
}
}
}
}
The customer/address fields above are optional at the API level, but recommended: VisaNet Connect's 3-D Secure step (Cybersource or UPC) and address-verification checks use them for risk scoring. If a field is missing from the request, VisaNet Connect falls back to the matching Constant (see below) or sends it empty.
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 (8)
use_original_id_in_void- sends the original provider transaction ID (instead of Corefy's own) in the void request.customer_name_format- defines the order VisaNet Connect uses when splitting a singlecustomer.nameinto first/last/middle parts.enable_reconciliation_for_three_ds- controls whether a Reconcile request can finalize a transaction that is still pending 3-D Secure verification (Card-to-Account mode).finalize_by_protocol_in_minutes- if the 3-D Secure challenge never completes within this many minutes, a Reconcile request finalizes the transaction as failed instead of waiting indefinitely.skip_auto_browser_info_collect_for_upc- skips VisaNet Connect's automatic browser-data collection request to UPC.send_recipient_and_sender_data- adds Sender/Recipient identification and address blocks to the request (Card-to-Account mode only).verify_with_zero_amount- sends a zero authorization amount to Cybersource for the Verify operation instead of the requested amount.enable_ani_verification- runs a Cybersource Account Name Inquiry (ANI) check during Verify, confirming the cardholder name against the account on file.
use_original_id_in_void
What it does: sends the original (provider-side) transaction ID in void requests instead of Corefy's own reference.
When to use: when your Visa setup expects void requests to target the original transaction ID.
Default: false
Allowed values: true / false
customer_name_format
What it does: defines the sequence VisaNet Connect uses when parsing a single customer.name value into first/last/middle name parts - used for the Cybersource billing address, ANI verification, and Card-to-Account sender/recipient names.
When to use: when your customers' names arrive as one combined string and the default parsing order doesn't match your locale.
Default: LAST, FIRST, MIDDLE
Allowed values: LAST, FIRST, MIDDLE / FIRST, MIDDLE, LAST / LAST, MIDDLE, FIRST / LAST, FIRST / FIRST, LAST
enable_reconciliation_for_three_ds
What it does: when disabled, a Reconcile request is allowed to finalize a Card-to-Account transaction that is still pending 3-D Secure verification.
When to use: keep enabled (default) unless your account manager advises otherwise for Card-to-Account flows.
Default: false
Allowed values: true / false
finalize_by_protocol_in_minutes
What it does: if a transaction is still awaiting 3-D Secure authentication after the configured number of minutes, a Reconcile request finalizes it as failed instead of leaving it pending indefinitely.
When to use: set it if you want stuck/abandoned 3-D Secure challenges to resolve automatically after a timeout.
Default: not set (no automatic timeout finalization)
Allowed values: integer, minimum 5 (minutes)
skip_auto_browser_info_collect_for_upc
What it does: when true, VisaNet Connect does not automatically collect browser data on the UPC side (you must already supply it); when false, VisaNet Connect makes an additional request to UPC to collect it.
When to use: enable if you already send complete browser information yourself and want to avoid the extra UPC round trip.
Default: false
Allowed values: true / false
send_recipient_and_sender_data
What it does: adds Sender/Recipient identification lists and address details to the outgoing request. Only relevant in Card-to-Account (C2A) mode.
When to use: enable if your Card-to-Account setup requires sender/recipient identification data (e.g. for AML/compliance purposes).
Default: false
Allowed values: true / false
verify_with_zero_amount
What it does: sends a 0 amount to Cybersource for the Verify operation instead of the actual requested amount.
When to use: enable if your Cybersource setup is configured to verify cards with a zero-value authorization.
Default: false
Allowed values: true / false
enable_ani_verification
What it does: runs a Cybersource Account Name Inquiry (ANI) check during Verify, confirming the cardholder name matches the account on file. Requires a Cybersource configuration (Cybersource Org ID set).
When to use: enable if your risk/compliance process requires cardholder name verification.
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 -> Corefy API field)
Customer/address fallbacks (used on every card payment):
FIRST_NAME->customer.name(first part)LAST_NAME->customer.name(last part)MIDDLE_NAME->customer.name(middle part)PHONE->customer.phoneEMAIL->customer.emailADDRESS->customer.address.full_addressCITY->customer.address.cityCOUNTRY->customer.address.countryPOST_CODE->customer.address.post_code
Merchant profile fallbacks (sent as part of every card payment request; used instead of your Corefy Merchant Profile settings):
PROFILE_WEBSITE_URL-> your business website/contact infoPROFILE_COMPANY_NAME-> your business (short) namePROFILE_COUNTRY_CODE-> your business countryPROFILE_POST_CODE-> your business postal codePROFILE_MCC-> your Merchant Category Code
Card-to-Account (C2A) mode only:
BUSINESS_APPLICATION_ID-> Visa Direct business application IDSOURCE_OF_FUNDS_CODE-> source-of-funds codeCARD_ACCEPTOR_NAME-> card acceptor (merchant) nameCARD_ACCEPTOR_ADDRESS_COUNTRY-> card acceptor address countryCARD_ACCEPTOR_ADDRESS_STATE-> card acceptor address stateCARD_ACCEPTOR_ADDRESS_CITY-> card acceptor address cityPOS_CONDITION_CODE-> point-of-service condition codePAN_ENTRY_MODE-> PAN entry mode codePURPOSE_OF_PAYMENT-> purpose-of-payment codeMOTO_ECI_INDICATOR-> MOTO/e-commerce indicatorPAYMENT_FACILITATOR_ID-> payment facilitator IDPAYMENT_FACILITATOR_NAME-> payment facilitator namePAYMENT_FACILITATOR_SUB_MERCHANT_ID-> payment facilitator sub-merchant ID
Payouts processing (connect Provider account, create payout-invoice)
Connect Provider account in Corefy Dashboard
Step 1 - Open connection form
Open VisaNet Connect in the provider directory and press Connect at VisaNet Connect Provider Overview page in the New connection section. Choose Provider account.
Step 2 - Fill in fields (provider -> Corefy)
- User ID ->
user_id - Password ->
password - Terminal ID ->
terminal_id - Acceptor ID ->
acceptor_id - Acquiring BIN ->
acquiring_bin-> your Visa Direct acquiring Bank Identification Number - Acquirer Country Code ->
acquirer_country_code - SSL Certificate ->
ssl_cert(upload file) - SSL Private Key ->
ssl_private_key(upload file) - MLE Key ID ->
mle_key_id - MLE Private Key ->
mle_private_key(upload file) - MLE Server Certificate ->
mle_server_cert(upload file) - API URL ->
api_url-> optional, overrides the default VisaNet API endpoint - Test Mode ->
test_mode-> (enable if you are using sandbox credentials)
Success
You have connected VisaNet Connect Provider account!
First request to Corefy API (MIN)
What it does: creates a payout-invoice.
Payout - MIN
POST /api/payout-invoices
{
"data": {
"type": "payout-invoice",
"attributes": {
"reference_id": "eae08d28-1a7a-407f-ab4d-2c8275ca7964",
"service": "payment_card_uah",
"currency": "UAH",
"amount": 10,
"fields": {
"card_number": "411111******1111"
}
}
}
}
Payout - MAX
POST /api/payout-invoices
{
"data": {
"type": "payout-invoice",
"attributes": {
"reference_id": "58acf793-9b41-4dc4-b281-c76cc54ff230",
"service": "payment_card_uah",
"currency": "UAH",
"amount": 10,
"customer": {
"reference_id": "33cc9165-6ab2-4cee-8d9a-10f05cddbb5a",
"name": "John Doe",
"address": {
"country": "UA",
"city": "Kyiv"
}
},
"fields": {
"card_number": "411111******1111"
}
}
}
}
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)
send_recipient_and_sender_data- adds Sender/Recipient identification lists and address details to the payout request.customer_name_format- defines the order VisaNet Connect uses when splitting a singlecustomer.nameinto first/last/middle parts for the recipient name.
send_recipient_and_sender_data
What it does: adds Sender (your business) and Recipient identification lists and address details to the outgoing Visa Direct payout request.
When to use: enable if your payout setup requires sender/recipient identification data (e.g. for AML/compliance purposes).
Default: false
Allowed values: true / false
customer_name_format
What it does: defines the sequence VisaNet Connect uses when parsing a single customer.name value into first/last/middle parts for the payout recipient name.
When to use: when your recipients' names arrive as one combined string and the default parsing order doesn't match your locale.
Default: LAST, FIRST, MIDDLE
Allowed values: LAST, FIRST, MIDDLE / FIRST, MIDDLE, LAST / LAST, MIDDLE, FIRST / LAST, FIRST / FIRST, LAST
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)
RECIPIENT_FIRST_NAME->customer.name(first part)RECIPIENT_LAST_NAME->customer.name(last part)RECIPIENT_MIDDLE_NAME->customer.name(middle part)RECIPIENT_ISSUE_COUNTRY_CODE->customer.address.country(recipient identification fallback)SENDER_ISSUE_COUNTRY_CODE-> your business country (sender identification fallback)COMPANY_NAME-> your business (legal) nameCARD_ACCEPTOR_NAME-> card acceptor (merchant) nameCARD_ACCEPTOR_ADDRESS_COUNTRY-> card acceptor address countryCARD_ACCEPTOR_ADDRESS_STATE-> card acceptor address stateCARD_ACCEPTOR_ADDRESS_CITY-> card acceptor address cityPROFILE_MCC-> your Merchant Category CodeBUSINESS_APPLICATION_ID-> Visa Direct business application IDSOURCE_OF_FUNDS_CODE-> source-of-funds codePOS_CONDITION_CODE-> point-of-service condition codePAN_ENTRY_MODE-> PAN entry mode codeMOTO_ECI_INDICATOR-> MOTO/e-commerce indicatorPAYMENT_FACILITATOR_ID-> payment facilitator IDPAYMENT_FACILITATOR_NAME-> payment facilitator namePAYMENT_FACILITATOR_SUB_MERCHANT_ID-> payment facilitator sub-merchant ID
Additional info
-
VisaNet Connect's H2H Merchant account supports partial and multiple refunds (up to 9 refunds per transaction).
-
VisaNet Connect supports Apple Pay and Google Pay, with token decryption handled by Corefy.
For more information, visit:
-
VisaNet Connect also exposes an advanced Card-to-Account (C2A) mode (
api_typeset to Card-to-Account) that routes card payments through Visa Direct instead of the standard 3-D Secure flow described above. This mode needs its own Acquiring BIN/Acquirer Country Code and changes which Constants apply (see Options and Constants above) - confirm with your Corefy account manager before enabling it.
FAQ / Troubleshooting
- Invalid credentials / auth error -> verify credentials for the selected environment and account type
- 3-D Secure challenge not completing -> confirm the credentials for your selected 3DS Provider (Cybersource or UPC) are correct and match the option set on your account
- Currency or service is not supported -> confirm allowed currencies/features in provider account and in Corefy
- Missing required fields -> provide missing request fields or configure constants/options
- Not sure which account type to use? -> ask your Corefy account manager
Question
Still looking for help connecting your VisaNet Connect account? Please contact our support team!