curl --request GET \
--url https://api.vitawallet.io/api/businesses/payment_methods/{country_iso_code} \
--header 'Authorization: <api-key>' \
--header 'x-date: <api-key>' \
--header 'x-login: <api-key>' \
--header 'x-trans-key: <api-key>'import requests
url = "https://api.vitawallet.io/api/businesses/payment_methods/{country_iso_code}"
headers = {
"x-login": "<api-key>",
"x-trans-key": "<api-key>",
"x-date": "<api-key>",
"Authorization": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'x-login': '<api-key>',
'x-trans-key': '<api-key>',
'x-date': '<api-key>',
Authorization: '<api-key>'
}
};
fetch('https://api.vitawallet.io/api/businesses/payment_methods/{country_iso_code}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vitawallet.io/api/businesses/payment_methods/{country_iso_code}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"x-date: <api-key>",
"x-login: <api-key>",
"x-trans-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.vitawallet.io/api/businesses/payment_methods/{country_iso_code}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-login", "<api-key>")
req.Header.Add("x-trans-key", "<api-key>")
req.Header.Add("x-date", "<api-key>")
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.vitawallet.io/api/businesses/payment_methods/{country_iso_code}")
.header("x-login", "<api-key>")
.header("x-trans-key", "<api-key>")
.header("x-date", "<api-key>")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vitawallet.io/api/businesses/payment_methods/{country_iso_code}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-login"] = '<api-key>'
request["x-trans-key"] = '<api-key>'
request["x-date"] = '<api-key>'
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"payment_methods": [
{
"method_id": 13,
"name": "Pago con QR",
"description": "Pago con QR",
"country": "AR",
"required_fields": []
},
{
"method_id": 15,
"name": "Transferencia CVU",
"description": "CVU de uso único",
"country": "AR",
"required_fields": []
}
]
}Payment Methods by Country
GET /api/businesses/payment_methods/
Returns available payment methods for a specific country with their required fields. This endpoint is essential for implementing direct payments without checkout redirection.
Purpose
This endpoint allows businesses to:
-
Query payment methods available in each country
-
Get required fields for each payment method
-
Build dynamic payment forms in their own interface
-
Avoid redirecting customers to external checkout
Parameters
| Parameter | Type | Description |
|---|---|---|
country_iso_code | string (required) | ISO 3166-1 alpha-2 country code (AR, CL, CO, MX, BR) |
Authentication Headers
All requests must include HMAC-SHA256 authentication headers:
| Header | Type | Description |
|---|---|---|
x-login | string (required) | Business API login |
x-trans-key | string (required) | Business API transaction key |
x-date | string (required) | ISO8601 DateTime (2024-01-15T10:30:00Z) |
Authorization | string (required) | V2-HMAC-SHA256, Signature: |
Content-Type | string (required) | application/json |
Response Structure
Successful response includes:
-
Array of payment methods available in the country
-
Required fields for each method with validation rules
-
Field types (text, select, phone, email)
-
Available options for select fields (banks, document types)
Supported Countries
-
Argentina (AR): CVU, QR
-
Bolivia (BO): QR Transfer
-
Brasil (BR): QR PIX
-
Chile (CL): Webpay, Fintoc
-
Colombia (CO): BreB Transfer, PSE, Nequi, Daviplata, Bancolombia.
-
México (MX): CLABE Transfer
Error Codes
| Status | Code | Description | Solution |
|---|---|---|---|
| 400 | 305 | Invalid country_iso_code | Use valid ISO codes: AR, CL, CO, MX, BR |
| 401 | 303 | Invalid signature | Check HMAC-SHA256 generation |
| 401 | 301 | Missing authentication header | Include all required headers |
| 404 | 404 | Country not supported | Verify country is in supported list |
| 500 | 500 | Internal server error | Contact support if persists |
curl --request GET \
--url https://api.vitawallet.io/api/businesses/payment_methods/{country_iso_code} \
--header 'Authorization: <api-key>' \
--header 'x-date: <api-key>' \
--header 'x-login: <api-key>' \
--header 'x-trans-key: <api-key>'import requests
url = "https://api.vitawallet.io/api/businesses/payment_methods/{country_iso_code}"
headers = {
"x-login": "<api-key>",
"x-trans-key": "<api-key>",
"x-date": "<api-key>",
"Authorization": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'x-login': '<api-key>',
'x-trans-key': '<api-key>',
'x-date': '<api-key>',
Authorization: '<api-key>'
}
};
fetch('https://api.vitawallet.io/api/businesses/payment_methods/{country_iso_code}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vitawallet.io/api/businesses/payment_methods/{country_iso_code}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"x-date: <api-key>",
"x-login: <api-key>",
"x-trans-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.vitawallet.io/api/businesses/payment_methods/{country_iso_code}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-login", "<api-key>")
req.Header.Add("x-trans-key", "<api-key>")
req.Header.Add("x-date", "<api-key>")
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.vitawallet.io/api/businesses/payment_methods/{country_iso_code}")
.header("x-login", "<api-key>")
.header("x-trans-key", "<api-key>")
.header("x-date", "<api-key>")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vitawallet.io/api/businesses/payment_methods/{country_iso_code}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-login"] = '<api-key>'
request["x-trans-key"] = '<api-key>'
request["x-date"] = '<api-key>'
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"payment_methods": [
{
"method_id": 13,
"name": "Pago con QR",
"description": "Pago con QR",
"country": "AR",
"required_fields": []
},
{
"method_id": 15,
"name": "Transferencia CVU",
"description": "CVU de uso único",
"country": "AR",
"required_fields": []
}
]
}Authorizations
Business xLogin
Business xTransKey
ISO8601 datetime
V2-HMAC-SHA256 signature. Example: V2-HMAC-SHA256, Signature: <hash>
Path Parameters
Response
Successful response.