Download OpenAPI specification:Download
This is Payall's public API for Machine to Machine communication.
Payall platform supports different flows depending on customer needs. Please consult the flows relevant to your operational model with our team first.
This is the most common scenario in which Payall takes care of the onboarding process of the payers. In this scenario all payments are made on behalf of payers that have been previously onboarded to Payall platform.
In this flow payers are being onboarded by the client and all the KYB/KYC data is sent to Payall platform via API. In this scenario all payments are made on behalf of payers that have been previously onboarded to Payall platform.
In this scenario payments can be made on behalf of payers that have not been onboarded to Payall platform. For this scenario the API consumer is responsible for providing all the relevant payer details required for selected payment channel with each payment call.
Our api supports payments with both implicit and explicit exchange rates. Use implicit exchange rates when the exact exchange rate of the payment does not need to be approved. Those would be usually cases of automated systems that make scheduled or unattended payments without user interactions.
For implicit exchange rate you only need one call to single-payment endpoint. Our system will immediately process the payment using the best exchange rate available at that moment in time. Response from the single-payment call will contain exchange rate information that you can check at any time.
Explicit exchange rate flow is best suited for scenarios in which the payer wants or needs to accept the exchange rate of the payment before the payment is processed. Please note that depending on the payment processor, the payment channel and your contract agreement you may expect different exchange rate expiration times ranging from 60 seconds to few hours. Take that into account when designing user flows on your side.
Refer to exchange-rates API endpoint for more information on how to obtain exchange rates and single-payment endpoint on how to initiate a payment with specific exchange rate.
In case of unfortunate situation of delaying the payment due to insufficient KYC/KYB/KYT data or any other circumstances that would lead to expiry of the exchange rate used during payment initiation (applies to explicit exchange rate flow) our system will emit an event when the payment is ready to process allow you to reinitialise exchange rate approval process on your side.
After new exchange rate is approved you can PATCH your payment by providing new exchange rate ID.
In some cases in order to process a payment there may be a compliance requirement to provide additional documents. This is usually applies to payments of bigger amounts or payments to certain countries. Consult your contract agreement with Payall to find out in which scenarios this applies for your payments.
For payments that require additional documents you will have to first upload the documents and then initiate the payment. This is a two-step process. Consult documents API endpoint for more information on how to upload documents.
In some cases payment processors or KYT rules may trigger a request for additional documents to be provided for your payment. In such cases you will receive a notification with a list of documents that are required to process the payment. Each document will have a unique case UUID that you need to use when calling document upload endpoint.
It is the same endpoint as in the case of mandatory document upload. Consult documents API endpoint for more information on how to upload documents.
Additional documents can also be provided through Payall UI either by the payer or by the backoffice users. Consult your contract agreement with Payall to find out which UI options are available for your organisation.
In case of failed document checks the process of requesting new documents will repeat. Payments that did not receive additional documents in time will be cancelled automatically. Consult your program configuration for more information on how long your payment will wait for documents.
This API uses OAuth 2 with the Client Credentials flow (defined in OAuth 2.0 RFC 6749, section 4.4). In order to gain access token you need to pass along Client ID and Client Secret to authenticate /v2/oauth/token endpoint.
/v2/oauth/token endpoint).The Authorization header for the token request requires you to apply base64 encoding to the {client_id}:{client_secret} string. Please note that when generating the encoded string via command line you may end up with unexpected newline characters that will not let you obtain the access token. In that case make sure to use the following command for testing:
echo -n "{client_id}:{client_secret}" | base64
Depending on your PCI compliance level and the way you handle card data, Payall offers two ways to tokenize sensitive payment card data like PAN (Primary Account Number) / card number.
For customers who want to limit their PCI exposure and associated compliance requirements, Payall offers a PCI Vault iframe solution. This solution is suitable for customers who do not have a PCI DSS certification and want to avoid handling sensitive card data themselves.
For customers who have a valid PCI DSS certification and want to handle card data on their side, Payall offers a Tokenization API. This API allows you to tokenize sensitive payment card data prior to initiating a payment. Tokens are used to represent payment card data in a secure way. The token can be used to make payments without exposing the actual card data.
When using Payall PCI Vault iframe your systems do not have access to raw PAN anywhere throughout the process. All sensitive operations related to collecting, transmitting and storing of sensitive data are managed by Payall. In this case the PCI exposure to you is minimal, however we still encourage you to get yourself familiar with PCI DSS and fill in the PCI Self Assessment Questionnaire A when working with cards and using our Vault.
Embed the following script in your HTML page to initialise the Payall Vault client:
<script src="https://static.sandbox.payall.com/vault/js/dist/vault-client.js"></script>
Prepare the HTML element to hold the iframe:
<div id="payall-vault"></div>
Initialise the client with the following JavaScript code. Use clientId value provided by our integration team. The provided ID below is just a sample and will not work:
const clientId = 'f0396c8e-a87b-402d-9692-520cbc000000';
const vault = PayallVault.init(clientId, 'payall-vault');
Invoking PayallVault.init() will immediately generate an iframe inside the provided element ID. The frame is generated with the following style:
iframe.style.width = "100vw";
iframe.style.height = '100vh';
iframe.style.border = "none";
Attach event handlers to handle the events emitted by the UI within the iframe. Key events are PanTokenized , Cancel and Error:
vault.addEventHandler('PanTokenized', function (event) {
// Put your busines logic here.
console.log('Received PanTokenized event:', event);
// You should store the token in your system for later use.
});
valut.addEventHandler('Error', function (event) {
// Handle the error event here.
console.error('Error event:', event);
});
vault.addEventHandler('Cancel', function (event) {
// This means that the user clicked "Cancel" button and you should react accordingly.
console.log('Received Cancel event:', event);
document.getElementById('payall-vault').innerHTML = '';
});
PayallVault class exposes the list available events under Events property:
console.log(PayallVault.Events);
// Set {"PanTokenized", "Error", "Cancel"}
Putting things together
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Demo iframe launcher</title>
<script src="https://static.sandbox.payall.com/vault/js/dist/vault-client.js"></script>
<!--
This is just a demo implementation of the client-side vault initialization.
This part is not on Payall to implement - it should be a part
of the client-side application.
This is just meant for testing only.
-->
<script>
window.onload = function() {
console.log("Available events from the vault:");
console.log(PayallVault.Events);
document.getElementById('launch-iframe').addEventListener('click', function () {
const clientId = document.getElementById('clientId').value;
let vault = PayallVault.init(clientId, 'payall-vault');
vault.addEventHandler('PanTokenized', function (event) {
console.log('Received PanTokenized event:', event);
document.getElementById('iframe-messages').innerText
+= "\nPanTokenized event:" + JSON.stringify(event.message);
});
vault.addEventHandler('Cancel', function (event) {
console.log('Received Cancel event:', event);
document.getElementById('iframe-messages').innerHTML = '';
document.getElementById('payall-vault').innerHTML = '';
});
vault.addEventHandler('Error', function (event) {
console.log('Received Error event:', event);
document.getElementById('iframe-messages').innerText
+= "\nError event:" + JSON.stringify(event.message);
if(event.message.message === 'Configuration error') {
document.getElementById('payall-vault').innerHTML = '';
}
});
});
}
</script>
</head>
<body>
<label for="clientId">Client ID:</label>
<input type="text" id="clientId" value="f0396c8e-a87b-402d-9692-520cbc000000">
<button id="launch-iframe">Launch iframe</button>
<div id="iframe-messages"></div>
<div id="payall-vault"></div>
</body>
</html>
Translations can be provided to the iframe to localize the UI. The vault supports any language that is supported by the browser. The default language is English. List of available translation keys is available under static field PayallVault.TranslationKeys.
console.log("Available translation keys:", PayallVault.TranslationKeys);
All keys are optional. If a key is not provided, the default value will be used.
[
'panLabel',
'expiryLabel',
'cancelLabel',
'encryptLabel',
'expiryDateInPast',
'cardNumberEmpty',
'invalidCardNumber',
'expiryDateRequired',
'invalidNumericValues',
'invalidMonth',
'genericError',
]
The vault expect to receive translations as Map<string, string>.
The following example shows how to provide translations:
const es_translations = new Map([
['panLabel', "Número de Tarjeta de Crédito"],
['expiryLabel', "Fecha de Expiración"],
['cancelLabel', "Cancelar"],
['encryptLabel', "Encriptar"],
['expiryDateInPast', "La fecha de expiración no puede ser en el pasado"],
['cardNumberEmpty', "El número de tarjeta no puede estar vacío"],
['invalidCardNumber', "Número de tarjeta inválido"],
['expiryDateRequired', "La fecha de expiración es requerida"],
['invalidNumericValues',"Valores numéricos inválidos"],
['invalidMonth', "Mes inválido"],
['genericError', "Error genérico"],
]);
// This is just a sample client ID. Replace it with your own.
const clientId = 'f0396c8e-a87b-402d-9692-520cbc000000';
const vault = PayallVault.init(
clientId, 'payall-vault',
{
translations: es_translations
}
);
Some languages require RTL (right-to-left) text direction.
The vault supports RTL text direction via the dir option.
Default value is ltr (left-to-right).
// This is just a sample client ID. Replace it with your own.
const clientId = 'f0396c8e-a87b-402d-9692-520cbc000000';
const vault = PayallVault.init(
clientId, 'payall-vault',
{
translations: he_translations,
dir: 'rtl',
}
);
It is possible to hide the Cancel button by setting the hideCancelButton option to true.
// This is just a sample client ID. Replace it with your own.
const clientId = 'f0396c8e-a87b-402d-9692-520cbc000000';
const vault = PayallVault.init(
clientId, 'payall-vault',
{
hideCancelButton: true
}
);
If you collect card numbers on your side, you need to interact with the Payall Vault API to tokenize sensitive payment card data prior to initiating a payment. Tokens are used to represent payment card data in a secure way. The token can be used to make payments without exposing the actual card data. See PCI Vault Tokenization API for more information.
Please note that in order to use the Vault API and encrypt sensitive PAN data on your side you need to have a valid PCI DSS certification. Otherwise, you can use the Payall PCI Vault iframe solution instead.
Payall is certified PCI DSS Level 1 Service Provider.
The Payall Vault API uses asymmetric encryption to secure the PAN data. You are required to encrypt the PAN using a public key and algorithm provided by Payall in response to the GET Configuration request.
Note that keys may be rotated without prior notice and you should always fetch the latest configuration before encrypting the PAN.
At the time of writing the algorithm used is RSAES-OAEP with SHA-256 hash.
Prior to sending the PAN to the Payall Vault API you should validate and sanitize the PAN data. The PAN should be a valid card number - we suggest to verify it using Luhn algorithm.
Before encrypting the PAN you should remove all non-numeric characters including any leading and trailing spaces. Expected pattern match is ^[1-9][0-9]{7,19}$.
When interacting with our API you may encounter the following error responses:
{
"code": "PUB4004",
"message": "The payer type is missing or incorrect.",
"timestamp": "2025-02-03T15:07:57.735569007Z"
}
In some cases, when the error is caused by a 3rd party system, the error code will be PUB9001 and will contain additional information from the external system:
{
"code": "PUB9001",
"message": "External system error.",
"timestamp": "2025-02-03T15:07:57.735569007Z",
"data": {
"code": "150008",
"message": "Internal Configuration Error."
}
}
The following table lists the error codes that the API can return:
| Error code | Message |
|---|---|
| PUB1 | General or unhandled error. Please contact administrator. |
| PUB2 | Security error. Please contact administrator. |
| PUB3 | Not found error. See error message for details. |
| PUB4 | External system client error. Please contact administrator. |
| PUB5 | External system server error. Please contact administrator. |
| PUB20 | Data validation error. Please contact administrator. |
| PUB21 | Data validation error. |
| PUB6 | External 500 error. Please contact administrator. |
| PUB7 | Unauthorized access to external service. Please contact administrator. |
| PUB8 | Forbidden access to external service. Please contact administrator. |
| PUB9 | Mapping payload exception. Please contact administrator. |
| PUB10 | Method not allowed. Please contact administrator. |
| PUB1001 | System configuration error. Please contact administrator. |
| PUB1010 | The payment channel was not found. Please contact administrator. |
| PUB1011 | Payment channel misconfiguration. Please contact administrator. |
| PUB1021 | Payment schema misconfiguration. Please contact administrator. |
| PUB2001 | Access control error. Please contact administrator. |
| PUB2002 | Access denied. Please contact administrator. |
| PUB4001 | General input validation error. See error message for details. |
| PUB4002 | Payload unreadable. See error message for details. |
| PUB4003 | Data binding error. See error message for details. |
| PUB4004 | The payer type is missing or incorrect |
| PUB4005 | The business payer's legal name is missing |
| PUB4006 | The business payer's incorporation country is missing |
| PUB4007 | The business payer's incorporation country is incorrect |
| PUB4008 | The business payer's registration number is missing |
| PUB4009 | The business payer's registration address is missing |
| PUB4010 | The business payer's registration date is incorrect |
| PUB4011 | The business payer's phone number is incorrect |
| PUB4012 | The person's first name is missing |
| PUB4013 | The person's last name is missing |
| PUB4014 | The person's phone number is missing |
| PUB4015 | The person's phone number is incorrect |
| PUB4016 | The person's registration address is missing |
| PUB4017 | The person's government ID is missing |
| PUB4018 | The person's date of birth is missing |
| PUB4019 | The person's date of birth is incorrect |
| PUB4020 | The person's email is missing |
| PUB4021 | The recipient type is missing or incorrect |
| PUB4022 | The business recipient's legal name is missing |
| PUB4023 | The business recipient's trade name is missing |
| PUB4024 | The business recipient's phone number is missing |
| PUB4025 | The business recipient's phone number is incorrect |
| PUB4026 | The business recipient's email is missing |
| PUB4027 | The business recipient's registration number is missing |
| PUB4028 | The business recipient's registration address is missing |
| PUB4029 | The business recipient's incorporation country is missing |
| PUB4030 | The business recipient's incorporation country is incorrect |
| PUB4031 | The person's first name is missing |
| PUB4032 | The person's last name is missing |
| PUB4033 | The person's mobile number is missing |
| PUB4034 | The person's mobile number is incorrect |
| PUB4035 | The person's email is missing |
| PUB4036 | The person's date of birth is incorrect |
| PUB4037 | The person's registration address is missing |
| PUB4038 | The city in the registration address is missing |
| PUB4039 | The city in the registration address is incorrect |
| PUB4040 | The country in the registration address is missing |
| PUB4041 | The country in the registration address is incorrect |
| PUB4042 | The street address in the registration address is missing |
| PUB4043 | The street address in the registration address is incorrect |
| PUB4044 | The unit number in the registration address is incorrect |
| PUB4045 | The building number in the registration address is incorrect |
| PUB4046 | The payer type is incorrect, there is a mismatch between Person and Business type |
| PUB4047 | The recipient type is incorrect, there is a mismatch between Person and Business type |
| PUB4048 | The payment instrument category is missing or incorrect |
| PUB4049 | The payment instrument recipient ID is missing |
| PUB4050 | The payment instrument currency is missing |
| PUB4051 | The payment instrument currency is incorrect |
| PUB4052 | The payment instrument country is incorrect |
| PUB4053 | The payment instrument mobile number is missing |
| PUB4054 | The payment instrument mobile number is incorrect |
| PUB4055 | The payment instrument bank country is incorrect |
| PUB4056 | The payment instrument token is missing |
| PUB4057 | The payment instrument recipient ID is incorrect |
| PUB4058 | The payment instrument bank account type is incorrect |
| PUB4059 | The person's email is duplicated |
| PUB4060 | The person's email is incorrect |
| PUB4095 | The business payer's email is incorrect |
| PUB4061 | The business recipient's email is incorrect |
| PUB4062 | The person's email is incorrect |
| PUB4063 | The payer must be at least 18 years old. Please check the date of birth |
| PUB4064 | The recipient must be at least 18 years old. Please check the date of birth |
| PUB4065 | The instrument category ID conflicts with the existing payment instrument: only one of recipient_instrument_id or payment_instrument_category should be provided |
| PUB4066 | The payment type conflicts with the one defined by the payer and recipient: only one of source_account_id or recipient_instrument_id should be provided when payment_type is present |
| PUB4067 | The source currency conflicts with a part of the source amount object: only one of source_currency or source_amount object should be provided |
| PUB4068 | The source account object currency conflicts with the one associated with source_account_id: only one of source_account_id or source_currency should be provided |
| PUB4069 | The recipient instrument ID is incorrect |
| PUB4070 | The source account ID is missing |
| PUB4071 | The source account ID is incorrect |
| PUB4072 | The source currency is missing |
| PUB4073 | The source currency is incorrect |
| PUB4074 | The source amount is missing |
| PUB4075 | The source amount is incorrect |
| PUB4076 | The source currency is incorrect |
| PUB4077 | The target currency is missing |
| PUB4078 | The target currency is incorrect |
| PUB4079 | The target amount is missing |
| PUB4080 | The target amount is incorrect |
| PUB4081 | The target currency is incorrect |
| PUB4082 | The destination country is missing |
| PUB4083 | The destination country is incorrect |
| PUB4084 | The payment instrument category is missing |
| PUB4085 | The payment instrument category is incorrect |
| PUB4086 | The payment type is missing |
| PUB4087 | The payment type is incorrect |
| PUB4088 | The source account is not found |
| PUB4089 | The payment instrument is not found |
| PUB4090 | The payment program is not found |
| PUB4091 | The source account currency does not match the one in the request: source_account_id was provided together with source_amount but the source_amount currency is different from the one of the source account |
| PUB4092 | The target currency [%s] does not match the recipient instrument currency [%s] |
| PUB4093 | The source currency cannot be found in the request |
| PUB4094 | The target currency cannot be found in the request |
| PUB4096 | The recipient ID is incorrect |
| PUB4097 | The payment instrument ID is incorrect |
| PUB4098 | The source account ID is missing |
| PUB4099 | The source account ID is incorrect |
| PUB4100 | The currency is missing |
| PUB4101 | The currency is incorrect |
| PUB4102 | The amount is missing |
| PUB4103 | The amount is incorrect |
| PUB4104 | The operation type is missing |
| PUB4105 | The operation type is incorrect |
| PUB4106 | The currency of the target_amount object is missing |
| PUB4107 | The currency of the target_amount object is incorrect |
| PUB4108 | The amount of the target_amount object is missing |
| PUB4109 | The amount of the target_amount object is incorrect |
| PUB4110 | The target currency of the operation object is incorrect |
| PUB4111 | The currency of the source_amount object is missing |
| PUB4112 | The currency of the source_amount object is incorrect |
| PUB4113 | The amount of the source_amount object is missing |
| PUB4114 | The amount of the source_amount object is incorrect |
| PUB4115 | The source currency of the operation object is incorrect |
| PUB4116 | The exchange rate ID is incorrect |
| PUB4117 | The KYT object is missing |
| PUB4118 | The destination country is missing |
| PUB4119 | The destination country is incorrect |
| PUB4120 | The payment purpose is missing |
| PUB4121 | The payment purpose is incorrect |
| PUB4122 | The commercial activity is missing |
| PUB4123 | The payment description is missing |
| PUB4124 | The beneficiary bank account type is incorrect |
| PUB4125 | The source of funds is incorrect |
| PUB4126 | The relationship with the sender is incorrect |
| PUB4127 | The recipient and recipient_id can't be provided at the same time |
| PUB4128 | The amount and exchange_rate_id can't be provided at the same time |
| PUB4129 | The amount and operation object can't be provided at the same time |
| PUB4130 | The exchange_rate_id and operation can't be provided at the same time |
| PUB4131 | The amount, exchange_rate_id, or operation is required |
| PUB4132 | The payment instrument ID is required when exchange_rate_id is provided |
| PUB4133 | For a FORWARD payment, the source amount is required |
| PUB4134 | For a FORWARD payment, the target currency is required |
| PUB4135 | For a REVERSE payment, the target amount is required |
| PUB4136 | For a REVERSE payment, the source currency is required |
| PUB4137 | The payment instrument or its ID is required |
| PUB4138 | The recipient information or recipient_id is required |
| PUB4139 | The payment instrument ID conflicts with the data provided. If you provide the payment_instrument_id, there is no need to provide the recipient, recipient_id, or payment instrument |
| PUB4140 | The source account was not found |
| PUB4141 | The payment program was not found |
| PUB4142 | The exchange rate was not found |
| PUB4143 | The exchange rate has not been confirmed |
| PUB4144 | The exchange rate has been canceled, please request a new rate and try again |
| PUB4145 | Duplicate reference |
| PUB4146 | The payer date of birth cannot be in the future. Please check the date of birth |
| PUB4147 | The recipient date of birth cannot be in the future. Please check the date of birth |
| PUB4219 | The payer's identity document expiry date cannot be in the past. Please check the expiry date |
| PUB4220 | The recipient's identity document expiry date cannot be in the past. Please check the expiry date |
| PUB4221 | The payer's identity document issue date cannot be in the future. Please check the issue date |
| PUB4222 | The recipient's identity document issue date cannot be in the future. Please check the issue date |
| PUB5001 | General internal error. See error message for details. |
| PUB5002 | The operation not allowed for this account |
| PUB5003 | The operation not allowed for this entity type |
| PUB5011 | The operation allowed for expired exchange rates only |
| PUB5012 | The exchange rate is incorrect |
| PUB5013 | The exchange rate state is incorrect for the operation |
| PUB5014 | The exchange rate has been expired, please request a new rate and try again |
| PUB5021 | The payer was not found |
| PUB5022 | The recipient was not found |
| PUB5031 | The operation is not allowed for this payment state |
| PUB5041 | The payment instrument ID is incorrect |
| PUB5045 | Validation error |
| PUB5046 | Payment instrument validation error |
| PUB5047 | Exchange rate validation error |
| PUB5048 | The amount is lower than the defined payer limit |
| PUB5049 | The amount is lower than the limit allowed for the selected payment method |
| PUB5050 | The amount is greater than the limit allowed for the selected payment method |
| PUB5051 | The amount exceeds the payer's maximum allowed for 30 calendar days by %s %s |
| PUB5052 | The amount is lower than the defined recipient limit |
| PUB5053 | The amount exceeds the recipient maximum allowed for 30 calendar days by %s %s |
| PUB5054 | Single payment validation error |
| PUB5055 | Insufficient funds in the source account |
| PUB9001 | External system error. |
Our mission is to always provide backwards compatible APIs. We commit not to deploy breaking changes within major versions unless such change is mandatory in order to fix critical security or compliance issue.
However, please note that as with every product this API is evolving. New endpoints will be published and new parameters added. Therefore, when integrating with our APIs you should always be ready to accept new fields in responses that may not be documented yet.
identity_document.issue_date from a date-time to a date
(YYYY-MM-DD) on payer and recipient payloads.identity_document.expiry_date from a date-time to a date
(YYYY-MM-DD) on payer and recipient payloads.identity_document to the PersonPayer schema (/v2/payers),
exposing structured identity document details (type, number, country issuing,
issue/expiry dates, etc.) on both the create request and the GET response.government_id on PersonPayer in favour of identity_document.
government_id is still accepted; when identity_document is omitted it is
used as the identity document number./v2/payers (POST, PATCH).
The POST endpoint now returns the created payer entity.account_details to the BusinessPayer entity./v2/exchange-rates/{id} (PATCH).
This allows updating the exchange_rate_id for a payment.For any questions or issues, please contact us through our customer support portal or email us at support@payallps.com.
Provides information about the fields required to make a payment based on supplied parameters. Different payment channels will yield various results based on payment processors and compliance requirements.
Data provided by this endpoint can be used to build UI for customers to provide relevant payment data or to just collect it from internal system to execute the payment swiftly by avoiding holdups due to missing data.
Please note that response from this endpoint will not include base fields required by Recipient entities (like first or last name of a person).
Sample response for B2P payment of 100 PLN to Poland from EUR account:
{
"dob": {
"title": "Date of birth",
"data_type": "DATE",
},
"registration_address": {
"city": {
"mask": "^[a-zA-Z\/\\\\-:().,='+0-9\\\\s]{1,35}$",
"title": "City",
"data_type": "STRING",
"max_length": 255,
"min_length": 1,
},
"street": {
"mask": "^[a-zA-Z\/\\-:().,='+0-9\\s]{1,35}$",
"title": "Street name",
"data_type": "STRING",
"max_length": 255,
"min_length": 1,
},
"country": {
"title": "Country of residence",
"data_type": "COUNTRY",
}
}
}
Sample response for B2B payment of 100 PLN to Poland from EUR account:
{
"registration_address": {
"city": {
"mask": "^[a-zA-Z\/\\\\-:().,='+0-9\\\\s]{1,35}$",
"title": "City",
"data_type": "STRING",
"max_length": 255,
"min_length": 1,
},
"street": {
"mask": "^[a-zA-Z\/\\-:().,='+0-9\\s]{1,35}$",
"title": "Street name",
"data_type": "STRING",
"max_length": 255,
"min_length": 1,
},
"country": {
"title": "Country of residence",
"data_type": "COUNTRY",
}
}
}
| recipient_country required | string <iso-3166-alpha-2> Example: recipient_country=IT |
| payment_type required | string Enum: "B2P" "B2B" "P2B" "P2P" |
| payer_currency required | string <iso-4217> = 3 characters Example: payer_currency=USD |
| instrument_category required | string Enum: "BankAccount" "MobileWallet" "CashPickup" "Card" |
| amount required | integer Example: amount=100023 Amounts are always in the smallest currency unit. Example: 1000.23 USD is represented as 100023 cents. |
| recipient_currency required | string <iso-4217> = 3 characters Example: recipient_currency=EUR |
{- "recipient": {
- "type": "Person",
- "registration_address": {
- "city": {
- "title": "i18n.city",
- "description": null,
- "mask": "^[\\p{L}/:().,='+0-9\\s-]{1,35}$",
- "required": true,
- "data_type": "STRING",
- "min_length": 1,
- "max_length": 255,
- "data_values": null,
- "placeholder": null
}, - "street": {
- "title": "i18n.streetAddress",
- "description": null,
- "mask": "^[\\p{L}\\/:()#.,='+0-9\\s-]{1,100}$",
- "required": true,
- "data_type": "STRING",
- "min_length": 1,
- "max_length": 255,
- "data_values": null,
- "placeholder": null
}, - "country": {
- "title": "i18n.countryOfResidence",
- "description": null,
- "mask": null,
- "required": true,
- "data_type": "COUNTRY",
- "min_length": null,
- "max_length": null,
- "data_values": null,
- "placeholder": null
}, - "postal_code": {
- "title": "i18n.postalCode",
- "description": null,
- "mask": null,
- "required": false,
- "data_type": "STRING",
- "min_length": 1,
- "max_length": 255,
- "data_values": null,
- "placeholder": null
}, - "unit_number": {
- "title": "i18n.unitNumber",
- "description": null,
- "mask": "^([a-zA-Z0-9\\s\\-.])*$",
- "required": false,
- "data_type": "STRING",
- "min_length": 1,
- "max_length": 20,
- "data_values": null,
- "placeholder": null
}, - "building_name": {
- "title": "i18n.buildingName",
- "description": null,
- "mask": null,
- "required": false,
- "data_type": "STRING",
- "min_length": 1,
- "max_length": 255,
- "data_values": null,
- "placeholder": null
}, - "state_province": {
- "title": "i18n.stateOrProvince",
- "description": null,
- "mask": null,
- "required": false,
- "data_type": "STRING",
- "min_length": 2,
- "max_length": 255,
- "data_values": null,
- "placeholder": null
}, - "building_number": {
- "title": "i18n.buildingNumber",
- "description": null,
- "mask": "^([a-zA-Z0-9\\s\\-.])*$",
- "required": false,
- "data_type": "STRING",
- "min_length": 1,
- "max_length": 20,
- "data_values": null,
- "placeholder": null
}
}
}, - "payment_instrument": {
- "category": "BankAccount",
- "iban": {
- "title": "i18n.iban",
- "description": "i18n.internationalBankAccountNumber",
- "mask": "^IT[0-9]{2}[A-Z][0-9]{10}[a-zA-Z0-9]{12}",
- "required": true,
- "data_type": "IBAN",
- "min_length": null,
- "max_length": null,
- "data_values": null,
- "placeholder": null
}
}, - "kyt": {
- "payment_purpose": {
- "title": "i18n.purposeOfPayment",
- "description": "i18n.purposeOfPayment",
- "mask": null,
- "required": true,
- "data_type": "SELECT",
- "min_length": null,
- "max_length": null,
- "data_values": [
- {
- "key": "business_investment",
- "value": "Business/Investment"
}, - {
- "key": "salary",
- "value": "Salary"
}, - {
- "key": "payment_of_goods_and_services",
- "value": "Payment of goods and services"
}, - {
- "key": "employee_colleague",
- "value": "Employee Colleague"
}, - {
- "key": "savings",
- "value": "Savings"
}, - {
- "key": "education",
- "value": "Education"
}, - {
- "key": "payment_of_bills",
- "value": "Payment of bills"
}, - {
- "key": "wedding_expenses",
- "value": "Wedding Expenses"
}, - {
- "key": "medical_expenses",
- "value": "Medical Expenses"
}, - {
- "key": "funeral_expenses",
- "value": "Funeral Expenses"
}, - {
- "key": "purchase_of_property",
- "value": "Purchase of Property"
}, - {
- "key": "payment_of_loan",
- "value": "Payment of Loan"
}, - {
- "key": "household_maintenance",
- "value": "Household Maintenance"
}, - {
- "key": "family_maintenance",
- "value": "Family Maintenance"
}
], - "placeholder": null
}
}, - "example": {
- "recipient": {
- "type": "Person",
- "first_name": "John",
- "last_name": "Doe",
- "middle_name": "James",
- "mobile_number": "373261912905",
- "email": "user@mailinator.com",
- "registration_address": {
- "city": "",
- "street": "",
- "country": "",
- "postal_code": "",
- "unit_number": "",
- "building_name": "",
- "state_province": "",
- "building_number": ""
}
}, - "payment_instrument": {
- "category": "BankAccount",
- "currency": "",
- "iban": ""
}, - "kyt": {
- "payment_purpose": ""
}
}
}Use this method to initiate a single Payment.
All amounts should be provided in the smallest currency unit. For example, 1000.23 EUR should be provided as 100023.
Please note that this request contains mutually exclusive fields as described in the table:
| Field | recipient_id | recipient | payment_instrument | payment_instrument_id |
|---|---|---|---|---|
| recipient_id | ✗ | ✓ | ✗ | |
| recipient | ✗ | ✓ | ✗ | |
| payment_instrument | ✓ | ✓ | ✗ | |
| payment_instrument_id | ✗ | ✗ | ✗ |
✓ the two fields can be sent together, ✗ they are mutually exclusive.
At least payment_instrument_id is required or any other combination
of recipient and payment instrument information as described in the table.
If you're building a flow with explicit exchange rates then you should
either use the exchange_rate_id or carded_rate_id but not both.
Providing both will result in an error with 409 status code.
When using exchange_rate_id the operation field should not be provided.
Providing both will result in an error with 409 status code.
| end_to_end_id | string (EndToEndId) <= 35 characters End To End Identification This filed follows ISO 20022 guidelines. Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Usage: The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction. It can be included in several messages related to the transaction. If not provided, a random UUID based identifier will be generated. |
| client_payment_id | string External reference identifying the payment in your (the client) system. |
Person (object) or Business (object) [Optional] New recipient information. This recipient will be persisted for the future and linked to the payment
instrument provided via the If recipient data matches existing recipient in the system then existing recipient
will be used and it's ID will be returned in the corresponding Matching is done based on the required fields for Alternatively | |
MobileWallet (object) or BankAccount (object) or CashPickup (object) or Card (object) [Optional] New payment instrument information.
This payment instrument will be persisted and linked to the recipient
provided via the Alternatively | |
| recipient_id | string <uuid> [Optional] Id of exiting recipient. Alternatively |
| payment_instrument_id | string <uuid> [Optional] Id of existing payment instrument. When payment_instrument_id is provided then
|
| source_account_id required | string <uuid> Id of the account to use as source of funds. |
ForwardPaymentOperation (object) or ReversePaymentOperation (object) | |
| exchange_rate_id | string <uuid> [Optional] Id of the exchange rate to use for the payment. If not provided then the best available exchange rate will be used. Note that this is the ID of the exchange rate obtained from the
You can either use the Response with HTTP code 400 will be sent if provided exchange rate expired. |
| carded_rate_id | string <uuid> [Optional] Id of the carded exchange rate to use for the payment. If not provided then the best available carded exchange rate will be used. Note that this is the ID of the exchange rate obtained from the carded rates feed.
For non-carded rates use the You can either use the Response with HTTP code 400 will be sent if provided exchange rate expired. |
required | object (KYT) Transaction information required for KYT process. |
{- "end_to_end_id": "PA-ecf87cf814cd4d95a970ac7e8d7e7ef3",
- "client_payment_id": "string",
- "recipient": {
- "type": "Person",
- "external_id": "string",
- "email": "user@example.com",
- "first_name": "string",
- "last_name": "string",
- "middle_name": "string",
- "mobile_number": "string",
- "dob": "2019-08-24",
- "occupation": "general_worker",
- "registration_address": {
- "city": "string",
- "street": "string",
- "country": "string",
- "postal_code": "string",
- "unit_number": "string",
- "building_name": "string",
- "state_province": "string",
- "building_number": "string"
}, - "identity_document": {
- "type": "string",
- "type_version_number": "string",
- "country_issuing": "string",
- "number": "string",
- "national_id_number": "string",
- "national_id_number_type": "string",
- "series": "string",
- "issue_date": "2019-08-24",
- "place_of_issue": "string",
- "authority_of_issue": "string",
- "expiry_date": "2019-08-24",
- "driver_license_number": "string",
- "driver_license_serial_number": "string",
- "driver_license_version_number": "string"
}
}, - "payment_instrument": {
- "category": "BankAccount",
- "currency": "string",
- "mobile_number": "string",
- "phone_operator": "string"
}, - "recipient_id": "b6731cb5-d462-49ea-afb8-7933b670b560",
- "payment_instrument_id": "9107be81-0e98-4406-8bb9-e4d1c6795a62",
- "source_account_id": "75fca71f-6b38-4768-804d-ffb93d0aa579",
- "operation": {
- "type": "Forward",
- "source_amount": {
- "currency": "EUR",
- "value": 10023
}, - "target_currency": "PLN"
}, - "exchange_rate_id": "516fcd42-a1e5-4a7c-9b28-b7869f5f651b",
- "carded_rate_id": "7a29f3e3-7ccc-4f67-af1d-6df58596d191",
- "kyt": {
- "destination_country": "GB",
- "payment_purpose": "family_maintenance",
- "commercial_activity": "transportation",
- "payment_description": "string",
- "beneficiary_bank_account_type": "checking",
- "supporting_documents": [
- {
- "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6",
- "document_type": "invoice"
}
], - "source_of_funds": "salary",
- "relationship_with_sender": "father"
}
}{- "end_to_end_id": "PA-ecf87cf814cd4d95a970ac7e8d7e7ef3",
- "client_payment_id": "string",
- "transaction_id": "string",
- "instruction_id": "string",
- "uetr": "bb1ccd4b-5072-4731-944f-45425c2b9e97",
- "integration_id": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "initiated_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "status": "string",
- "fees": {
- "payer": {
- "currency": "EUR",
- "value": 10023
}, - "recipient": {
- "currency": "EUR",
- "value": 10023
}
}, - "exchange_rate": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source_amount": {
- "currency": "EUR",
- "value": 10023
}, - "target_amount": {
- "currency": "EUR",
- "value": 10023
}, - "expiration_date": "2019-08-24T14:15:22Z"
}, - "recipient_id": "b6731cb5-d462-49ea-afb8-7933b670b560",
- "payment_instrument_id": "9107be81-0e98-4406-8bb9-e4d1c6795a62",
- "code": "string",
- "decline_issuer": "string",
- "error": {
- "code": "00005",
- "message": "Only recipient_id or recipient values are allowed but not both.",
- "trace_id": "df570c03-5a03-4cea-8df0-c162d05127ac",
- "details": {
- "property1": "string",
- "property2": "string"
}
}
}| id required | string <uuid> |
{- "end_to_end_id": "PA-ecf87cf814cd4d95a970ac7e8d7e7ef3",
- "client_payment_id": "string",
- "transaction_id": "string",
- "instruction_id": "string",
- "uetr": "bb1ccd4b-5072-4731-944f-45425c2b9e97",
- "integration_id": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "initiated_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "status": "string",
- "fees": {
- "payer": {
- "currency": "EUR",
- "value": 10023
}, - "recipient": {
- "currency": "EUR",
- "value": 10023
}
}, - "exchange_rate": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source_amount": {
- "currency": "EUR",
- "value": 10023
}, - "target_amount": {
- "currency": "EUR",
- "value": 10023
}, - "expiration_date": "2019-08-24T14:15:22Z"
}, - "recipient_id": "b6731cb5-d462-49ea-afb8-7933b670b560",
- "payment_instrument_id": "9107be81-0e98-4406-8bb9-e4d1c6795a62",
- "code": "string",
- "decline_issuer": "string",
- "error": {
- "code": "00005",
- "message": "Only recipient_id or recipient values are allowed but not both.",
- "trace_id": "df570c03-5a03-4cea-8df0-c162d05127ac",
- "details": {
- "property1": "string",
- "property2": "string"
}
}
}Update Payment after it has been stopped due to insufficient KYC/B/T information.
This call allows updating only KY related information. If additional recipient
information is required please use PATCH Recipient operation.
This operation is allowed only for transactions in KYT pending status.
| id required | string <uuid> |
Array of objects (SupportingDocument) Documents that will be considered as proof for the payment. This field may be required depending on your KYT settings. Consult the discovery endpoint for more information. This field can be updated only for payments with pending KYT for which a request for additional documents was issued. | |
| exchange_rate_id | string <uuid> New exchange rate ID in case previous one expired.
New exchange rate must use the same parameters as original one.
Use This field can be updated only for payments with expired exchange rate. |
{- "supporting_documents": [
- {
- "document_id": "b792e8ae-2cb4-4209-85b9-32be4c2fcdd6",
- "document_type": "invoice"
}
], - "exchange_rate_id": "516fcd42-a1e5-4a7c-9b28-b7869f5f651b"
}{- "end_to_end_id": "PA-ecf87cf814cd4d95a970ac7e8d7e7ef3",
- "client_payment_id": "string",
- "transaction_id": "string",
- "instruction_id": "string",
- "uetr": "bb1ccd4b-5072-4731-944f-45425c2b9e97",
- "integration_id": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "initiated_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z",
- "status": "string",
- "fees": {
- "payer": {
- "currency": "EUR",
- "value": 10023
}, - "recipient": {
- "currency": "EUR",
- "value": 10023
}
}, - "exchange_rate": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source_amount": {
- "currency": "EUR",
- "value": 10023
}, - "target_amount": {
- "currency": "EUR",
- "value": 10023
}, - "expiration_date": "2019-08-24T14:15:22Z"
}, - "recipient_id": "b6731cb5-d462-49ea-afb8-7933b670b560",
- "payment_instrument_id": "9107be81-0e98-4406-8bb9-e4d1c6795a62",
- "code": "string",
- "decline_issuer": "string",
- "error": {
- "code": "00005",
- "message": "Only recipient_id or recipient values are allowed but not both.",
- "trace_id": "df570c03-5a03-4cea-8df0-c162d05127ac",
- "details": {
- "property1": "string",
- "property2": "string"
}
}
}| recipient_id | string <uuid> ID of the recipient to get payment instruments belonging to this recipient. |
| page_number | integer >= 1 Default: 1 Page number. |
| page_size | integer [ 1 .. 100 ] Default: 20 Page size. |
{- "pagination": {
- "pageNumber": 0,
- "totalPages": 0,
- "totalElements": 0,
- "pageSize": 0,
- "offset": 0
}, - "accounts": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "category": "BankAccount",
- "currency": "string",
- "mobile_number": "string",
- "phone_operator": "string"
}
]
}| recipient_id | string <uuid> ID of the recipient to get payment instruments belonging to this recipient. |
| page_number | integer >= 1 Default: 1 Page number. |
| page_size | integer [ 1 .. 100 ] Default: 20 Page size. |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "category": "BankAccount",
- "currency": "string",
- "mobile_number": "string",
- "phone_operator": "string"
}
]Abstract class. Use it's implementations instead.
| recipient_id required | string <uuid> ID of an existing recipient that this instrument belongs to. It is required for new payment instrument creation. |
| category required | string (PaymentInstrumentCategory) Enum: "BankAccount" "MobileWallet" "CashPickup" "Card" |
| currency | string |
| mobile_number required | string |
| phone_operator | string |
| country | string If a country is provided, pre-validation of the request is performed. |
{- "recipient_id": "b6731cb5-d462-49ea-afb8-7933b670b560",
- "category": "BankAccount",
- "currency": "string",
- "mobile_number": "string",
- "phone_operator": "string",
- "country": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}| id required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "category": "BankAccount",
- "currency": "string",
- "mobile_number": "string",
- "phone_operator": "string"
}| id required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source_amount": {
- "currency": "EUR",
- "value": 10023
}, - "target_amount": {
- "currency": "EUR",
- "value": 10023
}, - "expiration_date": "2019-08-24T14:15:22Z"
}| id required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source_amount": {
- "currency": "EUR",
- "value": 10023
}, - "target_amount": {
- "currency": "EUR",
- "value": 10023
}, - "expiration_date": "2019-08-24T14:15:22Z"
}The exchange rate can be later used to initiate a new payment. Obtaining the exchange rate before payment is optional.
Use either source_amount and target_currency or just target_amount
to receive rate in the currency of the source account referenced by the source_account_id.
source_amount represents a value in the currency from which the exchange is made.
target_amount represents a value in the currency to which the exchange is made.
Examples:
source_amount) to target_currency GBPsource_account_id's currency) for the target_amount being 10 GBPsource_currency and source_account_id are mutually exclusive.
Also there is no need to provide source_currency if you're providing source_amount
as it is already contains currency. Providing both will result in an error with 409 status code.
recipient_instrument_id and payment_instrument_category are mutually exclusive.
Providing both will result in an error with 409 status code.
This is because instrument category is already part of existing payment instrument.
payment_type is not needed when providing source_account_id and recipient_instrument_id and payment_type.
Providing both will result in an error with 409 status code.
This is because payment type is defined by payer and recipient types.
| source_account_id | string <uuid> ID of the account to use as source of funds. Provide either source or target amount to receive the opposite value. |
| source_currency | string <iso-4217> = 3 characters Currency of the source amount. This field is required only if both |
object (Amount) | |
object (Amount) | |
| recipient_instrument_id | string Represents recipient's payment instrument id of already existent entity. This field is for backward compatibility and will be removed in the future.
Please use |
| payment_instrument_category | string (PaymentInstrumentCategory) Enum: "BankAccount" "MobileWallet" "CashPickup" "Card" |
| payment_type | string (PaymentType) Enum: "B2B" "B2P" "P2B" "P2P" |
| target_currency | string <iso-4217> = 3 characters |
| destination_country required | string <iso-3166-alpha-2> Destination country for the payment. 3166-1 alpha-2 value.
Hint: It is |
{- "source_account_id": "75fca71f-6b38-4768-804d-ffb93d0aa579",
- "source_currency": "EUR",
- "source_amount": {
- "currency": "EUR",
- "value": 10023
}, - "target_amount": {
- "currency": "EUR",
- "value": 10023
}, - "recipient_instrument_id": "string",
- "payment_instrument_category": "BankAccount",
- "payment_type": "B2B",
- "target_currency": "GBP",
- "destination_country": "GB"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "source_amount": {
- "currency": "EUR",
- "value": 10023
}, - "target_amount": {
- "currency": "EUR",
- "value": 10023
}, - "expiration_date": "2019-08-24T14:15:22Z"
}Confirm the exchange rate to lock it for future use. This operation is required if you want to use the exchange rate for a payment after exchange rate quote expires. This is valid only for quoted rates program configurations.
This operation will block funds on the source account. The funds will be release automatically if the payment is not initiated within the timeframe configured for your program.
If needed you can cancel the quote to unblock funds earlier.
| exchange_rate_id | string <uuid> ID of the exchange rate to confirm. |
{- "exchange_rate_id": "516fcd42-a1e5-4a7c-9b28-b7869f5f651b"
}Cancel the exchange rate to unblock funds on the source account. This operation is allowed only for exchange rates that have been confirmed.
| exchange_rate_id | string <uuid> ID of the exchange rate to cancel. |
{- "exchange_rate_id": "516fcd42-a1e5-4a7c-9b28-b7869f5f651b"
}{- "rates": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "from_currency": "USD",
- "to_currency": "EUR",
- "valid_from": "2023-03-01T00:00:00Z",
- "valid_to": "2023-03-01T04:00:00Z",
- "payment_instrument_category": "BankAccount",
- "rate": 0.8783,
- "tiers": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "from_amount": 100023,
- "rate": 0.8801
}
]
}
]
}| page_number | integer >= 1 Default: 1 Page number. |
| page_size | integer [ 1 .. 100 ] Default: 20 Page size. |
[- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "owner_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
- "owner_name": "John Doe vs Trade Company",
- "created": "2023-10-27T08:57:09.374902",
- "number": "CC002200MONE00012398064447EUR",
- "name": "Digital Account",
- "currency": "EUR",
- "balance": {
- "currency": "EUR",
- "value": 10023
}
}
]| page_number | integer >= 1 Default: 1 Page number. |
| page_size | integer [ 1 .. 100 ] Default: 20 Page size. |
{- "pagination": {
- "pageNumber": 0,
- "totalPages": 0,
- "totalElements": 0,
- "pageSize": 0,
- "offset": 0
}, - "accounts": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "owner_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
- "owner_name": "John Doe vs Trade Company",
- "created": "2023-10-27T08:57:09.374902",
- "number": "CC002200MONE00012398064447EUR",
- "name": "Digital Account",
- "currency": "EUR",
- "balance": {
- "currency": "EUR",
- "value": 10023
}
}
]
}| page_number | integer >= 1 Default: 1 Page number. |
| page_size | integer [ 1 .. 100 ] Default: 20 Page size. |
| id | string <uuid> ID of the recipient to get. |
| external_id | string External ID of the recipient to get. |
{- "pagination": {
- "pageNumber": 0,
- "totalPages": 0,
- "totalElements": 0,
- "pageSize": 0,
- "offset": 0
}, - "recipients": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "Person",
- "external_id": "string",
- "email": "user@example.com",
- "first_name": "string",
- "last_name": "string",
- "middle_name": "string",
- "mobile_number": "string",
- "dob": "2019-08-24",
- "occupation": "general_worker",
- "registration_address": {
- "city": "string",
- "street": "string",
- "country": "string",
- "postal_code": "string",
- "unit_number": "string",
- "building_name": "string",
- "state_province": "string",
- "building_number": "string"
}, - "identity_document": {
- "type": "string",
- "type_version_number": "string",
- "country_issuing": "string",
- "number": "string",
- "national_id_number": "string",
- "national_id_number_type": "string",
- "series": "string",
- "issue_date": "2019-08-24",
- "place_of_issue": "string",
- "authority_of_issue": "string",
- "expiry_date": "2019-08-24",
- "driver_license_number": "string",
- "driver_license_serial_number": "string",
- "driver_license_version_number": "string"
}
}
]
}| page_number | integer >= 1 Default: 1 Page number. |
| page_size | integer [ 1 .. 100 ] Default: 20 Page size. |
| id | string <uuid> ID of the recipient to get. |
| external_id | string External ID of the recipient to get. |
[- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "Person",
- "external_id": "string",
- "email": "user@example.com",
- "first_name": "string",
- "last_name": "string",
- "middle_name": "string",
- "mobile_number": "string",
- "dob": "2019-08-24",
- "occupation": "general_worker",
- "registration_address": {
- "city": "string",
- "street": "string",
- "country": "string",
- "postal_code": "string",
- "unit_number": "string",
- "building_name": "string",
- "state_province": "string",
- "building_number": "string"
}, - "identity_document": {
- "type": "string",
- "type_version_number": "string",
- "country_issuing": "string",
- "number": "string",
- "national_id_number": "string",
- "national_id_number_type": "string",
- "series": "string",
- "issue_date": "2019-08-24",
- "place_of_issue": "string",
- "authority_of_issue": "string",
- "expiry_date": "2019-08-24",
- "driver_license_number": "string",
- "driver_license_serial_number": "string",
- "driver_license_version_number": "string"
}
}
]Identity representing a natural person.
| type required | string (Type) Enum: "Person" "Business" |
| external_id | string ID from external system. |
string <email> | |
| first_name required | string |
| last_name required | string |
| middle_name | string |
| mobile_number | string |
| dob | string <date> |
string | |
object (Address) | |
object (IdentityDocument) |
{- "type": "Person",
- "external_id": "string",
- "email": "user@example.com",
- "first_name": "string",
- "last_name": "string",
- "middle_name": "string",
- "mobile_number": "string",
- "dob": "2019-08-24",
- "occupation": "general_worker",
- "registration_address": {
- "city": "string",
- "street": "string",
- "country": "string",
- "postal_code": "string",
- "unit_number": "string",
- "building_name": "string",
- "state_province": "string",
- "building_number": "string"
}, - "identity_document": {
- "type": "string",
- "type_version_number": "string",
- "country_issuing": "string",
- "number": "string",
- "national_id_number": "string",
- "national_id_number_type": "string",
- "series": "string",
- "issue_date": "2019-08-24",
- "place_of_issue": "string",
- "authority_of_issue": "string",
- "expiry_date": "2019-08-24",
- "driver_license_number": "string",
- "driver_license_serial_number": "string",
- "driver_license_version_number": "string"
}
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}| id required | string <uuid> |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "Person",
- "external_id": "string",
- "email": "user@example.com",
- "first_name": "string",
- "last_name": "string",
- "middle_name": "string",
- "mobile_number": "string",
- "dob": "2019-08-24",
- "occupation": "general_worker",
- "registration_address": {
- "city": "string",
- "street": "string",
- "country": "string",
- "postal_code": "string",
- "unit_number": "string",
- "building_name": "string",
- "state_province": "string",
- "building_number": "string"
}, - "identity_document": {
- "type": "string",
- "type_version_number": "string",
- "country_issuing": "string",
- "number": "string",
- "national_id_number": "string",
- "national_id_number_type": "string",
- "series": "string",
- "issue_date": "2019-08-24",
- "place_of_issue": "string",
- "authority_of_issue": "string",
- "expiry_date": "2019-08-24",
- "driver_license_number": "string",
- "driver_license_serial_number": "string",
- "driver_license_version_number": "string"
}
}| id required | string <uuid> |
Person update request.
| type required | string Value: "Person" |
object (Address) | |
object (IdentityDocument) |
{- "type": "Person",
- "registration_address": {
- "city": "string",
- "street": "string",
- "country": "string",
- "postal_code": "string",
- "unit_number": "string",
- "building_name": "string",
- "state_province": "string",
- "building_number": "string"
}, - "identity_document": {
- "type": "string",
- "type_version_number": "string",
- "country_issuing": "string",
- "number": "string",
- "national_id_number": "string",
- "national_id_number_type": "string",
- "series": "string",
- "issue_date": "2019-08-24",
- "place_of_issue": "string",
- "authority_of_issue": "string",
- "expiry_date": "2019-08-24",
- "driver_license_number": "string",
- "driver_license_serial_number": "string",
- "driver_license_version_number": "string"
}
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "type": "Person",
- "external_id": "string",
- "email": "user@example.com",
- "first_name": "string",
- "last_name": "string",
- "middle_name": "string",
- "mobile_number": "string",
- "dob": "2019-08-24",
- "occupation": "general_worker",
- "registration_address": {
- "city": "string",
- "street": "string",
- "country": "string",
- "postal_code": "string",
- "unit_number": "string",
- "building_name": "string",
- "state_province": "string",
- "building_number": "string"
}, - "identity_document": {
- "type": "string",
- "type_version_number": "string",
- "country_issuing": "string",
- "number": "string",
- "national_id_number": "string",
- "national_id_number_type": "string",
- "series": "string",
- "issue_date": "2019-08-24",
- "place_of_issue": "string",
- "authority_of_issue": "string",
- "expiry_date": "2019-08-24",
- "driver_license_number": "string",
- "driver_license_serial_number": "string",
- "driver_license_version_number": "string"
}
}This operation fetches amount limits for recipient.
| id required | string <uuid> The ID of the recipient for which to provide payment limits |
| payment_type required | string (PaymentType) Enum: "B2B" "B2P" "P2B" "P2P" |
| country required | string <iso-3166-alpha-2> Example: country=GB Country for the payment. ISO-3166-1 alpha-2 value.
Hint: It is |
| instrument_category required | string (PaymentInstrumentCategory) Enum: "BankAccount" "MobileWallet" "CashPickup" "Card" |
| currency required | string <iso-4217> = 3 characters Example: currency=EUR The currency for which the limit should be provided. If there is no limit set in specified currency then limit will be returned in the base currency set for this account. Currency format ISO-4217 |
{- "minimum": {
- "currency": "EUR",
- "value": 10023
}, - "maximum": {
- "currency": "EUR",
- "value": 10023
}
}Payer accounts will be created automatically however depending on configurations of your account, the payer may first be subject to KYC or KYB checks.
Base contract for person payer creation
| type required | string Enum: "Business" "Person" |
| external_id | string ID from external system. |
| first_name required | string |
| middle_name | string |
| last_name required | string |
| phone_number | string |
object (Address) | |
| nationality | string |
| government_id | string Deprecated Deprecated. Use |
object (IdentityDocument) | |
| date_of_birth | string <date> |
| source_of_income | string |
string | |
| place_of_birth | string |
string | |
| relationship_with_beneficiary | string |
| employer_name | string |
| employer_country | string <iso-3166-alpha-2> Country of registration. 3166-1 alpha-2 value.
Hint: It is |
| employer_industry | string |
{- "type": "Business",
- "external_id": "string",
- "first_name": "string",
- "middle_name": "string",
- "last_name": "string",
- "phone_number": "string",
- "registration_address": {
- "city": "string",
- "street": "string",
- "country": "string",
- "postal_code": "string",
- "unit_number": "string",
- "building_name": "string",
- "state_province": "string",
- "building_number": "string"
}, - "nationality": "string",
- "government_id": "string",
- "identity_document": {
- "type": "string",
- "type_version_number": "string",
- "country_issuing": "string",
- "number": "string",
- "national_id_number": "string",
- "national_id_number_type": "string",
- "series": "string",
- "issue_date": "2019-08-24",
- "place_of_issue": "string",
- "authority_of_issue": "string",
- "expiry_date": "2019-08-24",
- "driver_license_number": "string",
- "driver_license_serial_number": "string",
- "driver_license_version_number": "string"
}, - "date_of_birth": "2019-08-24",
- "source_of_income": "string",
- "email": "string",
- "place_of_birth": "string",
- "occupation": "general_worker",
- "relationship_with_beneficiary": "string",
- "employer_name": "string",
- "employer_country": "PL",
- "employer_industry": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "accounts": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "owner_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
- "owner_name": "John Doe vs Trade Company",
- "created": "2023-10-27T08:57:09.374902",
- "number": "CC002200MONE00012398064447EUR",
- "name": "Digital Account",
- "currency": "EUR",
- "balance": {
- "currency": "EUR",
- "value": 10023
}
}
], - "type": "Business",
- "external_id": "string",
- "first_name": "string",
- "middle_name": "string",
- "last_name": "string",
- "phone_number": "string",
- "registration_address": {
- "city": "string",
- "street": "string",
- "country": "string",
- "postal_code": "string",
- "unit_number": "string",
- "building_name": "string",
- "state_province": "string",
- "building_number": "string"
}, - "nationality": "string",
- "government_id": "string",
- "identity_document": {
- "type": "string",
- "type_version_number": "string",
- "country_issuing": "string",
- "number": "string",
- "national_id_number": "string",
- "national_id_number_type": "string",
- "series": "string",
- "issue_date": "2019-08-24",
- "place_of_issue": "string",
- "authority_of_issue": "string",
- "expiry_date": "2019-08-24",
- "driver_license_number": "string",
- "driver_license_serial_number": "string",
- "driver_license_version_number": "string"
}, - "date_of_birth": "2019-08-24",
- "source_of_income": "string",
- "email": "string",
- "place_of_birth": "string",
- "occupation": "general_worker",
- "relationship_with_beneficiary": "string",
- "employer_name": "string",
- "employer_country": "PL",
- "employer_industry": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "accounts": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "owner_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
- "owner_name": "John Doe vs Trade Company",
- "created": "2023-10-27T08:57:09.374902",
- "number": "CC002200MONE00012398064447EUR",
- "name": "Digital Account",
- "currency": "EUR",
- "balance": {
- "currency": "EUR",
- "value": 10023
}
}
], - "type": "Business",
- "external_id": "string",
- "first_name": "string",
- "middle_name": "string",
- "last_name": "string",
- "phone_number": "string",
- "registration_address": {
- "city": "string",
- "street": "string",
- "country": "string",
- "postal_code": "string",
- "unit_number": "string",
- "building_name": "string",
- "state_province": "string",
- "building_number": "string"
}, - "nationality": "string",
- "government_id": "string",
- "identity_document": {
- "type": "string",
- "type_version_number": "string",
- "country_issuing": "string",
- "number": "string",
- "national_id_number": "string",
- "national_id_number_type": "string",
- "series": "string",
- "issue_date": "2019-08-24",
- "place_of_issue": "string",
- "authority_of_issue": "string",
- "expiry_date": "2019-08-24",
- "driver_license_number": "string",
- "driver_license_serial_number": "string",
- "driver_license_version_number": "string"
}, - "date_of_birth": "2019-08-24",
- "source_of_income": "string",
- "email": "string",
- "place_of_birth": "string",
- "occupation": "general_worker",
- "relationship_with_beneficiary": "string",
- "employer_name": "string",
- "employer_country": "PL",
- "employer_industry": "string"
}| id required | string <uuid> |
Base contract for person payer creation
| type required | string Enum: "Business" "Person" |
| external_id | string ID from external system. |
| first_name required | string |
| middle_name | string |
| last_name required | string |
| phone_number | string |
object (Address) | |
| nationality | string |
| government_id | string Deprecated Deprecated. Use |
object (IdentityDocument) | |
| date_of_birth | string <date> |
| source_of_income | string |
string | |
| place_of_birth | string |
string | |
| relationship_with_beneficiary | string |
| employer_name | string |
| employer_country | string <iso-3166-alpha-2> Country of registration. 3166-1 alpha-2 value.
Hint: It is |
| employer_industry | string |
{- "type": "Business",
- "external_id": "string",
- "first_name": "string",
- "middle_name": "string",
- "last_name": "string",
- "phone_number": "string",
- "registration_address": {
- "city": "string",
- "street": "string",
- "country": "string",
- "postal_code": "string",
- "unit_number": "string",
- "building_name": "string",
- "state_province": "string",
- "building_number": "string"
}, - "nationality": "string",
- "government_id": "string",
- "identity_document": {
- "type": "string",
- "type_version_number": "string",
- "country_issuing": "string",
- "number": "string",
- "national_id_number": "string",
- "national_id_number_type": "string",
- "series": "string",
- "issue_date": "2019-08-24",
- "place_of_issue": "string",
- "authority_of_issue": "string",
- "expiry_date": "2019-08-24",
- "driver_license_number": "string",
- "driver_license_serial_number": "string",
- "driver_license_version_number": "string"
}, - "date_of_birth": "2019-08-24",
- "source_of_income": "string",
- "email": "string",
- "place_of_birth": "string",
- "occupation": "general_worker",
- "relationship_with_beneficiary": "string",
- "employer_name": "string",
- "employer_country": "PL",
- "employer_industry": "string"
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "accounts": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "owner_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
- "owner_name": "John Doe vs Trade Company",
- "created": "2023-10-27T08:57:09.374902",
- "number": "CC002200MONE00012398064447EUR",
- "name": "Digital Account",
- "currency": "EUR",
- "balance": {
- "currency": "EUR",
- "value": 10023
}
}
], - "type": "Business",
- "external_id": "string",
- "first_name": "string",
- "middle_name": "string",
- "last_name": "string",
- "phone_number": "string",
- "registration_address": {
- "city": "string",
- "street": "string",
- "country": "string",
- "postal_code": "string",
- "unit_number": "string",
- "building_name": "string",
- "state_province": "string",
- "building_number": "string"
}, - "nationality": "string",
- "government_id": "string",
- "identity_document": {
- "type": "string",
- "type_version_number": "string",
- "country_issuing": "string",
- "number": "string",
- "national_id_number": "string",
- "national_id_number_type": "string",
- "series": "string",
- "issue_date": "2019-08-24",
- "place_of_issue": "string",
- "authority_of_issue": "string",
- "expiry_date": "2019-08-24",
- "driver_license_number": "string",
- "driver_license_serial_number": "string",
- "driver_license_version_number": "string"
}, - "date_of_birth": "2019-08-24",
- "source_of_income": "string",
- "email": "string",
- "place_of_birth": "string",
- "occupation": "general_worker",
- "relationship_with_beneficiary": "string",
- "employer_name": "string",
- "employer_country": "PL",
- "employer_industry": "string"
}This operation fetches amount limits for payer.
| id required | string <uuid> The ID of the payer for which to provide payment limits |
| payment_type required | string (PaymentType) Enum: "B2B" "B2P" "P2B" "P2P" |
| country required | string <iso-3166-alpha-2> Example: country=GB Country for the payment. ISO-3166-1 alpha-2 value.
Hint: It is |
| instrument_category required | string (PaymentInstrumentCategory) Enum: "BankAccount" "MobileWallet" "CashPickup" "Card" |
| currency required | string <iso-4217> = 3 characters Example: currency=EUR The currency for which the limit should be provided. If there is no limit set in specified currency then limit will be returned in the base currency set for this account. Currency format ISO-4217 |
{- "minimum": {
- "currency": "EUR",
- "value": 10023
}, - "maximum": {
- "currency": "EUR",
- "value": 10023
}
}This endpoint allows to retrieve payer by its ID or external ID.
Either id or external_id must be provided.
If both are provided then they both must match the same payer.
| id | string <uuid> ID of the payer to get. |
| external_id | string External ID of the payer to get. |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "accounts": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "owner_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
- "owner_name": "John Doe vs Trade Company",
- "created": "2023-10-27T08:57:09.374902",
- "number": "CC002200MONE00012398064447EUR",
- "name": "Digital Account",
- "currency": "EUR",
- "balance": {
- "currency": "EUR",
- "value": 10023
}
}
], - "type": "Business",
- "external_id": "string",
- "first_name": "string",
- "middle_name": "string",
- "last_name": "string",
- "phone_number": "string",
- "registration_address": {
- "city": "string",
- "street": "string",
- "country": "string",
- "postal_code": "string",
- "unit_number": "string",
- "building_name": "string",
- "state_province": "string",
- "building_number": "string"
}, - "nationality": "string",
- "government_id": "string",
- "identity_document": {
- "type": "string",
- "type_version_number": "string",
- "country_issuing": "string",
- "number": "string",
- "national_id_number": "string",
- "national_id_number_type": "string",
- "series": "string",
- "issue_date": "2019-08-24",
- "place_of_issue": "string",
- "authority_of_issue": "string",
- "expiry_date": "2019-08-24",
- "driver_license_number": "string",
- "driver_license_serial_number": "string",
- "driver_license_version_number": "string"
}, - "date_of_birth": "2019-08-24",
- "source_of_income": "string",
- "email": "string",
- "place_of_birth": "string",
- "occupation": "general_worker",
- "relationship_with_beneficiary": "string",
- "employer_name": "string",
- "employer_country": "PL",
- "employer_industry": "string"
}Post payment related events.
Payall will retry to deliver the event for 24 hours
until receiving HTTP response code 200. After 24 hours
there will be no further attempts to deliver the event.
Attempts are repeated as follows:
Payall expects the response within 3 seconds. Lack of response within 3 seconds is considered to be failed delivery attempt.
No response body is expected.
| event_type required | string Enum: "StatusChange" "Documents" |
| tenant_id required | string |
| X-Attempt-Number required | integer Delivery attempt number. First attempt value is 1. |
| X-Signature | string HMAC signature of the request body. Sent only when HMAC request signing is enabled for your webhook configuration. The value has the form
To verify, recompute the HMAC over the received raw body with your shared secret and compare using a constant-time comparison. The header name is |
| X-Timestamp | integer <int64> UTC Unix timestamp, in seconds, captured when the event was signed and sent. Sent only when HMAC request signing is enabled. Use it to reject stale or replayed deliveries, for example by discarding requests whose timestamp falls outside an acceptable clock-skew window. |
| X-Nonce | string <uuid> Unique per-delivery identifier (UUID). Sent only when HMAC request signing is enabled. Use it together with |
The event payload. Its serialization format depends on the template type configured for your webhook:
application/json for the default and Mastercard templates.application/xml for the ISO 20022 template, where payment status
events are delivered as an ISO 20022 FIToFIPaymentStatusReport
(pacs.002.001.16) document.| status required | string Enum: "Created" "PendingCompliance" "Completed" "Declined" "ExchangeRateExpired" "PendingSettlement" "PendingClearingInstitution" "PendingFinance" "PendingServiceProvider" "PendingDocument" "PendingReceivingInstitution" "PendingRFI" "Returned" "Rejected"
Exchange rate will usually expire for payments that will have to undergo additional KYT checks. Event related to this status will be emitted only after the KYT process finishes meaning that the date of the event and exchange rate expiry date will not match.
In case you are controlling the settlement funding on your side this status informs you that you need to fund the settlement account in order to process the payment.
|
| id required | string <uuid> Id of the payment in Payall system. |
| client_payment_id required | string External reference provided when initiating the payment. |
| transaction_id | string External reference provided when initiating the payment. (Same as |
| instruction_id | string Id of the instruction registered in Payall system. |
| end_to_end_id | string (EndToEndId) <= 35 characters End To End Identification This filed follows ISO 20022 guidelines. Unique identification, as assigned by the initiating party, to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain. Usage: The end-to-end identification can be used for reconciliation or to link tasks relating to the transaction. It can be included in several messages related to the transaction. If not provided, a random UUID based identifier will be generated. |
| uetr | string <uuid> (UETR) Universally unique identifier to provide an end-to-end reference of a payment transaction. |
| integration_id | string Identifier used in communication with the Clearing Institution. |
| timestamp required | string <date-time> The date-time of the event. Notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z |
| code | string Optional status code associated with the event. For example in case of rejected payments it will identify the reason of rejection. |
object | |
object (Amount) | |
object (Amount) |
{- "status": "Created",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "client_payment_id": "string",
- "transaction_id": "string",
- "instruction_id": "string",
- "end_to_end_id": "PA-ecf87cf814cd4d95a970ac7e8d7e7ef3",
- "uetr": "bb1ccd4b-5072-4731-944f-45425c2b9e97",
- "integration_id": "string",
- "timestamp": "2019-08-24T14:15:22Z",
- "code": "string",
- "external_error": {
- "code": "string",
- "message": "string"
}, - "source_amount": {
- "currency": "EUR",
- "value": 10023
}, - "target_amount": {
- "currency": "EUR",
- "value": 10023
}
}| event_type required | string Value: "Publish" Event type for the rates |
| tenant_id required | string Tenant identifier |
Currency exchange rates data
required | Array of objects (CardedRate) |
{- "rates": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "from_currency": "USD",
- "to_currency": "EUR",
- "valid_from": "2023-03-01T00:00:00Z",
- "valid_to": "2023-03-01T04:00:00Z",
- "payment_instrument_category": "BankAccount",
- "rate": 0.8783,
- "tiers": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "from_amount": 100023,
- "rate": 0.8801
}
]
}
]
}Tokenize provided card details. Returns a token that can be used to reference the card in other API methods.
This endpoint is not idempotent.
Card number needs to be stripped of any non-digit characters before encrypting.
Expected pattern match is ^[1-9][0-9]{7,19}$.
We recommend validation of card number using Luhn algorithm before encrypting using Luhn algorithm.
We don't do card brand validation during this call. Any brand will be accepted by the vault but the payment may fail if the token is used for a payment with a vendor that does not support given brand.
| clientId required | string <uuid> |
| card_number required | string Encrypted card number using client public key. Card number needs to be stripped of any non-digit characters before encrypting.
Expected pattern match is We recommend validation of card number using Luhn algorithm before encrypting using Luhn algorithm. |
| expiration_date | string ISO/EIC 7813 Expiration date of the card |
{- "card_number": "ZiudIxi1h3P57k8OwmfOx1wpqIBeTGMu560uvdQoGYm2wfg/AIj8QkFpi2XTaCT4sO9drQvLSH9rSk3njQOGpSUmCzlPsA6ahG7Mg/0fMP2V6ahdMUmgmZPU1KVqL48p0pwjgSG6pTbLj6ROQFpPNkhs3ilrrQccKg7FamV34WC6hzEVyVRreR54LQeOAIFX5zQLOD4ldV/z8ikYdktKiFMkghQnF2oqzsd/rNTkL2DwzWTahgiA6gYZpoOhXt4rr1KoENC4hV4yT7iefyIFCGQu7EzeD15XB3v2+Q0Xj9ifOynADek3Mjxn6Bmg7fELGuUEkkxFgeLZrxrEcqAFbg==",
- "expiration_date": "12/30"
}{- "token": "f7b3b3b4-0b3d-4b3b-8b3b-3b3b3b3b3b3b",
- "created_at": "2021-03-03T16:27:54.378693Z",
- "masked_pan": "5425 **** **** 8113",
- "client_id": "f0396c8e-a87b-402d-9692-520cbc0947b5",
- "brand": "Visa"
}Get encryption key and parameters for a specific id
| id required | string <uuid> |
{- "encryption_key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuNernozTqNnb17qzYof4sYlB7QueXE+7l8B2pa4kaNwGfsquMpD9S6hXKUY2zKlCSovs811+rNWt1x6oxj3H3RSOH6J8RlG+29cDF5OXySeORON8dmPLCtZ4uXMQ4JYtlAlcPNgKJgQmnrnQJ4btb+S3FYZJ0rJyx+wpRJith4BUl0/QA3ldfLQAeWWf+6wXXhkB2n4u0zBGYd3v+L/TdqHDDrJuLVFkG2tXaBvNTQETwyPHJA06cAeqSyHneKb1RIznYL/QxUBoPAfTYdrI9cV5gUJ6bolFMrzSU9QlOR/SEjtXWjEE9sH39QLPqAJvijT1XUDNJOIeFB4E+pxGrQIDAQAB",
- "created_at": "2019-08-24T14:15:22Z",
- "encryption_algorithm": "RSAES_OAEP_SHA_256",
- "require_expiration_date": false
}