{
"AuthorId": "user_m_01KHRMAQT1ZPVBWK2KYM6S0N7M",
"DebitedFunds": {
"Currency": "EUR",
"Amount": 10000
},
"Culture": "EN",
"CardId": "card_wt_kLbkQOJbzUhMZmxG",
"SecureModeReturnURL": "http://example.com",
"IpAddress": "854f:1b03:7d1b:bfbf:e1f0:b1f3:3810:c5ac",
"BrowserInfo": {
"AcceptHeader": "text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8",
"JavaEnabled": true,
"Language": "FR-FR",
"ColorDepth": 4,
"ScreenHeight": 1800,
"ScreenWidth": 400,
"TimeZoneOffset": 60,
"UserAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",
"JavascriptEnabled": true
},
"Billing": {
"FirstName": "Alex",
"LastName": "Smith",
"Address": {
"AddressLine1": "6 rue de la Cité",
"AddressLine2": "Appartement 3",
"City": "Paris",
"Region": "Ile-de-France",
"PostalCode": "75001",
"Country": "FR"
}
},
"Shipping": {
"FirstName": "Alex",
"LastName": "Smith",
"Address": {
"AddressLine1": "6 rue de la Cité",
"AddressLine2": "Appartement 3",
"City": "Paris",
"Region": "Ile-de-France",
"PostalCode": "75001",
"Country": "FR"
}
},
"StatementDescriptor": "Example123",
"Tag": "Created using Mangopay API Postman Collection"
}
<?php
require_once 'vendor/autoload.php';
use MangoPay\MangoPayApi;
use MangoPay\Libraries\ResponseException as MGPResponseException;
use MangoPay\Libraries\Exception as MGPException;
$api = new MangoPayApi();
$api->Config->ClientId = 'your-client-id';
$api->Config->ClientPassword = 'your-api-key';
$api->Config->TemporaryFolder = 'tmp/';
try {
$cardPreauthorization = new \MangoPay\CardPreAuthorization();
$cardPreauthorization->AuthorId = 'user_m_01HSDQD2RPPQ8NMM36EDGYBMEY';
$cardPreauthorization->DebitedFunds = new \MangoPay\Money();
$cardPreauthorization->DebitedFunds->Currency = 'EUR';
$cardPreauthorization->DebitedFunds->Amount = 1000;
$cardPreauthorization->SecureMode = 'DEFAULT';
$cardPreauthorization->CardId = 'card_m_01HW8BJ2MS5PBV5EB1ZQG5E8T9';
$cardPreauthorization->SecureModeReturnURL = 'http://example.com';
$cardPreauthorization->Tag = 'Created using Mangopay PHP SDK';
$cardPreauthorization->StatementDescriptor = 'Mangopay';
$cardPreauthorization->BrowserInfo = new \MangoPay\BrowserInfo();
$cardPreauthorization->BrowserInfo->AcceptHeader = "text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8";;
$cardPreauthorization->BrowserInfo->JavaEnabled = true;
$cardPreauthorization->BrowserInfo->Language = "FR-FR";
$cardPreauthorization->BrowserInfo->ColorDepth = 4;
$cardPreauthorization->BrowserInfo->ScreenHeight = 1800;
$cardPreauthorization->BrowserInfo->ScreenWidth = 400;
$cardPreauthorization->BrowserInfo->TimeZoneOffset = 60;
$cardPreauthorization->BrowserInfo->UserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148";
$cardPreauthorization->BrowserInfo->JavascriptEnabled = true;
$cardPreauthorization->Culture = 'EN';
$cardPreauthorization->IpAddress = "2001:0620:0000:0000:0211:24FF:FE80:C12C";
$address = new \MangoPay\Address();
$address->AddressLine1 = '4 rue des Plantes';
$address->City = 'Paris';
$address->Country = 'FR';
$address->PostalCode = '75009';
$address->Region = 'IDF';
$shipping = new \MangoPay\Shipping();
$shipping->FirstName = 'Alex';
$shipping->LastName = 'Smith';
$shipping->Address = $address;
$billing = new \MangoPay\Billing();
$billing->FirstName = 'Alex';
$billing->LastName = 'Smith';
$billing->Address = $address;
$response = $api->CardPreAuthorizations->Create($cardPreauthorization);
print_r($response);
} catch(MGPResponseException $e) {
print_r($e);
} catch(MGPException $e) {
print_r($e);
}
const mangopayInstance = require('mangopay4-nodejs-sdk')
const mangopay = new mangopayInstance({
clientId: 'your-client-id',
clientApiKey: 'your-api-key',
})
let myPreauthorization = {
PaymentType: 'CARD',
ExecutionType: 'DIRECT',
AuthorId: '192822811',
Tag: 'Created with Mangopay Node.js SDK',
CreditedUserId: '192822811',
DebitedFunds: {
Currency: 'EUR',
Amount: 1000,
},
Fees: {
Currency: 'EUR',
Amount: 100,
},
CreditedWalletId: '192822814',
CardId: '192822826',
CardType: 'CB_VISA_MASTERCARD',
Culture: 'EN',
SecureMode: 'FORCE',
SecureModeReturnURL: 'http://example.com',
BrowserInfo: {
AcceptHeader:
'text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8',
JavaEnabled: true,
Language: 'FR-FR',
ColorDepth: 4,
ScreenHeight: 1800,
ScreenWidth: 400,
TimeZoneOffset: 60,
UserAgent:
'Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148',
JavascriptEnabled: true,
},
IpAddress: '2d1b:f91a:075a:7fc8:0cb7:b471:cd55:017e',
Billing: {
FirstName: 'Alex',
LastName: 'Smith',
Address: {
AddressLine1: 'Rue des plantes',
AddressLine2: 'The Oasis',
City: 'Paris',
Region: 'IDF',
PostalCode: '75000',
Country: 'FR',
},
},
Shipping: {
FirstName: 'Alex',
LastName: 'Smith',
Address: {
AddressLine1: 'Rue des plantes',
AddressLine2: 'The Oasis',
City: 'Paris',
Region: 'IDF',
PostalCode: '75000',
Country: 'FR',
},
},
StatementDescriptor: 'Nov2023',
}
const createPreauthorization = async (preauthorization) => {
return await mangopay.CardPreAuthorizations.create(preauthorization)
.then((response) => {
console.info(response)
return response
})
.catch((err) => {
console.log(err)
return false
})
}
createPreauthorization(myPreauthorization)
require 'mangopay'
MangoPay.configure do |client|
client.preproduction = true
client.client_id = 'your-client-id'
client.client_apiKey = 'your-api-key'
client.log_file = File.join(Dir.pwd, 'mangopay.log')
end
def createPreauthorization(preauthorizationObject)
begin
response = MangoPay::PreAuthorization.create(preauthorizationObject)
puts response
return response
rescue MangoPay::ResponseError => error
puts "Failed to create preauthorization: #{error.message}"
puts "Error details: #{error.details}"
return false
end
end
myPreauthorization = {
PaymentType: 'CARD',
ExecutionType: 'DIRECT',
AuthorId: '192822811',
Tag: 'Created with Mangopay Ruby SDK',
CreditedUserId: '192822811',
DebitedFunds: {
Currency: 'EUR',
Amount: 1000,
},
Fees: {
Currency: 'EUR',
Amount: 100,
},
CreditedWalletId: '192822814',
CardId: '192822826',
CardType: 'CB_VISA_MASTERCARD',
Culture: 'EN',
SecureMode: 'FORCE',
SecureModeReturnURL: 'http://example.com',
BrowserInfo: {
AcceptHeader:
'text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8',
JavaEnabled: true,
Language: 'FR-FR',
ColorDepth: 4,
ScreenHeight: 1800,
ScreenWidth: 400,
TimeZoneOffset: 60,
UserAgent:
'Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148',
JavascriptEnabled: true,
},
IpAddress: '2d1b:f91a:075a:7fc8:0cb7:b471:cd55:017e',
Billing: {
FirstName: 'Alex',
LastName: 'Smith',
Address: {
AddressLine1: 'Rue des plantes',
AddressLine2: 'The Oasis',
City: 'Paris',
Region: 'IDF',
PostalCode: '75000',
Country: 'FR',
},
},
Shipping: {
FirstName: 'Alex',
LastName: 'Smith',
Address: {
AddressLine1: 'Rue des plantes',
AddressLine2: 'The Oasis',
City: 'Paris',
Region: 'IDF',
PostalCode: '75000',
Country: 'FR',
},
},
StatementDescriptor: 'Nov2023',
}
createPreauthorization(myPreauthorization)
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.mangopay.MangoPayApi;
import com.mangopay.core.Money;
import com.mangopay.core.enumerations.CultureCode;
import com.mangopay.core.enumerations.CurrencyIso;
import com.mangopay.core.enumerations.SecureMode;
import com.mangopay.entities.CardPreAuthorization;
import com.mangopay.entities.subentities.BrowserInfo;
public class CreatePreauthorization {
public static void main(String[] args) throws Exception {
MangoPayApi mangopay = new MangoPayApi();
mangopay.getConfig().setClientId("your-client-id");
mangopay.getConfig().setClientPassword("your-api-key");
CardPreAuthorization preauthorization = new CardPreAuthorization();
String userId = "user_m_01HT2NFK7Z2BRQNGNHMY30VVTT";
String cardId = "card_m_01HZ6YAQF4MR0VRQ06YG06SD99";
BrowserInfo browserInfo = new BrowserInfo();
browserInfo.setAcceptHeader("application/json,text/javascript,*/*;q=0.01<");
browserInfo.setJavaEnabled(true);
browserInfo.setLanguage("fr");
browserInfo.setColorDepth(32);
browserInfo.setScreenHeight(667);
browserInfo.setScreenWidth(375);
browserInfo.setTimeZoneOffset("-120");
browserInfo.setUserAgent("Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148");
browserInfo.setJavascriptEnabled(true);
preauthorization.setAuthorId(userId);
preauthorization.setDebitedFunds(new Money(CurrencyIso.EUR, 1000));
preauthorization.setCulture(CultureCode.EN);
preauthorization.setSecureMode(SecureMode.DEFAULT);
preauthorization.setSecureModeReturnUrl("http://example.com");
preauthorization.setCardId(cardId);
preauthorization.setBrowserInfo(browserInfo);
preauthorization.setIpAddress("658e:1b88:7f7a:a60b:32af:0b7f:56e1:2e9a");
CardPreAuthorization createPreauthorization = mangopay.getCardPreAuthorizationApi().create(preauthorization);
Gson prettyPrint = new GsonBuilder().setPrettyPrinting().create();
String prettyJson = prettyPrint.toJson(createPreauthorization);
System.out.println(prettyJson);
}
}
from pprint import pprint
import mangopay
mangopay.client_id='your-client-id'
mangopay.apikey='your-api-key'
from mangopay.api import APIRequest
handler = APIRequest(sandbox=True)
from mangopay.resources import NaturalUser, PreAuthorization
from mangopay.utils import Money, BrowserInfo
natural_user = NaturalUser.get('213600749')
card_preauthorization = PreAuthorization(
author = natural_user,
debited_funds = Money(amount=100, currency='GBP'),
card_id = '213635147',
secure_mode_return_url = 'http://example.com',
browser_info = BrowserInfo(
user_agent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148',
screen_width = 375,
screen_height = 667,
color_depth = 32,
language = 'EN',
accept_header = 'application/json,text/javascript,*/*;q=0.01<',
timezone_offset = '-120',
java_enabled = True,
javascript_enabled = True
),
ip_address = '159.180.248.187',
tag = 'Created using the Mangopay Python SDK'
)
create_card_preauthorization = card_preauthorization.save()
pprint(create_card_preauthorization)
using MangoPay.SDK;
using MangoPay.SDK.Core.Enumerations;
using MangoPay.SDK.Entities;
using MangoPay.SDK.Entities.POST;
using Newtonsoft.Json;
class Program
{
static async Task Main(string[] args)
{
MangoPayApi api = new MangoPayApi();
api.Config.ClientId = "your-client-id";
api.Config.ClientPassword = "your-api-key";
var userId = "user_m_01J2TZ261WZNDM0ZDRWGDYA4GN";
var cardId = "card_m_01J3049JBA2XPA7GC7GEFJRQG4";
var cardPreAuthorization = new CardPreAuthorizationPostDTO (
userId,
new Money { Amount = 5000, Currency = CurrencyIso.EUR },
SecureMode.DEFAULT,
cardId,
"https://www.mangopay.com/please-ignore/",
"MGP"
) {
IpAddress = "2001:0620:0000:0000:0211:24FF:FE80:C12C",
BrowserInfo = new BrowserInfo {
AcceptHeader = "text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8",
JavaEnabled = true,
Language = "FR-FR",
ColorDepth = 4,
ScreenHeight = 1800,
ScreenWidth = 400,
JavascriptEnabled = true,
TimeZoneOffset = "+60",
UserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148"
}
};
var createPreauthorization = await api.CardPreAuthorizations.CreateAsync(cardPreAuthorization);
string prettyPrint = JsonConvert.SerializeObject(createPreauthorization, Formatting.Indented);
Console.WriteLine(prettyPrint);
}
}
{
"Id": "preauth_wt_064022a9-3640-4ed1-a4bd-3488426428fa",
"Tag": null,
"CreationDate": 1771580609,
"AuthorId": "user_m_01KHRMAQT1ZPVBWK2KYM6S0N7M",
"DebitedFunds": {
"Currency": "EUR",
"Amount": 10000
},
"RemainingFunds": {
"Currency": "EUR",
"Amount": 10000
},
"AuthorizationDate": null,
"Status": "CREATED",
"PaymentStatus": "WAITING",
"ExpirationDate": null,
"PayInId": null,
"ResultCode": null,
"ResultMessage": null,
"SecureMode": "DEFAULT",
"CardId": "card_wt_kLbkQOJbzUhMZmxG",
"SecureModeReturnURL": "http://example.com?preAuthorizationId=preauth_wt_064022a9-3640-4ed1-a4bd-3488426428fa",
"SecureModeRedirectURL": "https://api.sandbox.whenthen.co/payment-gateway/whenthen/threeDS/54b0c206-0a67-43d4-ace6-14a25697cf85/challenge?id=064022a9-3640-4ed1-a4bd-3488426428fa&url=aHR0cHM6Ly9hcGkuc2FuZGJveC53aGVudGhlbi5jby9wYXltZW50cy8zRFNlY3VyZS81NGIwYzIwNi0wYTY3LTQzZDQtYWNlNi0xNGEyNTY5N2NmODUvOTE2YWE5M2YtMDI4MS00ZjVlLTg5MWUtNmUwZGJkMmU3YTEz&amount=MTAwMDA¤cy=RVVS",
"SecureModeNeeded": true,
"PaymentType": "CARD",
"ExecutionType": "DIRECT",
"StatementDescriptor": null,
"Culture": "EN",
"SecurityInfo": {
"AVSResult": "NO_CHECK"
},
"MultiCapture": true,
"BrowserInfo": {
"AcceptHeader": "text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8",
"JavaEnabled": true,
"Language": "FR-FR",
"ColorDepth": 4,
"ScreenHeight": 1800,
"ScreenWidth": 400,
"TimeZoneOffset": 60,
"UserAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",
"JavascriptEnabled": true
},
"IpAddress": "854f:1b03:7d1b:bfbf:e1f0:b1f3:3810:c5ac",
"Billing": {
"FirstName": "Alex",
"LastName": "Smith",
"Address": {
"AddressLine1": "6 rue de la Cité",
"AddressLine2": "Appartement 3",
"City": "Paris",
"Region": "Ile-de-France",
"PostalCode": "75001",
"Country": "FR"
}
},
"Shipping": {
"FirstName": "Alex",
"LastName": "Smith",
"Address": {
"AddressLine1": "6 rue de la Cité",
"AddressLine2": "Appartement 3",
"City": "Paris",
"Region": "Ile-de-France",
"PostalCode": "75001",
"Country": "FR"
}
},
"Requested3DSVersion": null,
"Applied3DSVersion": null,
"PreferredCardNetwork": null,
"PaymentCategory": "ECommerce",
"AuthenticationResult": {
"AuthenticationType": "CHALLENGE"
},
"CardInfo": {
"BIN": "497010",
"IssuingBank": "LA BANQUE POSTALE",
"IssuerCountryCode": "MA",
"Type": "CREDIT",
"SubType": null,
"Brand": "VISA"
}
}
Preauthorizations
Create a Preauthorization
POST
/
v2.01
/
{ClientId}
/
preauthorizations
/
card
/
direct
{
"AuthorId": "user_m_01KHRMAQT1ZPVBWK2KYM6S0N7M",
"DebitedFunds": {
"Currency": "EUR",
"Amount": 10000
},
"Culture": "EN",
"CardId": "card_wt_kLbkQOJbzUhMZmxG",
"SecureModeReturnURL": "http://example.com",
"IpAddress": "854f:1b03:7d1b:bfbf:e1f0:b1f3:3810:c5ac",
"BrowserInfo": {
"AcceptHeader": "text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8",
"JavaEnabled": true,
"Language": "FR-FR",
"ColorDepth": 4,
"ScreenHeight": 1800,
"ScreenWidth": 400,
"TimeZoneOffset": 60,
"UserAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",
"JavascriptEnabled": true
},
"Billing": {
"FirstName": "Alex",
"LastName": "Smith",
"Address": {
"AddressLine1": "6 rue de la Cité",
"AddressLine2": "Appartement 3",
"City": "Paris",
"Region": "Ile-de-France",
"PostalCode": "75001",
"Country": "FR"
}
},
"Shipping": {
"FirstName": "Alex",
"LastName": "Smith",
"Address": {
"AddressLine1": "6 rue de la Cité",
"AddressLine2": "Appartement 3",
"City": "Paris",
"Region": "Ile-de-France",
"PostalCode": "75001",
"Country": "FR"
}
},
"StatementDescriptor": "Example123",
"Tag": "Created using Mangopay API Postman Collection"
}
<?php
require_once 'vendor/autoload.php';
use MangoPay\MangoPayApi;
use MangoPay\Libraries\ResponseException as MGPResponseException;
use MangoPay\Libraries\Exception as MGPException;
$api = new MangoPayApi();
$api->Config->ClientId = 'your-client-id';
$api->Config->ClientPassword = 'your-api-key';
$api->Config->TemporaryFolder = 'tmp/';
try {
$cardPreauthorization = new \MangoPay\CardPreAuthorization();
$cardPreauthorization->AuthorId = 'user_m_01HSDQD2RPPQ8NMM36EDGYBMEY';
$cardPreauthorization->DebitedFunds = new \MangoPay\Money();
$cardPreauthorization->DebitedFunds->Currency = 'EUR';
$cardPreauthorization->DebitedFunds->Amount = 1000;
$cardPreauthorization->SecureMode = 'DEFAULT';
$cardPreauthorization->CardId = 'card_m_01HW8BJ2MS5PBV5EB1ZQG5E8T9';
$cardPreauthorization->SecureModeReturnURL = 'http://example.com';
$cardPreauthorization->Tag = 'Created using Mangopay PHP SDK';
$cardPreauthorization->StatementDescriptor = 'Mangopay';
$cardPreauthorization->BrowserInfo = new \MangoPay\BrowserInfo();
$cardPreauthorization->BrowserInfo->AcceptHeader = "text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8";;
$cardPreauthorization->BrowserInfo->JavaEnabled = true;
$cardPreauthorization->BrowserInfo->Language = "FR-FR";
$cardPreauthorization->BrowserInfo->ColorDepth = 4;
$cardPreauthorization->BrowserInfo->ScreenHeight = 1800;
$cardPreauthorization->BrowserInfo->ScreenWidth = 400;
$cardPreauthorization->BrowserInfo->TimeZoneOffset = 60;
$cardPreauthorization->BrowserInfo->UserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148";
$cardPreauthorization->BrowserInfo->JavascriptEnabled = true;
$cardPreauthorization->Culture = 'EN';
$cardPreauthorization->IpAddress = "2001:0620:0000:0000:0211:24FF:FE80:C12C";
$address = new \MangoPay\Address();
$address->AddressLine1 = '4 rue des Plantes';
$address->City = 'Paris';
$address->Country = 'FR';
$address->PostalCode = '75009';
$address->Region = 'IDF';
$shipping = new \MangoPay\Shipping();
$shipping->FirstName = 'Alex';
$shipping->LastName = 'Smith';
$shipping->Address = $address;
$billing = new \MangoPay\Billing();
$billing->FirstName = 'Alex';
$billing->LastName = 'Smith';
$billing->Address = $address;
$response = $api->CardPreAuthorizations->Create($cardPreauthorization);
print_r($response);
} catch(MGPResponseException $e) {
print_r($e);
} catch(MGPException $e) {
print_r($e);
}
const mangopayInstance = require('mangopay4-nodejs-sdk')
const mangopay = new mangopayInstance({
clientId: 'your-client-id',
clientApiKey: 'your-api-key',
})
let myPreauthorization = {
PaymentType: 'CARD',
ExecutionType: 'DIRECT',
AuthorId: '192822811',
Tag: 'Created with Mangopay Node.js SDK',
CreditedUserId: '192822811',
DebitedFunds: {
Currency: 'EUR',
Amount: 1000,
},
Fees: {
Currency: 'EUR',
Amount: 100,
},
CreditedWalletId: '192822814',
CardId: '192822826',
CardType: 'CB_VISA_MASTERCARD',
Culture: 'EN',
SecureMode: 'FORCE',
SecureModeReturnURL: 'http://example.com',
BrowserInfo: {
AcceptHeader:
'text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8',
JavaEnabled: true,
Language: 'FR-FR',
ColorDepth: 4,
ScreenHeight: 1800,
ScreenWidth: 400,
TimeZoneOffset: 60,
UserAgent:
'Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148',
JavascriptEnabled: true,
},
IpAddress: '2d1b:f91a:075a:7fc8:0cb7:b471:cd55:017e',
Billing: {
FirstName: 'Alex',
LastName: 'Smith',
Address: {
AddressLine1: 'Rue des plantes',
AddressLine2: 'The Oasis',
City: 'Paris',
Region: 'IDF',
PostalCode: '75000',
Country: 'FR',
},
},
Shipping: {
FirstName: 'Alex',
LastName: 'Smith',
Address: {
AddressLine1: 'Rue des plantes',
AddressLine2: 'The Oasis',
City: 'Paris',
Region: 'IDF',
PostalCode: '75000',
Country: 'FR',
},
},
StatementDescriptor: 'Nov2023',
}
const createPreauthorization = async (preauthorization) => {
return await mangopay.CardPreAuthorizations.create(preauthorization)
.then((response) => {
console.info(response)
return response
})
.catch((err) => {
console.log(err)
return false
})
}
createPreauthorization(myPreauthorization)
require 'mangopay'
MangoPay.configure do |client|
client.preproduction = true
client.client_id = 'your-client-id'
client.client_apiKey = 'your-api-key'
client.log_file = File.join(Dir.pwd, 'mangopay.log')
end
def createPreauthorization(preauthorizationObject)
begin
response = MangoPay::PreAuthorization.create(preauthorizationObject)
puts response
return response
rescue MangoPay::ResponseError => error
puts "Failed to create preauthorization: #{error.message}"
puts "Error details: #{error.details}"
return false
end
end
myPreauthorization = {
PaymentType: 'CARD',
ExecutionType: 'DIRECT',
AuthorId: '192822811',
Tag: 'Created with Mangopay Ruby SDK',
CreditedUserId: '192822811',
DebitedFunds: {
Currency: 'EUR',
Amount: 1000,
},
Fees: {
Currency: 'EUR',
Amount: 100,
},
CreditedWalletId: '192822814',
CardId: '192822826',
CardType: 'CB_VISA_MASTERCARD',
Culture: 'EN',
SecureMode: 'FORCE',
SecureModeReturnURL: 'http://example.com',
BrowserInfo: {
AcceptHeader:
'text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8',
JavaEnabled: true,
Language: 'FR-FR',
ColorDepth: 4,
ScreenHeight: 1800,
ScreenWidth: 400,
TimeZoneOffset: 60,
UserAgent:
'Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148',
JavascriptEnabled: true,
},
IpAddress: '2d1b:f91a:075a:7fc8:0cb7:b471:cd55:017e',
Billing: {
FirstName: 'Alex',
LastName: 'Smith',
Address: {
AddressLine1: 'Rue des plantes',
AddressLine2: 'The Oasis',
City: 'Paris',
Region: 'IDF',
PostalCode: '75000',
Country: 'FR',
},
},
Shipping: {
FirstName: 'Alex',
LastName: 'Smith',
Address: {
AddressLine1: 'Rue des plantes',
AddressLine2: 'The Oasis',
City: 'Paris',
Region: 'IDF',
PostalCode: '75000',
Country: 'FR',
},
},
StatementDescriptor: 'Nov2023',
}
createPreauthorization(myPreauthorization)
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.mangopay.MangoPayApi;
import com.mangopay.core.Money;
import com.mangopay.core.enumerations.CultureCode;
import com.mangopay.core.enumerations.CurrencyIso;
import com.mangopay.core.enumerations.SecureMode;
import com.mangopay.entities.CardPreAuthorization;
import com.mangopay.entities.subentities.BrowserInfo;
public class CreatePreauthorization {
public static void main(String[] args) throws Exception {
MangoPayApi mangopay = new MangoPayApi();
mangopay.getConfig().setClientId("your-client-id");
mangopay.getConfig().setClientPassword("your-api-key");
CardPreAuthorization preauthorization = new CardPreAuthorization();
String userId = "user_m_01HT2NFK7Z2BRQNGNHMY30VVTT";
String cardId = "card_m_01HZ6YAQF4MR0VRQ06YG06SD99";
BrowserInfo browserInfo = new BrowserInfo();
browserInfo.setAcceptHeader("application/json,text/javascript,*/*;q=0.01<");
browserInfo.setJavaEnabled(true);
browserInfo.setLanguage("fr");
browserInfo.setColorDepth(32);
browserInfo.setScreenHeight(667);
browserInfo.setScreenWidth(375);
browserInfo.setTimeZoneOffset("-120");
browserInfo.setUserAgent("Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148");
browserInfo.setJavascriptEnabled(true);
preauthorization.setAuthorId(userId);
preauthorization.setDebitedFunds(new Money(CurrencyIso.EUR, 1000));
preauthorization.setCulture(CultureCode.EN);
preauthorization.setSecureMode(SecureMode.DEFAULT);
preauthorization.setSecureModeReturnUrl("http://example.com");
preauthorization.setCardId(cardId);
preauthorization.setBrowserInfo(browserInfo);
preauthorization.setIpAddress("658e:1b88:7f7a:a60b:32af:0b7f:56e1:2e9a");
CardPreAuthorization createPreauthorization = mangopay.getCardPreAuthorizationApi().create(preauthorization);
Gson prettyPrint = new GsonBuilder().setPrettyPrinting().create();
String prettyJson = prettyPrint.toJson(createPreauthorization);
System.out.println(prettyJson);
}
}
from pprint import pprint
import mangopay
mangopay.client_id='your-client-id'
mangopay.apikey='your-api-key'
from mangopay.api import APIRequest
handler = APIRequest(sandbox=True)
from mangopay.resources import NaturalUser, PreAuthorization
from mangopay.utils import Money, BrowserInfo
natural_user = NaturalUser.get('213600749')
card_preauthorization = PreAuthorization(
author = natural_user,
debited_funds = Money(amount=100, currency='GBP'),
card_id = '213635147',
secure_mode_return_url = 'http://example.com',
browser_info = BrowserInfo(
user_agent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148',
screen_width = 375,
screen_height = 667,
color_depth = 32,
language = 'EN',
accept_header = 'application/json,text/javascript,*/*;q=0.01<',
timezone_offset = '-120',
java_enabled = True,
javascript_enabled = True
),
ip_address = '159.180.248.187',
tag = 'Created using the Mangopay Python SDK'
)
create_card_preauthorization = card_preauthorization.save()
pprint(create_card_preauthorization)
using MangoPay.SDK;
using MangoPay.SDK.Core.Enumerations;
using MangoPay.SDK.Entities;
using MangoPay.SDK.Entities.POST;
using Newtonsoft.Json;
class Program
{
static async Task Main(string[] args)
{
MangoPayApi api = new MangoPayApi();
api.Config.ClientId = "your-client-id";
api.Config.ClientPassword = "your-api-key";
var userId = "user_m_01J2TZ261WZNDM0ZDRWGDYA4GN";
var cardId = "card_m_01J3049JBA2XPA7GC7GEFJRQG4";
var cardPreAuthorization = new CardPreAuthorizationPostDTO (
userId,
new Money { Amount = 5000, Currency = CurrencyIso.EUR },
SecureMode.DEFAULT,
cardId,
"https://www.mangopay.com/please-ignore/",
"MGP"
) {
IpAddress = "2001:0620:0000:0000:0211:24FF:FE80:C12C",
BrowserInfo = new BrowserInfo {
AcceptHeader = "text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8",
JavaEnabled = true,
Language = "FR-FR",
ColorDepth = 4,
ScreenHeight = 1800,
ScreenWidth = 400,
JavascriptEnabled = true,
TimeZoneOffset = "+60",
UserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148"
}
};
var createPreauthorization = await api.CardPreAuthorizations.CreateAsync(cardPreAuthorization);
string prettyPrint = JsonConvert.SerializeObject(createPreauthorization, Formatting.Indented);
Console.WriteLine(prettyPrint);
}
}
{
"Id": "preauth_wt_064022a9-3640-4ed1-a4bd-3488426428fa",
"Tag": null,
"CreationDate": 1771580609,
"AuthorId": "user_m_01KHRMAQT1ZPVBWK2KYM6S0N7M",
"DebitedFunds": {
"Currency": "EUR",
"Amount": 10000
},
"RemainingFunds": {
"Currency": "EUR",
"Amount": 10000
},
"AuthorizationDate": null,
"Status": "CREATED",
"PaymentStatus": "WAITING",
"ExpirationDate": null,
"PayInId": null,
"ResultCode": null,
"ResultMessage": null,
"SecureMode": "DEFAULT",
"CardId": "card_wt_kLbkQOJbzUhMZmxG",
"SecureModeReturnURL": "http://example.com?preAuthorizationId=preauth_wt_064022a9-3640-4ed1-a4bd-3488426428fa",
"SecureModeRedirectURL": "https://api.sandbox.whenthen.co/payment-gateway/whenthen/threeDS/54b0c206-0a67-43d4-ace6-14a25697cf85/challenge?id=064022a9-3640-4ed1-a4bd-3488426428fa&url=aHR0cHM6Ly9hcGkuc2FuZGJveC53aGVudGhlbi5jby9wYXltZW50cy8zRFNlY3VyZS81NGIwYzIwNi0wYTY3LTQzZDQtYWNlNi0xNGEyNTY5N2NmODUvOTE2YWE5M2YtMDI4MS00ZjVlLTg5MWUtNmUwZGJkMmU3YTEz&amount=MTAwMDA¤cy=RVVS",
"SecureModeNeeded": true,
"PaymentType": "CARD",
"ExecutionType": "DIRECT",
"StatementDescriptor": null,
"Culture": "EN",
"SecurityInfo": {
"AVSResult": "NO_CHECK"
},
"MultiCapture": true,
"BrowserInfo": {
"AcceptHeader": "text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8",
"JavaEnabled": true,
"Language": "FR-FR",
"ColorDepth": 4,
"ScreenHeight": 1800,
"ScreenWidth": 400,
"TimeZoneOffset": 60,
"UserAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",
"JavascriptEnabled": true
},
"IpAddress": "854f:1b03:7d1b:bfbf:e1f0:b1f3:3810:c5ac",
"Billing": {
"FirstName": "Alex",
"LastName": "Smith",
"Address": {
"AddressLine1": "6 rue de la Cité",
"AddressLine2": "Appartement 3",
"City": "Paris",
"Region": "Ile-de-France",
"PostalCode": "75001",
"Country": "FR"
}
},
"Shipping": {
"FirstName": "Alex",
"LastName": "Smith",
"Address": {
"AddressLine1": "6 rue de la Cité",
"AddressLine2": "Appartement 3",
"City": "Paris",
"Region": "Ile-de-France",
"PostalCode": "75001",
"Country": "FR"
}
},
"Requested3DSVersion": null,
"Applied3DSVersion": null,
"PreferredCardNetwork": null,
"PaymentCategory": "ECommerce",
"AuthenticationResult": {
"AuthenticationType": "CHALLENGE"
},
"CardInfo": {
"BIN": "497010",
"IssuingBank": "LA BANQUE POSTALE",
"IssuerCountryCode": "MA",
"Type": "CREDIT",
"SubType": null,
"Brand": "VISA"
}
}
Body parameters
string
Max. length: 255 charactersCustom data that you can add to this object.
For preauthorizations, you can use this parameter to identify corresponding information regarding the user or transaction on your platform.
For preauthorizations, you can use this parameter to identify corresponding information regarding the user or transaction on your platform.
string
required
The unique identifier of the user at the source of the transaction.
object
required
Information about the preauthorized funds.
Show properties
Show properties
string
required
Allowed values: The three-letter ISO 4217 code (EUR, GBP, etc) of a supported currency (depends on feature, contract, and activation settings).The currency of the preauthorized funds.
integer
required
An amount of money in the smallest sub-division of the currency (e.g., EUR 12.60 would be represented as
1260 whereas JPY 12 would be represented as just 12).string
Allowed values:
DEFAULT, FORCE, NO_CHOICEDefault value: DEFAULTThe mode applied for the 3DS2 protocol for CB, Visa, and Mastercard. The options are:DEFAULT– Requests an exemption to strong customer authentication (SCA), and thus a frictionless payment experience, if allowed by your Mangopay contract and accepted by the issuer.FORCE– Requests SCA.NO_CHOICE– Leaves the choice to the issuer whether to allow for a frictionless payment experience or to enforce SCA.
string
required
The unique identifier of the Card object, obtained during the card registration process.
string
required
Max. length: 255 charactersThe URL to which users are automatically returned after 3DS2 if it is triggered (i.e., if the
SecureModeNeeded parameter is set to true).string
Max. length: 10 characters; only alphanumeric and spacesCustom description to appear on the user’s bank statement along with the platform name. Different banks may show more or less information. See the Customizing bank statement references article for details.
string
Allowed values: One of the supported languages in the ISO 639-1 format: DE, EN, ES, FR, IT, NL, PL, PT.The language in which the payment page is to be displayed.
object
required
Information about the browser used by the end user (author) to perform the payment.
Show properties
Show properties
string
required
The exact content of the HTTP accept headers as sent to the platform from the end user’s browser.
boolean
required
Whether or not the end user’s browser has the ability to execute Java.
string
required
Format: Two-letter language code (ISO 639-1 alpha-2) followed by two-letter country code (ISO 3166-1 alpha-2), separated by a hyphen (example:
en-US; pattern:^[a-zA-Z]{2}(-[a-zA-Z]{2})?$)The language of the browser.integer
required
The value representing the depth of the screen’s color palette for displaying images, in bits per pixel.
integer
required
Max. length: 6 charactersThe height of the screen in pixels.
integer
required
Max. length: 6 charactersThe width of the screen in pixels.
integer
required
The difference in minutes between the browser’s timezone and UTC.
string
required
Max. length: 255 charactersThe exact content of the HTTP User-Agent header.
boolean
required
Whether or not the end user’s browser has the ability to execute JavaScript.
string
required
The IP address of the end user initiating the transaction, in IPV4 or IPV6 format.
object
Default value: FirstName, LastName, and Address information of the Shipping object if any, otherwise the user (author).Information about the end user billing address. If left empty, the default values will be automatically taken into account.
Show properties
Show properties
string
The first name of the user.
string
Max. length: 100 charactersThe last name of the user.
object
Information about the billing address.
Show properties
Show properties
string
required
Max. length: 255 charactersThe first line of the address.
string
Max. length: 255 charactersThe second line of the address.
string
Max. length: 255 charactersThe city of the address.
string
Max. length: 255 charactersRequired if
Country is US, CA, or MX.The region of the address.string
required
Max. length: 255 charactersThe postal code of the address. The postal code can contain the following characters: alphanumeric, dashes, and spaces.
string
required
Format: Two-letter country code (ISO 3166-1 alpha-2 format)The country of the address.
object
Default value: FirstName, LastName, and Address information of the Billing object, if supplied, otherwise of the user (author).Information about the end user’s shipping address. If left empty, the default values will be automatically taken into account.
Show properties
Show properties
string
The first name of the user.
string
Max. length: 100 charactersThe last name of the user.
object
required
Information about the shipping address.
Show properties
Show properties
string
required
Max. length: 255 charactersThe first line of the address.
string
Max. length: 255 charactersThe second line of the address.
string
required
Max. length: 255 charactersThe city of the address.
string
Max. length: 255 charactersRequired if
Country is US, CA, or MX.The region of the address.string
required
Max. length: 255 charactersThe postal code of the address. The postal code can contain the following characters: alphanumeric, dashes, and spaces.
string
required
Format: Two-letter country code (ISO 3166-1 alpha-2 format)The country of the address.
string
Allowed values:
VISA, MASTERCARD, CB, MAESTROThe card network to use, as chosen by the cardholder, in case of co-branded cards.string
Default value:
ECommerceAllowed values: ECommerce, TelephoneOrderThe channel through which the user provided their card details, used to indicate mail-order and telephone-order (MOTO) payments:ECommerce– Payment received online.TelephoneOrder– Payment received via mail order or telephone order (MOTO).
string
The unique reference generated for the profiling session, used by the fraud prevention solution to produce recommendations for the transaction using the profiling data.Note: Parameter not returned by the API. Profiling feature available on request – contact Mangopay via the Dashboard for more information.
Responses
200
200
string
Max. length: 255 charactersThe unique identifier of the preauthorization.
string
Max. length: 255 charactersCustom data that you can add to this object.
For preauthorizations, you can use this parameter to identify corresponding information regarding the user or transaction on your platform.
For preauthorizations, you can use this parameter to identify corresponding information regarding the user or transaction on your platform.
Unix timestamp
The date and time at which the object was created.
string
The unique identifier of the user at the source of the transaction.
object
Information about the preauthorized funds.
Show properties
Show properties
string
Returned values: The three-letter ISO 4217 code (EUR, GBP, etc.) of a supported currency (depends on feature, contract, and activation settings).The currency of the preauthorized funds.
integer
An amount of money in the smallest sub-division of the currency (e.g., EUR 12.60 would be represented as
1260 whereas JPY 12 would be represented as just 12).object
Information about the remaining preauthorized funds.
Show properties
Show properties
string
Returned values: The three-letter ISO 4217 code (EUR, GBP, etc.) of a supported currency (depends on feature, contract, and activation settings).The currency of the preauthorized funds.
integer
An amount of money in the smallest sub-division of the currency (e.g., EUR 12.60 would be represented as
1260 whereas JPY 12 would be represented as just 12).Unix timestamp
The date and time at which successful authorization occurred. If authorization failed, the value is
null.string
Returned values:
CREATED, SUCCEEDED, FAILEDThe status of the authorization.string
Returned values:
WAITING, CANCELED, EXPIRED, VALIDATEDThe status of the preauthorization object:WAITING– The remaining preauthorized funds can be captured by making one or several preauthorized pay-ins. Pay-ins can only be made against a preauthorization with theWAITINGstatus.CANCELED– The preauthorization was canceled manually before any preauthorized pay-ins were made, or it was canceled automatically because the authorization failed.EXPIRED– The hold period on the preauthorized funds has ended without any preauthorized pay-ins taking place.VALIDATED– During the hold period: Indicates that all the preauthorized funds have been captured (RemainingFundsis zero) and no more preauthorized pay-ins can be made. After the hold period: Indicates that at least one capture was made during the hold period.
Unix timestamp
The date and time at which the hold period ends and the preauthorized funds are released.
At the expiration date, the preauthorization’s
At the expiration date, the preauthorization’s
PaymentStatus changes to EXPIRED if no captures were made or VALIDATED if at least one capture was made.string
The unique identifier of the pay-in.
string
The code indicating the result of the operation. This information is mostly used to handle errors or for filtering purposes.
string
The explanation of the result code.
string
Returned values:
DEFAULT, FORCE, NO_CHOICEThe mode applied for the 3DS2 protocol for CB, Visa, and Mastercard. The options are:DEFAULT– Requests an exemption to strong customer authentication (SCA), and thus a frictionless payment experience, if allowed by your Mangopay contract and accepted by the issuer.FORCE– Requests SCA.NO_CHOICE– Leaves the choice to the issuer whether to allow for a frictionless payment experience or to enforce SCA.
string
The unique identifier of the Card object, obtained during the card registration process.
string
Max. length: 255 charactersThe URL to which users are automatically returned after 3DS2 if it is triggered (i.e., if the
SecureModeNeeded parameter is set to true).string
Max. length: 255 charactersThe URL to which to redirect the user to proceed to 3DS2 validation.
boolean
Whether or not the
SecureMode was used.string
Returned values:
CARD, DIRECT_DEBIT, PREAUTHORIZED, BANK_WIREThe type of pay-in.string
Returned values:
WEB, DIRECT, EXTERNAL_INSTRUCTIONThe type of execution for the pay-in.string
Max. length: 10 characters; only alphanumeric and spacesCustom description to appear on the user’s bank statement along with the platform name. Different banks may show more or less information. See the Customizing bank statement references article for details.
string
Returned values: One of the supported languages in the ISO 639-1 format: DE, EN, ES, FR, IT, NL, PL, PT.The language in which the payment page is to be displayed.
object
Information regarding security and anti-fraud tools.
Show properties
Show properties
string
The result of the Address Verification System check (only available for UK, US, and Canada).
boolean
Default value: trueWhether multiple captures are activated for the preauthorization.
object
Information about the browser used by the end user (author) to perform the payment.
Show properties
Show properties
string
The exact content of the HTTP accept headers as sent to the platform from the end user’s browser.
boolean
Whether or not the end user’s browser has the ability to execute Java.
string
Format: Two-letter language code (ISO 639-1 alpha-2) followed by two-letter country code (ISO 3166-1 alpha-2), separated by a hyphen (example:
en-US; pattern:^[a-zA-Z]{2}(-[a-zA-Z]{2})?$)The language of the browser.integer
The value representing the depth of the screen’s color palette for displaying images, in bits per pixel.
integer
Max. length: 6 charactersThe height of the screen in pixels.
integer
Max. length: 6 charactersThe width of the screen in pixels.
integer
The difference in minutes between the browser’s timezone and UTC.
string
Max. length: 255 charactersThe exact content of the HTTP User-Agent header.
boolean
Whether or not the end user’s browser has the ability to execute JavaScript.
string
The IP address of the end user initiating the transaction, in IPV4 or IPV6 format.
object
Default value: FirstName, LastName, and Address information of the Shipping object if any, otherwise the user (author).Information about the end user billing address. If left empty, the default values will be automatically taken into account.
Show properties
Show properties
string
The first name of the user.
string
Max. length: 100 charactersThe last name of the user.
object
Information about the billing address.
Show properties
Show properties
string
Max. length: 255 charactersThe first line of the address.
string
Max. length: 255 charactersThe second line of the address.
string
Max. length: 255 charactersThe city of the address.
string
Max. length: 255 charactersThe region of the address. This field is optional except if the
Country is US, CA, or MX.string
Max. length: 255 charactersThe postal code of the address. The postal code can contain the following characters: alphanumeric, dashes, and spaces.
string
Format: Two-letter country code (ISO 3166-1 alpha-2 format)The country of the address.
object
Default value: FirstName, LastName, and Address information of the Billing object, if supplied, otherwise of the user (author).Information about the end user’s shipping address. If left empty, the default values will be automatically taken into account.
Show properties
Show properties
string
The first name of the user.
string
Max. length: 100 charactersThe last name of the user.
object
Information about the shipping address.
Show properties
Show properties
string
Max. length: 255 charactersThe first line of the address.
string
Max. length: 255 charactersThe second line of the address.
string
Max. length: 255 charactersThe city of the address.
string
Max. length: 255 charactersThe region of the address. This field is optional except if the
Country is US, CA, or MX.string
Max. length: 255 charactersThe postal code of the address. The postal code can contain the following characters: alphanumeric, dashes, and spaces.
string
Format: Two-letter country code (ISO 3166-1 alpha-2 format)The country of the address.
string
Returned values:
V1, V2_1The 3DS protocol version to be applied to the transaction.string | null
Returned values:
V1, V2_1The 3DS protocol version applied to the transaction.string
Returned values:
VISA, MASTERCARD, CB, MAESTROThe card network to use, as chosen by the cardholder, in case of co-branded cards.string
Default value:
ECommerceAllowed values: ECommerce, TelephoneOrderThe channel through which the user provided their card details, used to indicate mail-order and telephone-order (MOTO) payments:ECommerce– Payment received online.TelephoneOrder– Payment received via mail order or telephone order (MOTO).
string
Information about the card used for the transaction.If the information or data is not available,
null is returned.Show properties
Show properties
string
The 6-digit bank identification number (BIN) of the card issuer.
string
The name of the card issuer.
string
Format: Two-letter country code (ISO 3166-1 alpha-2 format)The country where the card was issued.
string
Returned values:
DEBIT, CREDIT, CHARGE CARD.The type of card product.string
The card brand. Examples include:
AMERICAN EXPRESS, DISCOVER, JCB, MASTERCARD, VISA, etc.Note: The possible returned values are numerous and liable to evolve over time.string
The subtype of the card product. Examples include:
CLASSIC, GOLD, PLATINUM, PREPAID, etc.Note: The possible returned values are numerous and liable to evolve over time.object | null
Information about the authentication result, based on the request made by Mangopay and the decision of the issuer regarding the type of authentication to be enforced (if applicable).
Show properties
Show properties
string | null
Response values:
CHALLENGE, FRICTIONLESS, DIRECT_AUTHORIZATIONThe type of authentication:CHALLENGE– The issuer requested SCA to be enforced (for example, using 3DS).FRICTIONLESS– The transaction was exempted from SCA because an exemption was granted by the issuer.DIRECT_AUTHORIZATION– The transaction was sent to the issuer for authorization without any frictionless or challenge (for example, if SCA doesn’t apply).
null value typically indicates that authentication was not requested (for example, because the request failed before being sent) or a decision was not received.{
"Id": "preauth_wt_064022a9-3640-4ed1-a4bd-3488426428fa",
"Tag": null,
"CreationDate": 1771580609,
"AuthorId": "user_m_01KHRMAQT1ZPVBWK2KYM6S0N7M",
"DebitedFunds": {
"Currency": "EUR",
"Amount": 10000
},
"RemainingFunds": {
"Currency": "EUR",
"Amount": 10000
},
"AuthorizationDate": null,
"Status": "CREATED",
"PaymentStatus": "WAITING",
"ExpirationDate": null,
"PayInId": null,
"ResultCode": null,
"ResultMessage": null,
"SecureMode": "DEFAULT",
"CardId": "card_wt_kLbkQOJbzUhMZmxG",
"SecureModeReturnURL": "http://example.com?preAuthorizationId=preauth_wt_064022a9-3640-4ed1-a4bd-3488426428fa",
"SecureModeRedirectURL": "https://api.sandbox.whenthen.co/payment-gateway/whenthen/threeDS/54b0c206-0a67-43d4-ace6-14a25697cf85/challenge?id=064022a9-3640-4ed1-a4bd-3488426428fa&url=aHR0cHM6Ly9hcGkuc2FuZGJveC53aGVudGhlbi5jby9wYXltZW50cy8zRFNlY3VyZS81NGIwYzIwNi0wYTY3LTQzZDQtYWNlNi0xNGEyNTY5N2NmODUvOTE2YWE5M2YtMDI4MS00ZjVlLTg5MWUtNmUwZGJkMmU3YTEz&amount=MTAwMDA¤cy=RVVS",
"SecureModeNeeded": true,
"PaymentType": "CARD",
"ExecutionType": "DIRECT",
"StatementDescriptor": null,
"Culture": "EN",
"SecurityInfo": {
"AVSResult": "NO_CHECK"
},
"MultiCapture": true,
"BrowserInfo": {
"AcceptHeader": "text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8",
"JavaEnabled": true,
"Language": "FR-FR",
"ColorDepth": 4,
"ScreenHeight": 1800,
"ScreenWidth": 400,
"TimeZoneOffset": 60,
"UserAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",
"JavascriptEnabled": true
},
"IpAddress": "854f:1b03:7d1b:bfbf:e1f0:b1f3:3810:c5ac",
"Billing": {
"FirstName": "Alex",
"LastName": "Smith",
"Address": {
"AddressLine1": "6 rue de la Cité",
"AddressLine2": "Appartement 3",
"City": "Paris",
"Region": "Ile-de-France",
"PostalCode": "75001",
"Country": "FR"
}
},
"Shipping": {
"FirstName": "Alex",
"LastName": "Smith",
"Address": {
"AddressLine1": "6 rue de la Cité",
"AddressLine2": "Appartement 3",
"City": "Paris",
"Region": "Ile-de-France",
"PostalCode": "75001",
"Country": "FR"
}
},
"Requested3DSVersion": null,
"Applied3DSVersion": null,
"PreferredCardNetwork": null,
"PaymentCategory": "ECommerce",
"AuthenticationResult": {
"AuthenticationType": "CHALLENGE"
},
"CardInfo": {
"BIN": "497010",
"IssuingBank": "LA BANQUE POSTALE",
"IssuerCountryCode": "MA",
"Type": "CREDIT",
"SubType": null,
"Brand": "VISA"
}
}
{
"AuthorId": "user_m_01KHRMAQT1ZPVBWK2KYM6S0N7M",
"DebitedFunds": {
"Currency": "EUR",
"Amount": 10000
},
"Culture": "EN",
"CardId": "card_wt_kLbkQOJbzUhMZmxG",
"SecureModeReturnURL": "http://example.com",
"IpAddress": "854f:1b03:7d1b:bfbf:e1f0:b1f3:3810:c5ac",
"BrowserInfo": {
"AcceptHeader": "text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8",
"JavaEnabled": true,
"Language": "FR-FR",
"ColorDepth": 4,
"ScreenHeight": 1800,
"ScreenWidth": 400,
"TimeZoneOffset": 60,
"UserAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",
"JavascriptEnabled": true
},
"Billing": {
"FirstName": "Alex",
"LastName": "Smith",
"Address": {
"AddressLine1": "6 rue de la Cité",
"AddressLine2": "Appartement 3",
"City": "Paris",
"Region": "Ile-de-France",
"PostalCode": "75001",
"Country": "FR"
}
},
"Shipping": {
"FirstName": "Alex",
"LastName": "Smith",
"Address": {
"AddressLine1": "6 rue de la Cité",
"AddressLine2": "Appartement 3",
"City": "Paris",
"Region": "Ile-de-France",
"PostalCode": "75001",
"Country": "FR"
}
},
"StatementDescriptor": "Example123",
"Tag": "Created using Mangopay API Postman Collection"
}
<?php
require_once 'vendor/autoload.php';
use MangoPay\MangoPayApi;
use MangoPay\Libraries\ResponseException as MGPResponseException;
use MangoPay\Libraries\Exception as MGPException;
$api = new MangoPayApi();
$api->Config->ClientId = 'your-client-id';
$api->Config->ClientPassword = 'your-api-key';
$api->Config->TemporaryFolder = 'tmp/';
try {
$cardPreauthorization = new \MangoPay\CardPreAuthorization();
$cardPreauthorization->AuthorId = 'user_m_01HSDQD2RPPQ8NMM36EDGYBMEY';
$cardPreauthorization->DebitedFunds = new \MangoPay\Money();
$cardPreauthorization->DebitedFunds->Currency = 'EUR';
$cardPreauthorization->DebitedFunds->Amount = 1000;
$cardPreauthorization->SecureMode = 'DEFAULT';
$cardPreauthorization->CardId = 'card_m_01HW8BJ2MS5PBV5EB1ZQG5E8T9';
$cardPreauthorization->SecureModeReturnURL = 'http://example.com';
$cardPreauthorization->Tag = 'Created using Mangopay PHP SDK';
$cardPreauthorization->StatementDescriptor = 'Mangopay';
$cardPreauthorization->BrowserInfo = new \MangoPay\BrowserInfo();
$cardPreauthorization->BrowserInfo->AcceptHeader = "text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8";;
$cardPreauthorization->BrowserInfo->JavaEnabled = true;
$cardPreauthorization->BrowserInfo->Language = "FR-FR";
$cardPreauthorization->BrowserInfo->ColorDepth = 4;
$cardPreauthorization->BrowserInfo->ScreenHeight = 1800;
$cardPreauthorization->BrowserInfo->ScreenWidth = 400;
$cardPreauthorization->BrowserInfo->TimeZoneOffset = 60;
$cardPreauthorization->BrowserInfo->UserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148";
$cardPreauthorization->BrowserInfo->JavascriptEnabled = true;
$cardPreauthorization->Culture = 'EN';
$cardPreauthorization->IpAddress = "2001:0620:0000:0000:0211:24FF:FE80:C12C";
$address = new \MangoPay\Address();
$address->AddressLine1 = '4 rue des Plantes';
$address->City = 'Paris';
$address->Country = 'FR';
$address->PostalCode = '75009';
$address->Region = 'IDF';
$shipping = new \MangoPay\Shipping();
$shipping->FirstName = 'Alex';
$shipping->LastName = 'Smith';
$shipping->Address = $address;
$billing = new \MangoPay\Billing();
$billing->FirstName = 'Alex';
$billing->LastName = 'Smith';
$billing->Address = $address;
$response = $api->CardPreAuthorizations->Create($cardPreauthorization);
print_r($response);
} catch(MGPResponseException $e) {
print_r($e);
} catch(MGPException $e) {
print_r($e);
}
const mangopayInstance = require('mangopay4-nodejs-sdk')
const mangopay = new mangopayInstance({
clientId: 'your-client-id',
clientApiKey: 'your-api-key',
})
let myPreauthorization = {
PaymentType: 'CARD',
ExecutionType: 'DIRECT',
AuthorId: '192822811',
Tag: 'Created with Mangopay Node.js SDK',
CreditedUserId: '192822811',
DebitedFunds: {
Currency: 'EUR',
Amount: 1000,
},
Fees: {
Currency: 'EUR',
Amount: 100,
},
CreditedWalletId: '192822814',
CardId: '192822826',
CardType: 'CB_VISA_MASTERCARD',
Culture: 'EN',
SecureMode: 'FORCE',
SecureModeReturnURL: 'http://example.com',
BrowserInfo: {
AcceptHeader:
'text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8',
JavaEnabled: true,
Language: 'FR-FR',
ColorDepth: 4,
ScreenHeight: 1800,
ScreenWidth: 400,
TimeZoneOffset: 60,
UserAgent:
'Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148',
JavascriptEnabled: true,
},
IpAddress: '2d1b:f91a:075a:7fc8:0cb7:b471:cd55:017e',
Billing: {
FirstName: 'Alex',
LastName: 'Smith',
Address: {
AddressLine1: 'Rue des plantes',
AddressLine2: 'The Oasis',
City: 'Paris',
Region: 'IDF',
PostalCode: '75000',
Country: 'FR',
},
},
Shipping: {
FirstName: 'Alex',
LastName: 'Smith',
Address: {
AddressLine1: 'Rue des plantes',
AddressLine2: 'The Oasis',
City: 'Paris',
Region: 'IDF',
PostalCode: '75000',
Country: 'FR',
},
},
StatementDescriptor: 'Nov2023',
}
const createPreauthorization = async (preauthorization) => {
return await mangopay.CardPreAuthorizations.create(preauthorization)
.then((response) => {
console.info(response)
return response
})
.catch((err) => {
console.log(err)
return false
})
}
createPreauthorization(myPreauthorization)
require 'mangopay'
MangoPay.configure do |client|
client.preproduction = true
client.client_id = 'your-client-id'
client.client_apiKey = 'your-api-key'
client.log_file = File.join(Dir.pwd, 'mangopay.log')
end
def createPreauthorization(preauthorizationObject)
begin
response = MangoPay::PreAuthorization.create(preauthorizationObject)
puts response
return response
rescue MangoPay::ResponseError => error
puts "Failed to create preauthorization: #{error.message}"
puts "Error details: #{error.details}"
return false
end
end
myPreauthorization = {
PaymentType: 'CARD',
ExecutionType: 'DIRECT',
AuthorId: '192822811',
Tag: 'Created with Mangopay Ruby SDK',
CreditedUserId: '192822811',
DebitedFunds: {
Currency: 'EUR',
Amount: 1000,
},
Fees: {
Currency: 'EUR',
Amount: 100,
},
CreditedWalletId: '192822814',
CardId: '192822826',
CardType: 'CB_VISA_MASTERCARD',
Culture: 'EN',
SecureMode: 'FORCE',
SecureModeReturnURL: 'http://example.com',
BrowserInfo: {
AcceptHeader:
'text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8',
JavaEnabled: true,
Language: 'FR-FR',
ColorDepth: 4,
ScreenHeight: 1800,
ScreenWidth: 400,
TimeZoneOffset: 60,
UserAgent:
'Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148',
JavascriptEnabled: true,
},
IpAddress: '2d1b:f91a:075a:7fc8:0cb7:b471:cd55:017e',
Billing: {
FirstName: 'Alex',
LastName: 'Smith',
Address: {
AddressLine1: 'Rue des plantes',
AddressLine2: 'The Oasis',
City: 'Paris',
Region: 'IDF',
PostalCode: '75000',
Country: 'FR',
},
},
Shipping: {
FirstName: 'Alex',
LastName: 'Smith',
Address: {
AddressLine1: 'Rue des plantes',
AddressLine2: 'The Oasis',
City: 'Paris',
Region: 'IDF',
PostalCode: '75000',
Country: 'FR',
},
},
StatementDescriptor: 'Nov2023',
}
createPreauthorization(myPreauthorization)
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.mangopay.MangoPayApi;
import com.mangopay.core.Money;
import com.mangopay.core.enumerations.CultureCode;
import com.mangopay.core.enumerations.CurrencyIso;
import com.mangopay.core.enumerations.SecureMode;
import com.mangopay.entities.CardPreAuthorization;
import com.mangopay.entities.subentities.BrowserInfo;
public class CreatePreauthorization {
public static void main(String[] args) throws Exception {
MangoPayApi mangopay = new MangoPayApi();
mangopay.getConfig().setClientId("your-client-id");
mangopay.getConfig().setClientPassword("your-api-key");
CardPreAuthorization preauthorization = new CardPreAuthorization();
String userId = "user_m_01HT2NFK7Z2BRQNGNHMY30VVTT";
String cardId = "card_m_01HZ6YAQF4MR0VRQ06YG06SD99";
BrowserInfo browserInfo = new BrowserInfo();
browserInfo.setAcceptHeader("application/json,text/javascript,*/*;q=0.01<");
browserInfo.setJavaEnabled(true);
browserInfo.setLanguage("fr");
browserInfo.setColorDepth(32);
browserInfo.setScreenHeight(667);
browserInfo.setScreenWidth(375);
browserInfo.setTimeZoneOffset("-120");
browserInfo.setUserAgent("Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148");
browserInfo.setJavascriptEnabled(true);
preauthorization.setAuthorId(userId);
preauthorization.setDebitedFunds(new Money(CurrencyIso.EUR, 1000));
preauthorization.setCulture(CultureCode.EN);
preauthorization.setSecureMode(SecureMode.DEFAULT);
preauthorization.setSecureModeReturnUrl("http://example.com");
preauthorization.setCardId(cardId);
preauthorization.setBrowserInfo(browserInfo);
preauthorization.setIpAddress("658e:1b88:7f7a:a60b:32af:0b7f:56e1:2e9a");
CardPreAuthorization createPreauthorization = mangopay.getCardPreAuthorizationApi().create(preauthorization);
Gson prettyPrint = new GsonBuilder().setPrettyPrinting().create();
String prettyJson = prettyPrint.toJson(createPreauthorization);
System.out.println(prettyJson);
}
}
from pprint import pprint
import mangopay
mangopay.client_id='your-client-id'
mangopay.apikey='your-api-key'
from mangopay.api import APIRequest
handler = APIRequest(sandbox=True)
from mangopay.resources import NaturalUser, PreAuthorization
from mangopay.utils import Money, BrowserInfo
natural_user = NaturalUser.get('213600749')
card_preauthorization = PreAuthorization(
author = natural_user,
debited_funds = Money(amount=100, currency='GBP'),
card_id = '213635147',
secure_mode_return_url = 'http://example.com',
browser_info = BrowserInfo(
user_agent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148',
screen_width = 375,
screen_height = 667,
color_depth = 32,
language = 'EN',
accept_header = 'application/json,text/javascript,*/*;q=0.01<',
timezone_offset = '-120',
java_enabled = True,
javascript_enabled = True
),
ip_address = '159.180.248.187',
tag = 'Created using the Mangopay Python SDK'
)
create_card_preauthorization = card_preauthorization.save()
pprint(create_card_preauthorization)
using MangoPay.SDK;
using MangoPay.SDK.Core.Enumerations;
using MangoPay.SDK.Entities;
using MangoPay.SDK.Entities.POST;
using Newtonsoft.Json;
class Program
{
static async Task Main(string[] args)
{
MangoPayApi api = new MangoPayApi();
api.Config.ClientId = "your-client-id";
api.Config.ClientPassword = "your-api-key";
var userId = "user_m_01J2TZ261WZNDM0ZDRWGDYA4GN";
var cardId = "card_m_01J3049JBA2XPA7GC7GEFJRQG4";
var cardPreAuthorization = new CardPreAuthorizationPostDTO (
userId,
new Money { Amount = 5000, Currency = CurrencyIso.EUR },
SecureMode.DEFAULT,
cardId,
"https://www.mangopay.com/please-ignore/",
"MGP"
) {
IpAddress = "2001:0620:0000:0000:0211:24FF:FE80:C12C",
BrowserInfo = new BrowserInfo {
AcceptHeader = "text/html, application/xhtml+xml, application/xml;q=0.9, /;q=0.8",
JavaEnabled = true,
Language = "FR-FR",
ColorDepth = 4,
ScreenHeight = 1800,
ScreenWidth = 400,
JavascriptEnabled = true,
TimeZoneOffset = "+60",
UserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 13_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148"
}
};
var createPreauthorization = await api.CardPreAuthorizations.CreateAsync(cardPreAuthorization);
string prettyPrint = JsonConvert.SerializeObject(createPreauthorization, Formatting.Indented);
Console.WriteLine(prettyPrint);
}
}
Was this page helpful?
⌘I