Download OpenAPI specification:Download
Welcome to the Datatrans API reference. This document is meant to be used in combination with https://docs.datatrans.ch. All the parameters used in the curl and web samples are described here. Reach out to support@datatrans.ch if something is missing or unclear.
Last updated: 14.11.23 - 14:50 UTC
The following steps describe how transactions are processed with Datatrans. We separate payments in three categories: Customer-initiated payments, merchant-initiated payments and after the payment.
We have three integrations available: Redirect, Lightbox and Secure Fields.
transactionId
to the init endpoint.https://pay.sandbox.datatrans.com/v1/start/transactionId
<script src="https://pay.sandbox.datatrans.com/upp/payment/js/datatrans-2.0.0.js">
payButton.onclick = function() {
Datatrans.startPayment({
transactionId: "transactionId"
});
};
datatransTrxId
in the response.<script src="https://pay.sandbox.datatrans.com/upp/payment/js/secure-fields-2.0.0.js">
var secureFields = new SecureFields();
secureFields.init(
{{transactionId}}, {
cardNumber: "cardNumberPlaceholder",
cvv: "cvvPlaceholder",
});
redirect
property inside the data
object will indicate the URL that the customer needs to be redirected to.To retry identical requests with the same effect without accidentally performing the same operation more than needed,
you can add the header Idempotency-Key
to your requests. This is useful when API calls are disrupted or you did not
receive a response. In other words, retrying identical requests with our idempotency key will not have any side effects.
We will return the same response for any identical request that includes the same idempotency key.
If your request failed to reach our servers, no idempotent result is saved because no API endpoint processed your request. In such cases, you can simply retry your operation safely. Idempotency keys remain stored for 60 minutes. After 60 minutes have passed, sending the same request together with the previous idempotency key will create a new operation.
Please note that the idempotency key has to be unique for each request and has to be defined by yourself. We recommend
assigning a random value as your idempotency key and using UUID v4. Idempotency is only available for POST
requests.
Idempotency was implemented according to the "The Idempotency HTTP Header Field" Internet-Draft
Scenario | Condition | Expectation |
---|---|---|
First time request | Idempotency key has not been seen during the past 60 minutes. | The request is processed normally. |
Repeated request | The request was retried after the first time request completed. | The response from the first time request will be returned. |
Repeated request | The request was retried before the first time request completed. | 409 Conflict. It is recommended that clients time their retries using an exponential backoff algorithm. |
Repeated request | The request body is different than the one from the first time request. | 422 Unprocessable Entity. |
Example:
curl -i 'https://api.sandbox.datatrans.com/v1/transactions' \
-H 'Authorization: Basic MTEwMDAwNzI4MzpobDJST1NScUN2am5EVlJL' \
-H 'Content-Type: application/json; charset=UTF-8' \
-H 'Idempotency-Key: e75d621b-0e56-4b71-b889-1acec3e9d870' \
-d '{
"refno" : "58b389331dad",
"amount" : 1000,
"currency" : "CHF",
"paymentMethods" : [ "VIS", "ECA", "PAP" ],
"option" : {
"createAlias" : true
}
}'
Authentication to the APIs is performed with HTTP basic authentication. Your
merchantId
acts as the username. To get the password, login
to the dashboard
and navigate to the security settings under UPP Administration > Security
.
Create a base64 encoded value consisting of merchantId and password (most HTTP clients are able to handle the base64 encoding automatically) and submit the Authorization header with your requests. Here’s an example:
base64(merchantId:password) = MTAwMDAxMTAxMTpYMWVXNmkjJA==
Authorization: Basic MTAwMDAxMTAxMTpYMWVXNmkjJA==
All API requests must be done over HTTPS with TLS >= 1.2.
Datatrans uses HTTP response codes to indicate if an API call was successful or resulted in a failure.
HTTP 2xx
status codes indicate a successful API call whereas HTTP 4xx
status codes
indicate client errors or if something with the transaction went wrong - for example a decline.
In rare cases HTTP 5xx
status codes are returned. Those indicate errors on Datatrans side.
Here’s the payload of a sample HTTP 400
error, showing that your request has wrong values in it
{
"error" : {
"code" : "INVALID_PROPERTY",
"message" : "init.initRequest.currency The given currency does not have the right format"
}
}
After each authorization Datatrans tries to call the configured Webhook (POST) URL. The Webhook URL
can be configured within the dashboard.
It is also possible to overwrite the configured webhook URL with the init.webhook
property.
The Webhook payload contains the same information as the response of a Status API call.
If you want your webhook requests to be signed, setup a HMAC key in your merchant configuration.
To get your HMAC key, login to our dashboard and navigate to the Security settings in your
merchant configuration to view your server to server security settings.
Select the radio button Important parameters will be digitally signed (HMAC-SHA256) and sent with payment messages
.
Datatrans will use this key to sign the webhook payload and will add a Datatrans-Signature
HTTP request header:
Datatrans-Signature: t=1559303131511,s0=33819a1220fd8e38fc5bad3f57ef31095fac0deb38c001ba347e694f48ffe2fc
On your server, calculate the signature of the webhook payload and finally compare it to s0
.
timestamp
is the t
value from the Datatrans-Signature header, payload
represents all UTF-8 bytes
from the body of the payload and finally key
is the HMAC key you configured within the dashboard.
If the value of sign
is equal to s0
from the Datatrans-Signature
header,
the webhook payload is valid and was not tampered.
Java
// hex bytes of the key
// if Java version < 17, a 3rd-party library like apache-commons can be used
byte[] key = Hex.decodeHex(key);
// if Java version >= 17, the built in HexFormat class can be used
byte[] key = HexFormat.of().parseHex(key);
// Create sign with timestamp and payload
String algorithm = "HmacSha256";
SecretKeySpec macKey = new SecretKeySpec(key, algorithm);
Mac mac = Mac.getInstance(algorithm);
mac.init(macKey);
mac.update(String.valueOf(timestamp).getBytes());
byte[] result = mac.doFinal(payload.getBytes());
String sign = Hex.encodeHexString(result);
Python
# hex bytes of the key
key_hex_bytes = bytes.fromhex(key)
# Create sign with timestamp and payload
sign = hmac.new(key_hex_bytes, bytes(str(timestamp) + payload, 'utf-8'), hashlib.sha256)
avs
object to the status apiELV
object to the status apimandateId
and iban
are returned if availablePLU
CUV
MFG
support for the authorize APIinit.option.storeCustomerData
MPX
paycard number to the status APIairlineData
to the Authorize Split API3RI
MPA
and MPG
authorize.card.3D.threeDSTransactionId
MBP
(MobilePay) payment methoduniqueRefno
handling to the init
APIUNKNOWN_ERROR
VPS
(Vipps) payment methodSWP
to the authorize APIimageUrl
to the article
property for KLN
marketplace
propertyUNKNOWN_ERROR
accertify
refno
to 40 charactersMCP
properties to support static MCPcard
types PlainCard
, AliasCard
and NetworkTokenCard
for the authorize
and init
endpointwebhook.url
for mobile flowsstatusResponse.status
status.language
in the status responseqrData
to MPX
and MFX
in the status API responseKLN
train reservationsairPlus
propertiesELV
request properties to the API docs (init and authorize API)MCP
sample request/response examples in the api docsairPlus
propertiesmerchantId
to the status API responseSWH
(Swish) payment methodmessageExtensions
to init.card.3d
authorizeResponse.card
to the API docsGFT
(MFG Gift Card) payment methodCBL
(Cartes Bancaires) payment methodHPC
(Hipercard) payment methodairPlus
to the init API requestinit.language
API docsorder.article
propertycredit
apicard
object is returned in the alias
info response if the content is emptyexternalCode
for INT
transactionsinit
api if init.number
is set with plain card numberairlineData
date format issuesinit.webhook
for more information.GET /v1/multicurrency/rates
API to fetch the MCP rates.init.mcp
propertyauthorize.mcp
propertymcp
property in the status
response if available for the transactionGET /v1/aliases/{alias}
response./v1/transactions/{transactionId}/increase
to increase the amount for an authorized transaction (credit cards only).invoiceOnDelivery
when using MFX
or MPX
as payment method.MFX
and MPX
when invoiceOnDelivery=true
was used.KLN
hotel extended merchant data (EMD)ESY
marketplace
object now accepts an array of splits.debit
and credit
the Status API now also returns prepaid
in the card.info.type
property.merchantClientId
PAP.orderTransactionId
to be a stringPAP.fraudSessionId
(PayPal FraudNet)POST /v1/transactions/screen
API to check a customer's credit score before sending an actual authorization request.
Currently only INT
(Byjuno) is supported.GET /v1/aliases
API to receive more information about a particular alias.MDP
subPaymentMethod
to subtype
(subPaymentMethod
still works)subtype
(pay_now
, pay_later
, pay_over_time
, direct_debit
, direct_bank_transfer
)
from the Status APIcustomData
and firstRateAmount
transactionId
(if available) for a failed Refund API call.language
propertycard.3D.transStatusReason
and card.3D.cardholderInfo
was not returnedfailed
after it timed outoption.rememberMe
not returning the Alias from the Status APIcard.3D.transStatusReason
(if available) from the Status APIcard.3D.cardholderInfo
(if available) from the Status APIALP
KLN
SWB
Securely send all the needed parameters to the transaction initialization API. The result of this API call is a HTTP 201
status code with a transactionId
in the response body and the Location
header set. This call is required to proceed with our Redirect and Lightbox integration
currency required | string = 3 characters 3 letter ISO-4217 character code. For example |
refno required | string [ 1 .. 40 ] characters The merchant's reference number. It should be unique for each transaction. |
refno2 | string [ 0 .. 40 ] characters Optional customer's reference number. Supported by some payment methods or acquirers. |
autoSettle | boolean Whether to automatically settle the transaction after an authorization or not. If not present with the init request, the settings defined in the dashboard ('Authorisation / Settlement' or 'Direct Debit') will be used. Those settings will only be used for web transactions and not for server to server API calls. |
object (CustomerRequest) Whenever the payment method supports | |
object (BillingAddress) | |
object (ShippingAddress) The address where the article(s) should be sent to. | |
object (OrderRequest) If supported by the payment method, an order with one or more articles can be defined. | |
object (CardInitRequest) The card object to be submitted when initializing a transaction with an existing alias. The inner | |
object (BoncardRequest) Boncard specific request parameters | |
object (PayPalInitRequest) PayPal specific parameters | |
object (PfcInitRequest) | |
object (RekaRequest) Reka card specific parameters | |
object (KlarnaInitRequest) | |
object (TwintInitRequest) | |
object (ByjunoAuthorizeRequest) | |
object (AlipayRequest) Alipay+ specific parameters | |
object (ESY) | |
MFA | object (MfaAuthorizeRequest) MFA has no specific request parameters but we need an empty object here to handle it as a MFA request. |
object (SwissPassRequest) SwissPass specific parameters | |
object (SBBHalbtaxPlusInitRequest) | |
object (AirlineDataRequest) The airline data including ticket details. | |
accertify | object (Accertify) Accertify decision (Accepted, Review, Declined |
object (ThreeRIData) | |
amount | integer <int64> The amount of the transaction in the currency’s smallest unit. For example use 1000 for CHF 10.00. Can be omitted for use cases where only a registration should take place (if the payment method supports registrations) |
language | string = 2 characters Enum: "en" "de" "fr" "it" "es" "el" "fi" "hu" "ko" "nl" "no" "da" "pl" "pt" "ru" "ja" "sk" "sl" "sv" "tr" "zh" This parameter specifies the language (language code) in which the payment page should be presented to the cardholder. The ISO-639-1 two letter language codes listed above are supported |
paymentMethods | Array of strings = 3 characters [ items = 3 characters ] Items Enum: "ACC" "ALP" "APL" "AMX" "AZP" "BAC" "BON" "CBL" "CFY" "CSY" "CUP" "DEA" "DIN" "DII" "DIB" "DIS" "DNK" "ECA" "ELV" "EPS" "ESY" "GFT" "GPA" "HPC" "INT" "JCB" "JEL" "KLN" "MAU" "MDP" "MFA" "MFX" "MPA" "MFG" "MPG" "MPX" "MYO" "PAP" "PAY" "PEF" "PFC" "PSC" "REK" "SAM" "SWB" "SCX" "SWP" "TWI" "UAP" "VIS" "WEC" "SWH" "VPS" "MBP" "CUV" "GEP" "PLU" An array of payment method shortnames. For example |
object (theme) The theme (including configuration options) to be used when rendering the payment page. | |
object (RedirectRequest) The redirect object is used to customize the browser behaviour when using the payment page (Redirect or Lightbox Mode) to do a transaction. | |
object (WebhookRequest) Used to define the webhook configuration. If not set, the webhook configuration from the merchant configuration will be used. | |
object (OptionRequest) | |
object (MFXRequest) MFX specific parameters | |
object (MPXRequest) MPX specific parameters | |
object (AmazonPayRequest) Amazon Pay specific request parameters | |
object (EpsRequest) EPS specific request parameters | |
object (SwishRequest) Swish specific parameters | |
object (VippsRequest) Vipps specific parameters | |
object (MobilePayRequest) MobilePay specific parameters | |
object (WeChatRequest) WeChat specific parameters | |
object (ElvInitRequest) ELV specific payment parameters. | |
object (SwissBillingRequest) Swissbilling specific parameters. | |
object (MDPInitRequest) | |
object (PaysafecardRequest) Paysafecard specific request parameters | |
object (InitMcpRequest) | |
extensions | object (Extension) An object for additional data for customized processes. |
initRequest1
{- "currency": "CHF",
- "refno": "6Jn3iMiBK",
- "amount": 1337,
- "redirect": {
}
}
initResponse
{- "transactionId": "231114155143163663"
}
Proceed with the steps below to process Secure Fields payment transactions:
transactionId
. The success result of this API call is a HTTP 201
status code with a transactionId
in the response body.SecureFields
JavaScript library with the returned transactionId
:var secureFields = new SecureFields();
secureFields.init(
transactionId, {
cardNumber: "cardNumberPlaceholder",
cvv: "cvvPlaceholder",
});
success
event of the secureFields.submit()
call. Example success
event data:{
"event":"success",
"data": {
"transactionId":"{transactionId}",
"cardInfo":{"brand":"MASTERCARD","type":"credit","usage":"consumer","country":"CH","issuer":"DATATRANS"},
"redirect":"https://pay.sandbox.datatrans.com/upp/v1/3D2/{transactionId}"
}
}
redirect
property will indicate the URL that the browser needs to be redirected to.transactionId
to check the status and to settle, cancel or credit (refund) an transaction.client-name | string Enum: "ANDROID_SDK" "IOS_SDK" "LINK" |
amount | integer <int64> The amount of the transaction in the currency’s smallest unit. For example use 1000 for CHF 10.00. |
currency required | string = 3 characters 3 letter ISO-4217 character code. For example |
returnUrl required | string The URL where the browser will be redirected after the 3D authentication process. |
object (InitMcpRequest) | |
object (SecureFieldsThreeDSecure) Refer to the official EMVCo. specifications for parameter requirements. |
secureFieldsInitRequest1
{- "amount": 100,
- "currency": "CHF",
}
secureFieldsInitResponse
{- "transactionId": "231114155143033656"
}
An existing alias can be validated at any time with the transaction validate API. No amount will be blocked on the customers account. Only credit cards (including Apple Pay and Google Pay), PFC
, KLN
and PAP
support validation of an existing alias.
Validate an alias
refno required | string [ 1 .. 40 ] characters The merchant's reference number. It should be unique for each transaction. |
refno2 | string [ 0 .. 40 ] characters Optional customer's reference number. Supported by some payment methods or acquirers. |
currency required | string = 3 characters 3 letter ISO-4217 character code. For example |
object (CardValidateRequest) The card object to be submitted when validating with an existing credit card alias. | |
object (PfcValidateRequest) PostFinance Card specific parameters | |
object (KlarnaValidateRequest) Klarna specific parameters | |
object (PayPalValidateRequest) PayPal specific parameters for the validate request. | |
object (GooglePayValidateRequest) Google Pay specific parameters for the validate request. | |
object (ApplePayValidateRequest) Apple Pay specific parameters for the validate request. | |
object (EasyPayValidateRequest) Swisscom Pay specific parameters |
validateRequest1
{- "refno": "v7UuCOorR",
- "currency": "CHF",
- "card": {
- "alias": "AAABcH0Bq92s3kgAESIAAbGj5NIsAHWC",
- "expiryMonth": "06",
- "expiryYear": "25"
}
}
validateResponse
{- "transactionId": "231114155152864143",
- "acquirerAuthorizationCode": "155152",
- "card": {
- "masked": "424242xxxxxx4242"
}
}
Use this API to increase the authorized amount for a transaction. The transaction must be in status authorized
. The transactionId
is needed to increase the amount for an authorization. Only credit cards support increase of the authorized amount.
transactionId required | integer <int64> The transactionId received after an authorization. |
Increase authorization amount
amount required | integer <int64> The amount of the transaction in the currency’s smallest unit. For example use 1000 for CHF 10.00. |
currency required | string = 3 characters 3 letter ISO-4217 character code. For example |
refno required | string [ 1 .. 40 ] characters The merchant's reference number. It should be unique for each transaction. |
authorizeIncreaseRequest
{- "amount": 1000,
- "currency": "GBP",
- "refno": "SzJ18ea4i"
}
authorizeIncreaseResponse
{- "increasedAmount": 2000
}
Check the customer's credit score before sending an actual authorization request. No amount will be blocked on the customers account. Currently, only invoicing method INT
support screening.
Screen request
amount required | integer <int64> The amount of the transaction in the currency’s smallest unit. For example use 1000 for CHF 10.00. |
currency required | string = 3 characters 3 letter ISO-4217 character code. For example |
refno required | string [ 1 .. 40 ] characters The merchant's reference number. It should be unique for each transaction. |
object (CustomerRequest) Whenever the payment method supports | |
object (BillingAddress) | |
object (ShippingAddress) The address where the article(s) should be sent to. | |
object (ByjunoScreenRequest) |
screenRequest
{- "amount": 2000,
- "currency": "CHF",
- "refno": "pGe0OsYYc",
- "customer": {
- "id": "10067822",
- "title": "Herr",
- "firstName": "Markus",
- "lastName": "Uberland",
- "street": "Amstelstrasse",
- "street2": "11",
- "city": "Allschwil",
- "country": "CH",
- "zipCode": "4123",
- "phone": "0448111111",
- "cellPhone": "0448222222",
- "gender": "male",
- "birthDate": "1986-05-14",
- "language": "DE",
- "type": "P",
- "ipAddress": "213.55.184.229"
}, - "INT": {
- "deliveryMethod": "POST",
- "deviceFingerprintId": "635822543440473727",
- "paperInvoice": false,
- "repaymentType": 4,
- "riskOwner": "IJ",
- "verifiedDocument1Type": "swiss-travel-pass",
- "verifiedDocument1Number": "5000200001",
- "verifiedDocument1Issuer": "SBB"
}
}
screenResponse
{- "transactionId": "231114155142863654",
- "INT": {
- "subtypes": [
- "BYJUNO-INVOICE",
- "INSTALLMENT"
]
}
}
The Settlement request is often also referred to as “Capture” or “Clearing”. It can be used for the settlement of previously authorized transactions. Only after settling a transaction the funds will be credited to your bank account. The transactionId
is needed to settle an authorization. This API call is not needed if autoSettle
was set to true
when initializing a transaction.
transactionId required | integer <int64> The transactionId received after an authorization. |
amount required | integer <int64> The amount of the transaction in the currency’s smallest unit. For example use 1000 for CHF 10.00. |
currency required | string = 3 characters 3 letter ISO-4217 character code. For example |
refno required | string [ 1 .. 40 ] characters The merchant's reference number. Most payment methods require you to have a unique reference for a transaction. In case you must change the reference number in settlement, ensure first it is supported by the dedicated payment method. |
refno2 | string [ 0 .. 40 ] characters Optional customer's reference number. Supported by some payment methods or acquirers. |
object (AirlineDataRequest) The airline data including ticket details. | |
object (MarketPlaceSettle) | |
object (SettleMcpRequest) | |
object (MultiplePartialCapture) Can be used to do the settlement in partial steps. | |
extensions | object (Extension) An object for additional data for customized processes. |
settleRequest1
{- "amount": 1000,
- "currency": "CHF",
- "refno": "cgge8BSI2"
}
settleErrorResponse
{- "error": {
- "code": "INVALID_PROPERTY",
- "message": "settle transactionId length must be 18 digits"
}
}
Cancel requests can be used to release a blocked amount from an authorization. The transaction must either be in status authorized
or settled
. The transactionId
is needed to cancel an authorization
transactionId required | integer <int64> The transactionId received after an authorization. |
{ }
cancelErrorResponse
{- "error": {
- "code": "TRANSACTION_NOT_FOUND",
- "message": "transactionId not found"
}
}
Refund requests can be used to credit a transaction which is in status settled
or transmitted
. The previously settled amount must not be exceeded.
transactionId required | integer <int64> The transactionId received after an authorization. |
Credit a transaction
amount | integer <int64> The amount of the transaction in the currency’s smallest unit. For example use 1000 for CHF 10.00. |
currency required | string = 3 characters 3 letter ISO-4217 character code. For example |
refno required | string [ 1 .. 40 ] characters The merchant's reference number. It should be unique for each transaction. |
refno2 | string [ 0 .. 40 ] characters Optional customer's reference number. Supported by some payment methods or acquirers. |
object (MarketPlaceCredit) | |
extensions | object (Extension) An object for additional data for customized processes. |
object (CreditMcpRequest) |
creditRequest
{- "amount": 1000,
- "currency": "CHF",
- "refno": "XWDGoj7x6"
}
authorizeResponse
{- "transactionId": "231114155145593753",
- "acquirerAuthorizationCode": "155145"
}
Use this API to update the amount of a Secure Fields transaction. This action is only allowed before the 3D process. At least one property must be updated.
transactionId required | integer <int64> The |
amount | integer <int64> The newly to be used amount in the currency’s smallest unit. For example use 1000 for CHF 10.00. |
currency required | string = 3 characters 3 letter ISO-4217 character code. For example |
secureFieldsUpdateRequest
{- "amount": 1338
}
secureFieldsUpdateErrorResponse
{- "error": {
- "code": "INVALID_TRANSACTION_STATUS"
}
}
The API endpoint status can be used to check the status of any transaction, see its history, and retrieve the card information.
transactionId required | integer <int64> The transactionId received after an authorization. |
curl -i -X GET https://api.sandbox.datatrans.com/v1/transactions/231114155152954158 \ --user {merchantId}:{password} \
statusResponse
{- "transactionId": "231114155152954158",
- "merchantId": "1000001111",
- "type": "payment",
- "status": "authorized",
- "currency": "CHF",
- "refno": "krwV9r27g",
- "paymentMethod": "VIS",
- "detail": {
- "authorize": {
- "amount": 1000,
- "acquirerAuthorizationCode": "155153"
}
}, - "card": {
- "masked": "424242xxxxxx4242",
- "expiryMonth": "06",
- "expiryYear": "25",
- "info": {
- "brand": "VISA CREDIT",
- "type": "credit",
- "usage": "consumer",
- "country": "GB",
- "issuer": "DATATRANS"
}
}, - "history": [
- {
- "action": "authorize",
- "amount": 1000,
- "source": "api",
- "date": "2023-11-14T14:51:52Z",
- "success": true,
- "ip": "193.16.220.10"
}
]
}
client-name | string Enum: "ANDROID_SDK" "IOS_SDK" "LINK" |
object (ApplePaySettings) | |
object (GooglePaySettings) |
{- "applePay": {
- "merchantName": "string",
- "currency": "str",
- "country": "st"
}, - "googlePay": {
- "currency": "str"
}
}
{- "transactionId": "string"
}
The aliases API gives you complete control over a Datatrans alias, be it a card number alias or an alias of a non-card payment method such as PayPal, Postfinance etc.
Note that the operations of this API apply only to the most recent Datatrans alias format. Please reach out to support@datatrans.ch if you are not sure which alias format you have in use.
By default, only the merchant that created the alias has access to it. Contact us, if you have a use case where you need to share the alias.
Get alias info.
alias required | string Example: AAABeCBPbiHssdexyrAAAYkaznYWAPYt An alias (token) received from a previous transaction if |
curl -i -X GET https://api.sandbox.datatrans.com/v1/aliases/7LHXscqwAAEAAAGLzlDs_bJiB53XALQB \ --user {merchantId}:{password} \
aliasInfoResponse
{- "alias": "7LHXscqwAAEAAAGLzlDs_bJiB53XALQB",
- "fingerprint": "F-e5-sH1dWRS1onhDWSmmIgP",
- "type": "CARD",
- "masked": "424242xxxxxx4242",
- "dateCreated": "2023-11-14T14:51:31Z",
- "card": {
- "panRemoved": false,
- "last4": "4242",
- "cardInfo": {
- "brand": "VISA CREDIT",
- "type": "credit",
- "usage": "consumer",
- "country": "GB",
- "issuer": "DATATRANS"
}
}
}
Delete an alias with immediate effect. The alias will no longer be recognized if used later with any API call.
alias required | string Example: AAABeCBPbiHssdexyrAAAYkaznYWAPYt An alias (token) received from a previous transaction if |
curl -i -X DELETE https://api.sandbox.datatrans.com/v1/aliases/7LHXscqwAAEAAAGLzlD1Q0nR3MRcAI57 \ --user {merchantId}:{password} \
deleteErrorResponse
{- "error": {
- "code": "ALIAS_NOT_FOUND"
}
}
Update an existing card alias with expiration year and month.
alias required | string |
removePlain | boolean Remove the pan from storage. |
expiryMonth | string = 2 characters \d{2} The expiry month of the card. |
expiryYear | string = 2 characters \d{2} The expiry year of card. |
aliasPatchRequest
{- "removePlain": false,
- "expiryMonth": "05",
- "expiryYear": "25"
}
aliasPatchResponse
{- "alias": "7LHXscqwAAEAAAGLzlDrGgBg6UMNAO9q",
- "fingerprint": "F-fnlcOgqPqxSdNfyYY0vXHk",
- "type": "CARD",
- "masked": "434343xxxxxx4345",
- "dateCreated": "2023-11-14T14:51:31Z",
- "card": {
- "panRemoved": false,
- "last4": "4345",
- "expiryMonth": "05",
- "expiryYear": "25",
- "cardInfo": {
- "brand": "VISA",
- "type": "credit",
- "usage": "consumer",
- "country": "UA",
- "issuer": "JSC UKRSIBBANK"
}, - "networkToken": {
- "expiryMonth": "07",
- "expiryYear": "27",
- "status": "ACTIVE",
- "paymentAccountReference": "V0010013021088278311713045741"
}
}
}
Convert a legacy (numeric or masked) alias to the most recent alias format. Currently, only credit card aliases can be converted.
expiryMonth | string = 2 characters \d{2} The expiry month of the credit card behind alias. |
expiryYear | string = 2 characters \d{2} The expiry year of the credit card behind the alias |
legacyAlias required | string The legacy alias |
type | string Legacy alias type. |
aliasConvertRequest
{- "legacyAlias": "424242SKMPRI4242",
- "type": "CARD"
}
aliasConvertResponse
{- "alias": "7LHXscqwAAEAAAGLzlD0onrW7OFfADvg"
}
Tokenize cards, CVVs and custom fields. It supports single and bulk tokenization for batches of requests.
required | Array of objects (TokenizeRequest) List of tokenization requests. |
bulkTokenizeRequest
{- "requests": [
- {
- "type": "CARD",
- "pan": "4242424242424242",
- "expiryMonth": "05",
- "expiryYear": "21",
- "networkTokenOptions": {
- "createNetworkToken": true
}
}, - {
- "type": "CVV",
- "cvv": "123"
}, - {
- "type": "CVV",
- "cvv": "invalid-value"
}, - {
- "type": "CUSTOM",
- "custom": "customValue"
}
]
}
bulkTokenizationResponse
{- "overview": {
- "total": 4,
- "successful": 2,
- "failed": 2
}, - "responses": [
- {
- "error": {
- "code": "SERVICE_NOT_ALLOWED",
- "message": "Merchant is not configured to use Network Tokens."
}, - "type": "CARD"
}, - {
- "type": "CVV",
- "alias": "DhdS0dUER3WCNh0wTQ4kmLAv",
- "expiryDate": "2025-07-06T14:51:31Z"
}, - {
- "error": {
- "code": "INVALID_CVV",
- "message": "Not numeric."
}, - "type": "CVV"
}, - {
- "type": "CUSTOM",
- "alias": "wp5fsOPeRImXlgdfRgqJRg=="
}
]
}
Detokenize cards, CVVs and custom fields. It supports single and bulk detokenization for batches of requests.
required | Array of objects (DetokenizeRequest) List of detokenization requests. |
bulkDetokenizeRequest
{- "requests": [
- {
- "type": "CARD",
- "alias": "AAABcH0Bq92s3kgAESIAAbGj5NIsAHWC"
}, - {
- "type": "CARD",
- "alias": "invalid-value"
}, - {
- "type": "CVV",
- "alias": "kfljVK9ST_a6PhT9H7rWYluV"
}, - {
- "type": "CUSTOM",
- "alias": "3nY_mOkEQrC352dGqRYm4g=="
}
]
}
bulkTokenizationResponse
{- "overview": {
- "total": 4,
- "successful": 3,
- "failed": 1
}, - "responses": [
- {
- "type": "CARD",
- "pan": "4242424242424242"
}, - {
- "error": {
- "code": "INVALID_ALIAS"
}, - "type": "CARD"
}, - {
- "type": "CVV",
- "cvv": "123"
}, - {
- "type": "CUSTOM",
- "custom": "customValue"
}
]
}
If you are a merchant using our reconciliation services, you can use this API to confirm a sale. The matching is based on the transactionId
. The status of the transaction will change to compensated
date | string <date-time> The date when the transaction happened. |
transactionId | string The transactionId received after an authorization. |
currency | string 3 letter ISO-4217 character code. For example |
amount | integer <int64> The amount of the transaction in the currency’s smallest unit. For example use 1000 for CHF 10.00. |
type | string Enum: "payment" "credit" "card_check" The type of the transaction |
refno | string The merchant's reference number. It should be unique for each transaction. |
saleReportRequest
{- "date": "2023-11-14T14:51:53.931+00:00",
- "transactionId": "231114155152004075",
- "currency": "CHF",
- "amount": 1000,
- "type": "payment",
- "refno": "oyPDRXpa5"
}
saleReportResponse
{- "transactionId": "231114155152004075",
- "saleDate": "2023-11-14T14:51:53.931+00:00",
- "reportedDate": "2023-11-14T14:51:54.055+00:00",
- "matchResult": "MATCHED"
}
If you are a merchant using our reconciliation services, you can use this API to confirm multiple sales with a single API call. The matching is based on the transactionId
. The status of the transaction will change to compensated
Array of objects (SaleReportRequest) A list of sale objects. |
bulkSaleRequest
{- "sales": [
- {
- "date": "2023-11-14T14:51:54.616+00:00",
- "transactionId": "231114155154224191",
- "currency": "CHF",
- "amount": 1000,
- "type": "payment",
- "refno": "U23ynwwnL"
}, - {
- "date": "2023-11-14T14:51:55.051+00:00",
- "transactionId": "231114155154704216",
- "currency": "CHF",
- "amount": 1000,
- "type": "payment",
- "refno": "JJklUZ0vg"
}
]
}
bulkSaleResponse
{- "sales": [
- {
- "transactionId": "231114155154224191",
- "saleDate": "2023-11-14T14:51:54.616+00:00",
- "reportedDate": "2023-11-14T14:51:55.189+00:00",
- "matchResult": "MATCHED"
}, - {
- "transactionId": "231114155154704216",
- "saleDate": "2023-11-14T14:51:55.051+00:00",
- "reportedDate": "2023-11-14T14:51:55.252+00:00",
- "matchResult": "MATCHED"
}
]
}
To get current rates call this endpoint. It will return all available rates for the configured merchant. Note: These rates are Acquirer specific, need a specific acquiring contract and need to be set up by Datatrans.
curl -i -X GET https://api.sandbox.datatrans.com/v1/multicurrency/rates \ --user {merchantId}:{password} \
authorizeResponse
{- "requestId": "b872ea36-dc1e-484f-adfc-9c314f935a1a",
- "reportDetail": {
- "transactionDate": "2023-11-14T14:51:30Z",
- "retrievalReferenceNumber": "331830244854"
}, - "rates": [
- {
- "currency": "AED",
- "currencyCode": "784",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 4.028018899464676
}, - {
- "currency": "AFN",
- "currencyCode": "971",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 85.37157980108422
}, - {
- "currency": "ALL",
- "currencyCode": "008",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 111.35857461024499
}, - {
- "currency": "AMD",
- "currencyCode": "051",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 449.55943175687827
}, - {
- "currency": "ANG",
- "currencyCode": "532",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 1.9626981368302858
}, - {
- "currency": "AOA",
- "currencyCode": "973",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 905.1412020275163
}, - {
- "currency": "ARS",
- "currencyCode": "032",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 383.78876266502914
}, - {
- "currency": "AUD",
- "currencyCode": "036",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 1.7237497901334629
}, - {
- "currency": "AWG",
- "currencyCode": "533",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 1.9626981368302858
}, - {
- "currency": "AZN",
- "currencyCode": "944",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 1.8694974846846093
}, - {
- "currency": "BAM",
- "currencyCode": "977",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 2.04727778591002
}, - {
- "currency": "BBD",
- "currencyCode": "052",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 2.1819911542078607
}, - {
- "currency": "BDT",
- "currencyCode": "050",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 121.16071969467498
}, - {
- "currency": "BGN",
- "currencyCode": "975",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 2.04727778591002
}, - {
- "currency": "BHD",
- "currencyCode": "048",
- "decimalPlaces": 3,
- "roundUnit": 0,
- "value": 0.4133725695553087
}, - {
- "currency": "BIF",
- "currencyCode": "108",
- "decimalPlaces": 0,
- "roundUnit": 0,
- "value": 3092.1459492888066
}, - {
- "currency": "BMD",
- "currencyCode": "060",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 1.0964789648185953
}, - {
- "currency": "BND",
- "currencyCode": "096",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 1.5068894230979326
}, - {
- "currency": "BOB",
- "currencyCode": "068",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 7.631502230688102
}, - {
- "currency": "BRL",
- "currencyCode": "986",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 5.57207676315832
}, - {
- "currency": "BSD",
- "currencyCode": "044",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 1.0964789648185953
}, - {
- "currency": "BTN",
- "currencyCode": "064",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 91.19677528202602
}, - {
- "currency": "BWP",
- "currencyCode": "072",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 14.979231295808361
}, - {
- "currency": "BYN",
- "currencyCode": "933",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 3.6225439604765963
}, - {
- "currency": "BZD",
- "currencyCode": "084",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 2.173767968094303
}, - {
- "currency": "CAD",
- "currencyCode": "124",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 1.5002011019577173
}, - {
- "currency": "CDF",
- "currencyCode": "976",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 2781.641168289291
}, - {
- "currency": "CHF",
- "currencyCode": "756",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 1.0085440829071646
}, - {
- "currency": "CLP",
- "currencyCode": "152",
- "decimalPlaces": 0,
- "roundUnit": 0,
- "value": 996.412913511359
}, - {
- "currency": "CNY",
- "currencyCode": "156",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 8.011215701982776
}, - {
- "currency": "COP",
- "currencyCode": "170",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 4444.444444444444
}, - {
- "currency": "CRC",
- "currencyCode": "188",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 594.6717411988583
}, - {
- "currency": "CUP",
- "currencyCode": "192",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 26.315443217852398
}, - {
- "currency": "CVE",
- "currencyCode": "132",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 115.42012927054479
}, - {
- "currency": "CZK",
- "currencyCode": "203",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 25.598361704850888
}, - {
- "currency": "DJF",
- "currencyCode": "262",
- "decimalPlaces": 0,
- "roundUnit": 0,
- "value": 194.68130670093058
}, - {
- "currency": "DKK",
- "currencyCode": "208",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 7.806900988197527
}, - {
- "currency": "DOP",
- "currencyCode": "214",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 62.40483263023888
}, - {
- "currency": "DZD",
- "currencyCode": "012",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 150.87052291723242
}, - {
- "currency": "EGP",
- "currencyCode": "818",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 33.94548355341322
}, - {
- "currency": "ERN",
- "currencyCode": "232",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 16.447179062083165
}, - {
- "currency": "ETB",
- "currencyCode": "230",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 61.76652254478073
}, - {
- "currency": "FJD",
- "currencyCode": "242",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 2.5511375522345414
}, - {
- "currency": "FKP",
- "currencyCode": "238",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 0.9073057437988147
}, - {
- "currency": "GBP",
- "currencyCode": "826",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 0.9059908554718995
}, - {
- "currency": "GEL",
- "currencyCode": "981",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 2.9659737558778185
}, - {
- "currency": "GHS",
- "currencyCode": "936",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 12.730128905285296
}, - {
- "currency": "GIP",
- "currencyCode": "292",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 0.9073057437988147
}, - {
- "currency": "GMD",
- "currencyCode": "270",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 66.49024588092927
}, - {
- "currency": "GNF",
- "currencyCode": "324",
- "decimalPlaces": 0,
- "roundUnit": 0,
- "value": 9302.32558139535
}, - {
- "currency": "GTQ",
- "currencyCode": "320",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 8.629274295290314
}, - {
- "currency": "GYD",
- "currencyCode": "328",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 229.4051524397238
}, - {
- "currency": "HKD",
- "currencyCode": "344",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 8.58959679573681
}, - {
- "currency": "HNL",
- "currencyCode": "340",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 26.9865472062177
}, - {
- "currency": "HTG",
- "currencyCode": "332",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 147.8218451122707
}, - {
- "currency": "HUF",
- "currencyCode": "348",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 407.49796251018745
}, - {
- "currency": "IDR",
- "currencyCode": "360",
- "decimalPlaces": 0,
- "roundUnit": 0,
- "value": 17035.775127768313
}, - {
- "currency": "ILS",
- "currencyCode": "376",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 4.21923837684212
}, - {
- "currency": "INR",
- "currencyCode": "356",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 91.19677528202602
}, - {
- "currency": "IQD",
- "currencyCode": "368",
- "decimalPlaces": 3,
- "roundUnit": 0,
- "value": 1436.3688595231256
}, - {
- "currency": "IRR",
- "currencyCode": "364",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 46082.949308755764
}, - {
- "currency": "ISK",
- "currencyCode": "352",
- "decimalPlaces": 0,
- "roundUnit": 0,
- "value": 152.1792062332603
}, - {
- "currency": "JMD",
- "currencyCode": "388",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 167.75990202821723
}, - {
- "currency": "JOD",
- "currencyCode": "400",
- "decimalPlaces": 3,
- "roundUnit": 0,
- "value": 0.778500494386739
}, - {
- "currency": "JPY",
- "currencyCode": "392",
- "decimalPlaces": 0,
- "roundUnit": 0,
- "value": 164.1793495214172
}, - {
- "currency": "KES",
- "currencyCode": "404",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 162.7736632212908
}, - {
- "currency": "KGS",
- "currencyCode": "417",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 97.26869504318731
}, - {
- "currency": "KHR",
- "currencyCode": "116",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 4522.840343735866
}, - {
- "currency": "KMF",
- "currencyCode": "174",
- "decimalPlaces": 0,
- "roundUnit": 0,
- "value": 514.9595756733096
}, - {
- "currency": "KRW",
- "currencyCode": "410",
- "decimalPlaces": 0,
- "roundUnit": 0,
- "value": 1480.3849000740192
}, - {
- "currency": "KWD",
- "currencyCode": "414",
- "decimalPlaces": 3,
- "roundUnit": 0,
- "value": 0.33915217856606394
}, - {
- "currency": "KYD",
- "currencyCode": "136",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 0.913732504078445
}, - {
- "currency": "KZT",
- "currencyCode": "398",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 524.2463958060289
}, - {
- "currency": "LAK",
- "currencyCode": "418",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 22421.52466367713
}, - {
- "currency": "LBP",
- "currencyCode": "422",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 93457.94392523365
}, - {
- "currency": "LKR",
- "currencyCode": "144",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 355.9478892290169
}, - {
- "currency": "LRD",
- "currencyCode": "430",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 206.13881387726497
}, - {
- "currency": "LSL",
- "currencyCode": "426",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 21.093397344763144
}, - {
- "currency": "LYD",
- "currencyCode": "434",
- "decimalPlaces": 3,
- "roundUnit": 0,
- "value": 5.349381477766633
}, - {
- "currency": "MAD",
- "currencyCode": "504",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 11.27967965709774
}, - {
- "currency": "MDL",
- "currencyCode": "498",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 19.89012693879012
}, - {
- "currency": "MGA",
- "currencyCode": "969",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 4948.045522018802
}, - {
- "currency": "MKD",
- "currencyCode": "807",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 64.0426267723797
}, - {
- "currency": "MMK",
- "currencyCode": "104",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 2309.4688221709007
}, - {
- "currency": "MNT",
- "currencyCode": "496",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 3782.148260211801
}, - {
- "currency": "MOP",
- "currencyCode": "446",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 8.852706892186424
}, - {
- "currency": "MRU",
- "currencyCode": "929",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 41.512723649798666
}, - {
- "currency": "MUR",
- "currencyCode": "480",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 49.24555805066383
}, - {
- "currency": "MVR",
- "currencyCode": "462",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 16.995443521591863
}, - {
- "currency": "MWK",
- "currencyCode": "454",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 1294.1633234114145
}, - {
- "currency": "MXN",
- "currencyCode": "484",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 19.289267644375347
}, - {
- "currency": "MYR",
- "currencyCode": "458",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 5.174829010712413
}, - {
- "currency": "MZN",
- "currencyCode": "943",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 69.35197514425211
}, - {
- "currency": "NAD",
- "currencyCode": "516",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 21.093397344763144
}, - {
- "currency": "NGN",
- "currencyCode": "566",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 851.7162081594413
}, - {
- "currency": "NIO",
- "currencyCode": "558",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 40.0594482211602
}, - {
- "currency": "NOK",
- "currencyCode": "578",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 11.914662421869602
}, - {
- "currency": "NPR",
- "currencyCode": "524",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 145.91510659098537
}, - {
- "currency": "NZD",
- "currencyCode": "554",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 1.8452996711306926
}, - {
- "currency": "OMR",
- "currencyCode": "512",
- "decimalPlaces": 3,
- "roundUnit": 0,
- "value": 0.42223262509580983
}, - {
- "currency": "PAB",
- "currencyCode": "590",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 1.0964789648185953
}, - {
- "currency": "PEN",
- "currencyCode": "604",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 4.171437748591618
}, - {
- "currency": "PGK",
- "currencyCode": "598",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 4.098987263216877
}, - {
- "currency": "PHP",
- "currencyCode": "608",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 62.18673432583361
}, - {
- "currency": "PKR",
- "currencyCode": "586",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 314.70292044310173
}, - {
- "currency": "PLN",
- "currencyCode": "985",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 4.837655536672574
}, - {
- "currency": "PYG",
- "currencyCode": "600",
- "decimalPlaces": 0,
- "roundUnit": 0,
- "value": 8000
}, - {
- "currency": "QAR",
- "currencyCode": "634",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 3.991187458092532
}, - {
- "currency": "RON",
- "currencyCode": "946",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 5.210906218278608
}, - {
- "currency": "RSD",
- "currencyCode": "941",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 122.59709690074538
}, - {
- "currency": "RUB",
- "currencyCode": "643",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 109.47506705347857
}, - {
- "currency": "RWF",
- "currencyCode": "646",
- "decimalPlaces": 0,
- "roundUnit": 0,
- "value": 1339.7642015005358
}, - {
- "currency": "SAR",
- "currencyCode": "682",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 4.112562480105479
}, - {
- "currency": "SBD",
- "currencyCode": "090",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 9.534597239543407
}, - {
- "currency": "SCR",
- "currencyCode": "690",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 15.28185081551597
}, - {
- "currency": "SEK",
- "currencyCode": "752",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 12.135171245469031
}, - {
- "currency": "SGD",
- "currencyCode": "702",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 1.5047054396154937
}, - {
- "currency": "SHP",
- "currencyCode": "654",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 0.9073057437988147
}, - {
- "currency": "SLE",
- "currencyCode": "925",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 24.63193727723492
}, - {
- "currency": "SOS",
- "currencyCode": "706",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 622.8201295465869
}, - {
- "currency": "SRD",
- "currencyCode": "968",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 42.52695145548491
}, - {
- "currency": "SZL",
- "currencyCode": "748",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 21.093397344763144
}, - {
- "currency": "THB",
- "currencyCode": "764",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 40.56959714390036
}, - {
- "currency": "TJS",
- "currencyCode": "972",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 12.018494058657462
}, - {
- "currency": "TMT",
- "currencyCode": "934",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 3.8278068733631345
}, - {
- "currency": "TND",
- "currencyCode": "788",
- "decimalPlaces": 3,
- "roundUnit": 0,
- "value": 3.4846131678653154
}, - {
- "currency": "TOP",
- "currencyCode": "776",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 2.6766237068561716
}, - {
- "currency": "TRY",
- "currencyCode": "949",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 30.509663936051744
}, - {
- "currency": "TTD",
- "currencyCode": "780",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 7.351665446290203
}, - {
- "currency": "TWD",
- "currencyCode": "901",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 35.45357531580272
}, - {
- "currency": "TZS",
- "currencyCode": "834",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 2734.4818156959254
}, - {
- "currency": "UAH",
- "currencyCode": "980",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 40.09671327241306
}, - {
- "currency": "UGX",
- "currencyCode": "800",
- "decimalPlaces": 0,
- "roundUnit": 0,
- "value": 4111.8421052631575
}, - {
- "currency": "USD",
- "currencyCode": "840",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 1.0964789648185953
}, - {
- "currency": "UYU",
- "currencyCode": "858",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 42.45671537867145
}, - {
- "currency": "UZS",
- "currencyCode": "860",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 13368.98395721925
}, - {
- "currency": "VES",
- "currencyCode": "928",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 37.79360910070107
}, - {
- "currency": "VND",
- "currencyCode": "704",
- "decimalPlaces": 0,
- "roundUnit": 0,
- "value": 26737.9679144385
}, - {
- "currency": "VUV",
- "currencyCode": "548",
- "decimalPlaces": 0,
- "roundUnit": 0,
- "value": 138.44087882269875
}, - {
- "currency": "WST",
- "currencyCode": "882",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 3.12476173691756
}, - {
- "currency": "XAF",
- "currencyCode": "950",
- "decimalPlaces": 0,
- "roundUnit": 0,
- "value": 686.6245536940401
}, - {
- "currency": "XCD",
- "currencyCode": "951",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 2.9475240503224884
}, - {
- "currency": "XOF",
- "currencyCode": "952",
- "decimalPlaces": 0,
- "roundUnit": 0,
- "value": 686.6245536940401
}, - {
- "currency": "XPF",
- "currencyCode": "953",
- "decimalPlaces": 0,
- "roundUnit": 0,
- "value": 124.91100091185032
}, - {
- "currency": "YER",
- "currencyCode": "886",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 274.66490881125026
}, - {
- "currency": "ZAR",
- "currencyCode": "710",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 21.093397344763144
}, - {
- "currency": "ZMW",
- "currencyCode": "967",
- "decimalPlaces": 2,
- "roundUnit": 0,
- "value": 23.144558598550688
}
]
}