Nuvei Card Processing
  • 19 Feb 2025
  • 6 Minutes to read
  • Dark
    Light

Nuvei Card Processing

  • Dark
    Light

Article summary

Supported Transaction Types

  • Authorisation AUTH

  • Capture CAPT

  • Purchase PURC

  • Refund PARTIALREFUND

  • Void GENERALVOID

  • Payouts ORIGINALCREDIT

  • Recurring PURC

Integrations Supported

Deposit - Authorisation / Purchase

  • Hosted Payment Page

  • Direct Connect ( server-to-server)

Capture, Void, Refunds, Payouts, Recurring

  • Hosted Payment Page

  • Direct Connect ( server-to-server)

AirLine Ready-Small Cropped.png Airline Ready - Follow link for further information related to required Airline Details specific to this Acquirer.

Currencies & Countries Supported

Title

Description

Currencies Supported

Most major currencies

Additional attributes to process Deposits

You must include the following JSON Attributes to the payload. These attributes inform us to proceed with the redirection to Nuvei to finalize the payment process.

if you are using our Hosted Payment Page

Description

Hosted Payment Page

Transaction Type

"TransactionType": "AUTH" or "PURC"

Force Transaction Routing

“Routing”:{

"ForceBank": "SAFECHARGE”

Client Details

"Client": {

"Email": "test@mailinator.com",

"FirstName": "Apco",

"LastName": "Test",

"City": "Valletta",

"Country": "MLT",

“IPAddress": "1.1.1.1"  

}

Test Indicator

"isTest”: true

Sample requests using our Hosted Payment Page can be viewed here.

 {
  "TransactionType": "PURC",
  "Currency": "EUR",
  "Amount": 1.00,
  "OrderReference": "Order2321",
  "UniqueReference": "4b8da4f0-d3b4-44ae-8019-8c66905ffad7",
  "RedirectionURL": "https://www.yourURLhere.com/Redirect/",
  "CallBackURL": "https://www.yourURLhere.com/Listener",
  "FailRedirectionURL": "https://www.yourURLhere.com/Redirect/",
  "IsTest": true,
  "Routing": {
    "ForceBank": "SAFECHARGE"
  },
  "Client": {
    "Email": "apcotest@gmail.com",
    "ClientAccount": "testing",
    "FirstName": "Apco",
    "LastName": "Test",
    "Country": "MLT",
    "Street": "Street1",
    "City": "City",
    "State": "State",
    "IPAddress": "214.21.134.79"
  }
}

If you are using our direct connect solution (server-to-server)

Description

Direct Connect

Transaction Type

"TransactionType": "AUTH" or "PURC"

Force Transaction Routing

"Routing":{

"ForceBank": "SAFECHARGE”

Client Details

"Client": {

"Email": "test@gmail.com",

"FirstName": "Apco",

"LastName": "Test",

"MobileNo": "7777777",

"Street": "Church Street",

"City": "Valletta",

"State": "Rabat",

"ZIPCode": "RBT2640",

"Country": "MLT",

"IPAddress": "1.1.1.1"  

}

Card Details

"PaymentCredentials": {

"PaymentSource": "Card",

"CardType": "MASTERCARD",

"CardNumber": "5351772561457936",

"Cvv2": "123",

"ExpMonth": "03",

"ExpYear": "2027",

"CardHolderName": "Joe Smith"

},

Browser details

"BrowserDetails": {

"UserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",

"JavaEnabled": true,

"ScreenColorDepth": "1",

"ScreenWidth": "1080",

"ScreenHeight": "840",

"TimeZone": "2",

"AcceptHeader": "application/json",

"BrowserLanguage": "en"

}

Test Indicator

"isTest”: true

Sample requests using Direct Connect can be viewed here.

 {
    "TransactionType": "AUTH",
    "Currency": "EUR",
    "Amount": 1.00,
    "OrderReference": "Order12324",
    "UniqueReference": "4b8da4f0-d3b4-44ae-8019-8c66905ffad7",
    "Language": "en",
    "RedirectionURL": "https://www.yourURLhere.com/Redirect/",
    "CallBackURL": "https://www.yourURLhere.com/callback",
    "FailRedirectionURL": "https://www.yourURLhere.com/FailRedirect",
    "IsTest": true,
     "Routing":{
     "ForceBank": "SAFECHARGE"
  },
    "Client": {
        "Email": "joe.bloggs@testjb.com",
        "ClientAccount": "CliAcc01002",
        "FirstName": "Joe",
        "LastName": "Smith",
        "Country": "MLT",
        "MobileNo": "0044123456789",
        "Street": "High Street",
        "City": "Valletta",
        "ZIPCode": "VLT1234",
        "State": "Valletta",
        "IPAddress": "214.21.134.79"
    },
    "BrowserDetails": {
        "UserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
        "JavaEnabled": true,
        "ScreenColorDepth": "1",
        "ScreenWidth": "1080",
        "ScreenHeight": "840",
        "TimeZone": "2",
        "AcceptHeader": "application/json",
        "BrowserLanguage": "en"
    },
    "PaymentCredentials": {
        "PaymentSource": "Card",
        "CardType": "VISA",
        "CardNumber": "4544445544554454",
        "CvV2": "123",
        "ExpMonth": "12",
        "ExpYear": "2028",
        "CardHolderName": "Frictionless Processed"
    }
}

Requesting a Capture

If you wish to Capture a transaction of type Authorisation, below are the mandatory fields.

Description

Direct Connect

Transaction Type

"TransactionType": "CAPT",

Transaction Reference

"PspID": "342342”

Sample request for processing a capture request.

{
"TransactionType": "CAPT",
"Amount": 10.00,
"CallBackURL": "https://www.yourURLhere.com/Listener",
"IsTest": true,
"UniqueReference": "6514441d-8abe-4d7b-9e0c-3aa386333b34",
"PspID":"839791" 
}

Requesting a Refund

Using our direct integration, below are the mandatory fields required to process a refund. Refund are only possible up to the original deposit amount.

Description

Transaction Type

"TransactionType": "PARTIALREFUND"

Transaction or Payment Reference

"PspID": "342342”

Test Indicator

"isTest”: true

Sample refund request below

 {
  "TransactionType": "PARTIALREFUND",
  "Amount": "1.00",
  "OrderReference": "REF0017283_Refund",
  "UniqueReference": "4fe126cb-146b-426c-8234c-c8ca12e5072f",
  "RedirectionURL": "https://www.yourURLhere.com/Redirect/",
  "CallBackURL": "https://www.yourURLhere.com/Listener",
  "PspId" : "153574",
  "IsTest": true
}

Requesting a Payout

Using our direct integration, below are the mandatory fields required to process a payout. We currently support three options for payout:

  • via a PSP ID

  • via a Card Token

  • via a full Card PAN details

Description

PSP ID

Card Token

Full Card PAN

Transaction Type

"TransactionType": "ORIGINALCREDIT"

Force Transaction Routing

Not required

"Routing": {

"ForceBank": "SAFECHARGE"

},

"Routing": {

"ForceBank": "SAFECHARGE"

},

Client

"Client": {

"FirstName": "Apco",

"LastName": "Test",

"Email": "apcotest@test.com",

"Street": "1, Street",

"City": "Marsa",

"IPAddress": "1.1.1.1",

"ZIPCode": "MRS3000",

"Country": "MLT",

"MobileNo": "+20100000000"

},

"Client": {

"FirstName": "Apco",

"LastName": "Test",

"Email": "apcotest@test.com",

"Street": "1, Street",

"City": "Marsa",

"IPAddress": "1.1.1.1",

"ZIPCode": "MRS3000",

"Country": "MLT",

"MobileNo": "+20100000000"

},

"Client": {

"FirstName": "Apco",

"LastName": "Test",

"Email": "apcotest@test.com",

"Street": "1, Street",

"City": "Marsa",

"IPAddress": "1.1.1.1",

"ZIPCode": "MRS3000",

"Country": "MLT",

"MobileNo": "+20100000000"

},

Transaction or Payment Reference

"PspID": "342342”

"PaymentDestination": { "PaymentMethod": "CardToken", "CardToken": "c840e58e-519d-409a-b525-297fadf60733"

},

"PaymentDestination": {

"PaymentMethod": "Card",

"CardType": "VISA",

"CardNumber": "4000000000001018", "CardHolderName": "Apco Test",

"ExpMonth": "12",

"ExpYear": "2040",

"CvV2":"123"

},

Test Indicator

"isTest”: true

"isTest”: true

"isTest”: true

Sample Payout Request using the PSP ID

{
  "TransactionType": "ORIGINALCREDIT",
  "Amount": 1.00,
  "Currency": "EUR",
  "OrderReference": "Order42323",
  "UniqueReference": "4b8da4f0-d3b4-44ae-8019-8c66905ffad7",
  "ClientAccount": "testing",
  "CallBackURL": "https://www.yourURLhere.com/Listener",
  "RedirectionURL": "https://www.yourURLhere.com/Redirect/",
  "FailRedirectionURL": "https://www.yourURLhere.com/Redirect/failed",
  "Client": {
    "FirstName": "Apco",
    "LastName": "Test",
    "Email": "apcotest@test.com",
    "Street": "1,Street",
    "City": "Marsa",
    "IPAddress": "1.1.1.1",
    "ZIPCode": "MRS3000",
    "Country": "MLT",
    "MobileNo": "+20100000000"
  },
  "IsTest": true,
  "PSPID": "823205"
}

Requesting a Recurring transaction

The mandatory fields are required to process a recurring transaction using our direct connect integration. Note that we use a transaction reference as payment credentials since a recurring transaction is linked to an original deposit.

Description

Direct Connect

Transaction Type

"TransactionType": "PURC"

Payment Credentials

"PaymentCredentials": {

"PaymentSource": "TransactionReference"

},

Client

"Client": {

"FirstName": "Apco",

"LastName": "Test",

"Email": "apcotest@test.com",

"Street": "1,Street",

"City": "Marsa",

"IPAddress": "1.1.1.1",

"ZIPCode": "MRS3000",

"Country": "MLT",

"MobileNo": "+20100000000"

},

Transaction Reference

"PspID": "342342”

Test Indicator

"isTest”: true

Sample Request of a Recurring transaction

 {
  "TransactionType": "PURC",
  "Currency": "EUR",
  "Amount": 10.12,
  "OrderReference": "Order2323",
  "UniqueReference": "4b8da4f0-d3b4-44ae-8019-8c66905ffad7",
  "RedirectionURL": "https://www.yourURLhere.com/Redirect",
  "CallBackURL": "https://www.yourURLhere.com/Listener",
  "FailRedirectionURL": "https://www.yourURLhere.com/Redirect?page=failed",
  "Language": "en",
  "IsTest": true,
  "PspId": "840510",
  "PaymentCredentials": {
    "PaymentSource": "TransactionReference"
  },
  "Client": {
    "Email": "apcotest@gmail.com",
    "FirstName": "Apco",
    "LastName": "Test",
    "MobileNo": "77777777",
    "ZIPCode": "RBT2640",
    "Street": "Church Street",
    "Country": "MLT",
    "City": "Valletta",
    "State": "Rabat",
    "ClientAccount": "testing"
  }
}

Airline Details

When processing payment transactions in the context of airline bookings, one needs to include additional booking information captured under a dedicated JSON node within the main AUTH, PURC or ORIGINALCREDIT payload termed AirlineDetails. This object encapsulates flight-related, passenger, and reservation details for airline related payment transactions. To facilitate cross provider implementations, the entire JSON object needs to be implemented however supplying the minimum required values as per Acquirer specific guidelines hereunder. In addition this would help future proofing the integration since some attributes may become enforceable over time.

NOTE: Empty string values should be supplied for non required values.

AirlineDetails Attributes

NUVEI eTicket

NUVEI Ticketless

AirlineDetails:{

FlightLegDetails: [

{

flightArrivalDate

REQUIRED

REQUIRED

flightArrivalTime

NOT REQUIRED

NOT REQUIRED

flightDepartureDate

REQUIRED

REQUIRED

flightDepartureTime

NOT REQUIRED

NOT REQUIRED

airlineCode

REQUIRED

REQUIRED

airlineFlightNumber

REQUIRED

REQUIRED

paymentType

NOT REQUIRED

NOT REQUIRED

departureCountry

REQUIRED

NOT REQUIRED

departureCity

REQUIRED

NOT REQUIRED

departureAirport

REQUIRED

REQUIRED

destinationCountry

REQUIRED

NOT REQUIRED

destinationCity

REQUIRED

NOT REQUIRED

destinationAirport

REQUIRED

REQUIRED

stopOverCode

REQUIRED

NOT REQUIRED

fareBasisCode

NOT REQUIRED

NOT REQUIRED

serviceClass

NOT REQUIRED

NOT REQUIRED

}

],

PassengerDetails: [

{

passportNumber

REQUIRED

NOT REQUIRED

title

REQUIRED

REQUIRED

firstName

REQUIRED

REQUIRED

lastName

REQUIRED

REQUIRED

passengerName

REQUIRED

REQUIRED

middleName

REQUIRED

REQUIRED

dateOfBirth

NOT REQUIRED

NOT REQUIRED

countryCode

NOT REQUIRED

NOT REQUIRED

}

],

ReservationDetails: {

pnrCode

REQUIRED

REQUIRED

bookingSystemUniqueId

REQUIRED

REQUIRED

computerizedReservationSystem

REQUIRED

REQUIRED

ticketNumber

REQUIRED

NOT REQUIRED

documentType

REQUIRED

REQUIRED

flightDateUTC

REQUIRED

REQUIRED

issueDate

REQUIRED

REQUIRED

travelAgencyName

NOT REQUIRED

NOT REQUIRED

travelAgencyCode

NOT REQUIRED

NOT REQUIRED

travelAgentCity

NOT REQUIRED

NOT REQUIRED

issuingCarrierCode

NOT REQUIRED

NOT REQUIRED

restrictedTicket

NOT REQUIRED

NOT REQUIRED

salesSource

NOT REQUIRED

NOT REQUIRED

}

}

Sample Request - Hosted Payment Page

{
	"TransactionType": "PURC",
	"Currency": "EUR",
	"Amount": 1.0,
	"OrderReference": "Order2321",
	"UniqueReference": "4b8da4f0-d3b4-44ae-8019-8c66905ffad7",
	"RedirectionURL": "https://www.yourURLhere.com/Redirect/",
	"CallBackURL": "https://www.yourURLhere.com/Listener",
	"FailRedirectionURL": "https://www.yourURLhere.com/Redirect/",
	"IsTest": true,
	"Client": {
		"Email": "apcotest@gmail.com",
		"ClientAccount": "testing",
		"FirstName": "Apco",
		"LastName": "Test",
		"Country": "MLT",
		"Street": "Street1",
		"City": "City",
		"State": "State",
		"IPAddress": "214.21.134.79"
	},
	"AirlineDetails": {
		"FlightLegDetails": [
			{
				"flightArrivalDate": "2024-12-24",
				"flightArrivalTime": "",
				"flightDepartureDate": "2024-12-24",
				"flightDepartureTime": "",
				"airlineCode": "AA",
				"airlineFlightNumber": "1357",
				"paymentType": "",
				"departureCountry": "US",
				"departureCity": "New York",
				"departureAirport": "JFK",
				"destinationCountry": "GB",
				"destinationCity": "London",
				"destinationAirport": "LHR",
				"stopOverCode": "0",
				"fareBasisCode": "",
				"serviceClass": ""
			}
		],
		"PassengerDetails": [
			{
				"passportNumber": "A12345678",
				"title": "Mr",
				"firstName": "John",
				"lastName": "Doe",
				"passengerName": "John Doe",
				"middleName": "Michael",
				"dateOfBirth": "",
				"countryCode": ""
			}
		],
		"ReservationDetails": {
			"pnrCode": "XYZ123",
			"bookingSystemUniqueId": "BOOK123456789",
			"computerizedReservationSystem": "Amadeus",
			"ticketNumber": "0012345678901",
			"documentType": "TKT",
			"flightDateUTC": "2024-12-24 16:30:00",
			"issueDate": "2024-12-01",
			"travelAgencyName": "",
			"travelAgencyCode": "",
			"travelAgentCity": "",
			"issuingCarrierCode": "",
			"restrictedTicket": "",
			"salesSource": ""
		}
	}
}

Test Credentials

Test Card details below. You must use a future expiry date and use “Frictionless Processed” as the cardholder name. For more test information on different card use cases here.

Card Details

4200000000000000

4711100000000000

5555555555554444



Was this article helpful?