Virtual Accounts
Introduction
Here we describe the use of Virtual Accounts API, by using it merchants are able to assignee a unique account to their customers so they can make deposit and payments.
The first step in the process is to assign an account to the customer, after the process is completed the customer will be able to receive deposit to the assigned account.
The possible status for a virtual accounts are:
- processing: the account is being creared.
- complete: the account was created.
- error: an error occurred when the account was being created.
- deleted: tha account was deleted.
Creating the Account
Flow
API Examples
Auth-Service API
curl --location --request POST 'https://{{baseUrl}}/auth-service/1.0/protocol/openid-connect/token' \
--header 'apikey: {{apikey}}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=password' \
--data-urlencode 'username={{username}}' \
--data-urlencode 'password={{password}}'
{
"access_token": "{{access_token}}",
"expires_in": 300,
"refresh_expires_in": 1800,
"refresh_token": "{{refresh_token}}",
"token_type": "Bearer",
"not-before-policy": 0,
"session_state": "{{session_state}}",
"scope": "profile email"
}
Payment-Methods API
curl --location --request GET 'https://{{baseUrl}}/payment-methods/1.0/paymentmethodtypes?direction=in&country=AR&paymentMethodTypeClass=virtualAccount&paymentMethodTypeStatus=available' \
--header 'X-User-Bearer: {{access_token}}' \' \
--header 'X-User-Bearer: {{access_token}}' \
--header 'apikey: {{apikey}}'
[
{
"country": "AR",
"currency": "ARG",
"directUsage": true,
"direction": "in",
"fields": [
{
"description": "Tipo de documento",
"fieldType": "select",
"isUserField": true,
"mandatory": true,
"name": "document_type",
"regex": ".*",
"validOptions": [
"ruc"
]
},
{
"description": "Número de documento",
"fieldType": "input",
"isUserField": true,
"mandatory": true,
"name": "document_number",
"regex": ".*",
"validOptions": []
},
{
"description": "Nombre",
"fieldType": "input",
"isUserField": true,
"mandatory": true,
"name": "first_name",
"regex": "^[a-zA-Z ]+$",
"validOptions": []
},
{
"description": "Apellido",
"fieldType": "input",
"isUserField": true,
"mandatory": true,
"name": "last_name",
"regex": "^[a-zA-Z ]+$",
"validOptions": []
}
],
"imageURL": null,
"paymentMethodType": "virtualaccount1in-ars",
"paymentMethodTypeClass": "virtualAccount",
"paymentMethodTypeDescription": "Virtual Account 1 ARS",
"paymentMethodTypePos": [],
"paymentMethodTypeStatus": "available",
"protected": false,
"storable": false,
"usage": null
}
]
Virtual Account API
curl --location --request POST 'https://{{baseUrl}}/virtualaccounts/1.0/virtualAccounts
--header 'X-User-Bearer: {{access_token}}' \
--header 'apikey: {{apikey}}' \
--data-raw '{
"paymentMethodTypeId": "virtualaccount1in-ars",
"paymentMethodReference": "3235383934342D313030302D31313630",
"virtualAccountKey": "11111111111",
"data": {
"first_name": "Gonzalo",
"last_name": "Zabala",
"document_type": "ruc",
"document_number": "11111111111"
}
}'
{
"paymentMethodTypeId": "virtualaccount1in-ars",
"paymentMethodReference": "3235383934342D313030302D31313630",
"virtualAccountKey": "11111111111",
"data": {
"document_number": "11111111111",
"document_type": "ruc",
"first_name": "Gonzalo",
"last_name": "Zabala"
},
"requestReference": "1320",
"status": "processing",
"requestDate": "2023-03-03T16:52:12Z",
"callbackURL": "https://callback.test",
"deletionRequestDate": null
}
Callback
curl -X 'PUT' 'https://callback.test'
-H 'x-timestamp: 2023-04-21T14:48:02.675317Z'
-H 'x-signature: signature'
-H 'x-saltlength: slenght'
-H 'contet-type: application/json'
-H 'content-length: clength'
-H 'user-agent: Go-http-client/1.1'
-d $ '{
"paymentMethodTypeId":"virtualaccount1in-ars",
"paymentMethodReference":"3235383934342D313030302D31313630",
"virtualAccountKey":"11111111111",
"data":{
"document_number":"11111111111",
"document_type":"ruc",
"first_name":"Gonzalo",
"last_name":"Zabala"
},
"requestReference":"1320",
"status":"complete",
"requestDate":"2023-03-03T16:52:12Z",
"callbackURL":"https://callback.test",
"virtualAccountNumber":"0000107200016820884568",
"deletionRequestDate":null
}’
Receive Payments
Flow
API Example
Callback
curl -X 'PUT' 'https://callback.test'
-H 'x-timestamp: 2023-04-21T14:48:02.675317Z'
-H 'x-signature: signature'
-H 'x-saltlength: slenght'
-H 'x-CorrelationID: correlationId'
-H 'contet-type: application/json'
-H 'content-length: clength'
-H 'user-agent: Go-http-client/1.1'
-d $ '{
"amount": "50.00000000",
"conciliationOptions": [],
"confirmed": true,
"country": "AR",
"creationDate": "2023-02-27T15:48:08.534446Z",
"creditParty": {
"data": {
"ACCOUNT_ID": "1000417"
},
"paymentMethodReference": "4447313534362D313030302E32233635",
"type": "emoneyin-ars",
"typeClass": "emoneyin",
"typeCountry": "AR"
},
"currency": "ARS",
"debitParty": {
"data": {
"document_number": "27381996900",
"document_type": "ruc",
"first_name": "Emmanuel",
"last_name": "Lopez"
},
"type": "virtualaccount1in-ars",
"typeClass": "virtualAccount",
"typeCountry": "AR"
},
"descriptionText": "virtual account deposit",
"fees": {
"creditPartyEarnedCommission": "0.00000000",
"creditPartyNetCommission": "0.00000000",
"creditPartyPaidCommission": "0.00000000",
"debitPartyEarnedCommission": "0.00000000",
"debitPartyNetCommission": "0.00000000",
"debitPartyPaidCommission": "0.00000000"
},
"fx": {},
"geoCode": "",
"metadata": [
{
"creationDate": "2023-02-27T15:48:08Z",
"key": "virtualAccountNumber",
"value": "0000108200016842376606"
},
{
"creationDate": "2023-02-27T15:48:08Z",
"key": "SV_TRANSACTION_ID",
"value": "106588"
},
{
"creationDate": "2023-02-27T15:48:08Z",
"key": "phoneNumber",
"value": " "
},
{
"creationDate": "2023-02-27T15:48:08Z",
"key": "virtualAccountKey",
"value": "27381996900"
},
{
"creationDate": "2023-02-27T15:48:08Z",
"key": "documentId",
"value": "27357132385"
},
{
"creationDate": "2023-02-27T15:48:08Z",
"key": "personType",
"value": "COMPANY"
},
{
"creationDate": "2023-02-27T15:48:08Z",
"key": "firstName",
"value": "Gonzalo Ezequiel Torres"
},
{
"creationDate": "2023-02-27T15:48:08Z",
"key": "documentType",
"value": "ruc"
},
{
"creationDate": "2023-02-27T15:48:08Z",
"key": "conciliationId",
"value": "9e2c9c9a-d0cT-4729-81c4-3d18c9874Gfc"
},
{
"creationDate": "2023-02-27T15:48:08Z",
"key": "address",
"value": " "
},
{
"creationDate": "2023-02-27T15:48:08Z",
"key": "email",
"value": "[email protected]"
}
],
"modificationDate": "2023-02-27T15:48:08.676746Z",
"recipientKyc": {},
"requestDate": "2023-02-27T15:48:08Z",
"requestingOrganisationTransactionReference": "",
"senderKyc": {},
"subType": "virtual-account",
"transactionReference": "1004102",
"transactionStatus": "finished",
"transactionSubStatus": "finished",
"type": "deposit"
}’
Updated about 1 month ago