Criar assinatura
curl --request POST \
--url https://sandbox.4seletpay.com.br/api/v1/subscriptions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'account: <account>' \
--data '
{
"international": false,
"client": {
"client_ip": "192.168.1.100",
"name": "Carlos Ferreira",
"email": "carlos@exemplo.com.br",
"gender": "Male",
"birthdate": "1985-06-20",
"phone": {
"ddi": 55,
"ddd": 11,
"number": "977776666"
},
"document": {
"type": "CPF",
"number": "111.222.333-44"
},
"address": {
"zipcode": "04538-132",
"street": "Rua Fidêncio Ramos",
"number": 302,
"neighborhood": "Vila Olímpia",
"complement": "Torre B",
"city": "São Paulo",
"state": "SP",
"country": "Brasil"
}
},
"subscription": {
"interval": 30,
"code": "plano_mensal_001",
"description": "Plano Mensal Premium",
"installments": 1,
"max_invoices": 12,
"minimum_price": 9990,
"billing_type": "prepaid",
"discounts": {
"cycles": 1,
"value": 10,
"type": "percentage"
},
"metadata": {
"origem": "site"
}
},
"payment": {
"type": "CreditCard",
"card": {
"number": "4111111111111111",
"name": "CARLOS FERREIRA",
"month": "08",
"year": "28",
"security_code": "456"
}
},
"items": [
{
"id": "plano_premium",
"description": "Acesso Premium Mensal",
"amount": 99.9,
"quantity": 1
}
]
}
'import requests
url = "https://sandbox.4seletpay.com.br/api/v1/subscriptions"
payload = {
"international": False,
"client": {
"client_ip": "192.168.1.100",
"name": "Carlos Ferreira",
"email": "carlos@exemplo.com.br",
"gender": "Male",
"birthdate": "1985-06-20",
"phone": {
"ddi": 55,
"ddd": 11,
"number": "977776666"
},
"document": {
"type": "CPF",
"number": "111.222.333-44"
},
"address": {
"zipcode": "04538-132",
"street": "Rua Fidêncio Ramos",
"number": 302,
"neighborhood": "Vila Olímpia",
"complement": "Torre B",
"city": "São Paulo",
"state": "SP",
"country": "Brasil"
}
},
"subscription": {
"interval": 30,
"code": "plano_mensal_001",
"description": "Plano Mensal Premium",
"installments": 1,
"max_invoices": 12,
"minimum_price": 9990,
"billing_type": "prepaid",
"discounts": {
"cycles": 1,
"value": 10,
"type": "percentage"
},
"metadata": { "origem": "site" }
},
"payment": {
"type": "CreditCard",
"card": {
"number": "4111111111111111",
"name": "CARLOS FERREIRA",
"month": "08",
"year": "28",
"security_code": "456"
}
},
"items": [
{
"id": "plano_premium",
"description": "Acesso Premium Mensal",
"amount": 99.9,
"quantity": 1
}
]
}
headers = {
"account": "<account>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
account: '<account>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
international: false,
client: {
client_ip: '192.168.1.100',
name: 'Carlos Ferreira',
email: 'carlos@exemplo.com.br',
gender: 'Male',
birthdate: '1985-06-20',
phone: {ddi: 55, ddd: 11, number: '977776666'},
document: {type: 'CPF', number: '111.222.333-44'},
address: {
zipcode: '04538-132',
street: 'Rua Fidêncio Ramos',
number: 302,
neighborhood: 'Vila Olímpia',
complement: 'Torre B',
city: 'São Paulo',
state: 'SP',
country: 'Brasil'
}
},
subscription: {
interval: 30,
code: 'plano_mensal_001',
description: 'Plano Mensal Premium',
installments: 1,
max_invoices: 12,
minimum_price: 9990,
billing_type: 'prepaid',
discounts: {cycles: 1, value: 10, type: 'percentage'},
metadata: {origem: 'site'}
},
payment: {
type: 'CreditCard',
card: {
number: '4111111111111111',
name: 'CARLOS FERREIRA',
month: '08',
year: '28',
security_code: '456'
}
},
items: [
{
id: 'plano_premium',
description: 'Acesso Premium Mensal',
amount: 99.9,
quantity: 1
}
]
})
};
fetch('https://sandbox.4seletpay.com.br/api/v1/subscriptions', 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://sandbox.4seletpay.com.br/api/v1/subscriptions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'international' => false,
'client' => [
'client_ip' => '192.168.1.100',
'name' => 'Carlos Ferreira',
'email' => 'carlos@exemplo.com.br',
'gender' => 'Male',
'birthdate' => '1985-06-20',
'phone' => [
'ddi' => 55,
'ddd' => 11,
'number' => '977776666'
],
'document' => [
'type' => 'CPF',
'number' => '111.222.333-44'
],
'address' => [
'zipcode' => '04538-132',
'street' => 'Rua Fidêncio Ramos',
'number' => 302,
'neighborhood' => 'Vila Olímpia',
'complement' => 'Torre B',
'city' => 'São Paulo',
'state' => 'SP',
'country' => 'Brasil'
]
],
'subscription' => [
'interval' => 30,
'code' => 'plano_mensal_001',
'description' => 'Plano Mensal Premium',
'installments' => 1,
'max_invoices' => 12,
'minimum_price' => 9990,
'billing_type' => 'prepaid',
'discounts' => [
'cycles' => 1,
'value' => 10,
'type' => 'percentage'
],
'metadata' => [
'origem' => 'site'
]
],
'payment' => [
'type' => 'CreditCard',
'card' => [
'number' => '4111111111111111',
'name' => 'CARLOS FERREIRA',
'month' => '08',
'year' => '28',
'security_code' => '456'
]
],
'items' => [
[
'id' => 'plano_premium',
'description' => 'Acesso Premium Mensal',
'amount' => 99.9,
'quantity' => 1
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"account: <account>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.4seletpay.com.br/api/v1/subscriptions"
payload := strings.NewReader("{\n \"international\": false,\n \"client\": {\n \"client_ip\": \"192.168.1.100\",\n \"name\": \"Carlos Ferreira\",\n \"email\": \"carlos@exemplo.com.br\",\n \"gender\": \"Male\",\n \"birthdate\": \"1985-06-20\",\n \"phone\": {\n \"ddi\": 55,\n \"ddd\": 11,\n \"number\": \"977776666\"\n },\n \"document\": {\n \"type\": \"CPF\",\n \"number\": \"111.222.333-44\"\n },\n \"address\": {\n \"zipcode\": \"04538-132\",\n \"street\": \"Rua Fidêncio Ramos\",\n \"number\": 302,\n \"neighborhood\": \"Vila Olímpia\",\n \"complement\": \"Torre B\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\",\n \"country\": \"Brasil\"\n }\n },\n \"subscription\": {\n \"interval\": 30,\n \"code\": \"plano_mensal_001\",\n \"description\": \"Plano Mensal Premium\",\n \"installments\": 1,\n \"max_invoices\": 12,\n \"minimum_price\": 9990,\n \"billing_type\": \"prepaid\",\n \"discounts\": {\n \"cycles\": 1,\n \"value\": 10,\n \"type\": \"percentage\"\n },\n \"metadata\": {\n \"origem\": \"site\"\n }\n },\n \"payment\": {\n \"type\": \"CreditCard\",\n \"card\": {\n \"number\": \"4111111111111111\",\n \"name\": \"CARLOS FERREIRA\",\n \"month\": \"08\",\n \"year\": \"28\",\n \"security_code\": \"456\"\n }\n },\n \"items\": [\n {\n \"id\": \"plano_premium\",\n \"description\": \"Acesso Premium Mensal\",\n \"amount\": 99.9,\n \"quantity\": 1\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("account", "<account>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.4seletpay.com.br/api/v1/subscriptions")
.header("account", "<account>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"international\": false,\n \"client\": {\n \"client_ip\": \"192.168.1.100\",\n \"name\": \"Carlos Ferreira\",\n \"email\": \"carlos@exemplo.com.br\",\n \"gender\": \"Male\",\n \"birthdate\": \"1985-06-20\",\n \"phone\": {\n \"ddi\": 55,\n \"ddd\": 11,\n \"number\": \"977776666\"\n },\n \"document\": {\n \"type\": \"CPF\",\n \"number\": \"111.222.333-44\"\n },\n \"address\": {\n \"zipcode\": \"04538-132\",\n \"street\": \"Rua Fidêncio Ramos\",\n \"number\": 302,\n \"neighborhood\": \"Vila Olímpia\",\n \"complement\": \"Torre B\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\",\n \"country\": \"Brasil\"\n }\n },\n \"subscription\": {\n \"interval\": 30,\n \"code\": \"plano_mensal_001\",\n \"description\": \"Plano Mensal Premium\",\n \"installments\": 1,\n \"max_invoices\": 12,\n \"minimum_price\": 9990,\n \"billing_type\": \"prepaid\",\n \"discounts\": {\n \"cycles\": 1,\n \"value\": 10,\n \"type\": \"percentage\"\n },\n \"metadata\": {\n \"origem\": \"site\"\n }\n },\n \"payment\": {\n \"type\": \"CreditCard\",\n \"card\": {\n \"number\": \"4111111111111111\",\n \"name\": \"CARLOS FERREIRA\",\n \"month\": \"08\",\n \"year\": \"28\",\n \"security_code\": \"456\"\n }\n },\n \"items\": [\n {\n \"id\": \"plano_premium\",\n \"description\": \"Acesso Premium Mensal\",\n \"amount\": 99.9,\n \"quantity\": 1\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.4seletpay.com.br/api/v1/subscriptions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["account"] = '<account>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"international\": false,\n \"client\": {\n \"client_ip\": \"192.168.1.100\",\n \"name\": \"Carlos Ferreira\",\n \"email\": \"carlos@exemplo.com.br\",\n \"gender\": \"Male\",\n \"birthdate\": \"1985-06-20\",\n \"phone\": {\n \"ddi\": 55,\n \"ddd\": 11,\n \"number\": \"977776666\"\n },\n \"document\": {\n \"type\": \"CPF\",\n \"number\": \"111.222.333-44\"\n },\n \"address\": {\n \"zipcode\": \"04538-132\",\n \"street\": \"Rua Fidêncio Ramos\",\n \"number\": 302,\n \"neighborhood\": \"Vila Olímpia\",\n \"complement\": \"Torre B\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\",\n \"country\": \"Brasil\"\n }\n },\n \"subscription\": {\n \"interval\": 30,\n \"code\": \"plano_mensal_001\",\n \"description\": \"Plano Mensal Premium\",\n \"installments\": 1,\n \"max_invoices\": 12,\n \"minimum_price\": 9990,\n \"billing_type\": \"prepaid\",\n \"discounts\": {\n \"cycles\": 1,\n \"value\": 10,\n \"type\": \"percentage\"\n },\n \"metadata\": {\n \"origem\": \"site\"\n }\n },\n \"payment\": {\n \"type\": \"CreditCard\",\n \"card\": {\n \"number\": \"4111111111111111\",\n \"name\": \"CARLOS FERREIRA\",\n \"month\": \"08\",\n \"year\": \"28\",\n \"security_code\": \"456\"\n }\n },\n \"items\": [\n {\n \"id\": \"plano_premium\",\n \"description\": \"Acesso Premium Mensal\",\n \"amount\": 99.9,\n \"quantity\": 1\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Assinatura criada com sucesso",
"data": {
"subscription_code": "sub_abc123",
"status": "Active",
"interval": 30,
"payment_method": "CreditCard",
"next_billing_date": "2026-04-11",
"created_at": "2026-03-11T10:00:00.000000Z"
}
}{
"mensagem": "Unauthenticated.",
"erro": true,
"mensagenserro": [],
"codigoretorno": 401,
"id": "00000000-0000-0000-0000-000000000000",
"data": []
}{
"message": "The given data was invalid.",
"errors": {
"client.email": [
"O campo client.email é obrigatório."
]
}
}{
"mensagem": "Um erro aconteceu.",
"erro": true,
"mensagenserro": [
"Erro interno. Tente novamente mais tarde."
],
"codigoretorno": 500,
"id": "00000000-0000-0000-0000-000000000000",
"data": []
}Assinaturas
Criar Assinatura
Cria uma nova assinatura recorrente para um cliente. Suporta os métodos de pagamento: CreditCard e PIX. O campo subscription.interval define o ciclo em dias (ex: 30 para mensal). Requer o header account com o código da conta. Passa por validações de fraude, bloqueio de clientes e rate limiting.
POST
/
v1
/
subscriptions
Criar assinatura
curl --request POST \
--url https://sandbox.4seletpay.com.br/api/v1/subscriptions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'account: <account>' \
--data '
{
"international": false,
"client": {
"client_ip": "192.168.1.100",
"name": "Carlos Ferreira",
"email": "carlos@exemplo.com.br",
"gender": "Male",
"birthdate": "1985-06-20",
"phone": {
"ddi": 55,
"ddd": 11,
"number": "977776666"
},
"document": {
"type": "CPF",
"number": "111.222.333-44"
},
"address": {
"zipcode": "04538-132",
"street": "Rua Fidêncio Ramos",
"number": 302,
"neighborhood": "Vila Olímpia",
"complement": "Torre B",
"city": "São Paulo",
"state": "SP",
"country": "Brasil"
}
},
"subscription": {
"interval": 30,
"code": "plano_mensal_001",
"description": "Plano Mensal Premium",
"installments": 1,
"max_invoices": 12,
"minimum_price": 9990,
"billing_type": "prepaid",
"discounts": {
"cycles": 1,
"value": 10,
"type": "percentage"
},
"metadata": {
"origem": "site"
}
},
"payment": {
"type": "CreditCard",
"card": {
"number": "4111111111111111",
"name": "CARLOS FERREIRA",
"month": "08",
"year": "28",
"security_code": "456"
}
},
"items": [
{
"id": "plano_premium",
"description": "Acesso Premium Mensal",
"amount": 99.9,
"quantity": 1
}
]
}
'import requests
url = "https://sandbox.4seletpay.com.br/api/v1/subscriptions"
payload = {
"international": False,
"client": {
"client_ip": "192.168.1.100",
"name": "Carlos Ferreira",
"email": "carlos@exemplo.com.br",
"gender": "Male",
"birthdate": "1985-06-20",
"phone": {
"ddi": 55,
"ddd": 11,
"number": "977776666"
},
"document": {
"type": "CPF",
"number": "111.222.333-44"
},
"address": {
"zipcode": "04538-132",
"street": "Rua Fidêncio Ramos",
"number": 302,
"neighborhood": "Vila Olímpia",
"complement": "Torre B",
"city": "São Paulo",
"state": "SP",
"country": "Brasil"
}
},
"subscription": {
"interval": 30,
"code": "plano_mensal_001",
"description": "Plano Mensal Premium",
"installments": 1,
"max_invoices": 12,
"minimum_price": 9990,
"billing_type": "prepaid",
"discounts": {
"cycles": 1,
"value": 10,
"type": "percentage"
},
"metadata": { "origem": "site" }
},
"payment": {
"type": "CreditCard",
"card": {
"number": "4111111111111111",
"name": "CARLOS FERREIRA",
"month": "08",
"year": "28",
"security_code": "456"
}
},
"items": [
{
"id": "plano_premium",
"description": "Acesso Premium Mensal",
"amount": 99.9,
"quantity": 1
}
]
}
headers = {
"account": "<account>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
account: '<account>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
international: false,
client: {
client_ip: '192.168.1.100',
name: 'Carlos Ferreira',
email: 'carlos@exemplo.com.br',
gender: 'Male',
birthdate: '1985-06-20',
phone: {ddi: 55, ddd: 11, number: '977776666'},
document: {type: 'CPF', number: '111.222.333-44'},
address: {
zipcode: '04538-132',
street: 'Rua Fidêncio Ramos',
number: 302,
neighborhood: 'Vila Olímpia',
complement: 'Torre B',
city: 'São Paulo',
state: 'SP',
country: 'Brasil'
}
},
subscription: {
interval: 30,
code: 'plano_mensal_001',
description: 'Plano Mensal Premium',
installments: 1,
max_invoices: 12,
minimum_price: 9990,
billing_type: 'prepaid',
discounts: {cycles: 1, value: 10, type: 'percentage'},
metadata: {origem: 'site'}
},
payment: {
type: 'CreditCard',
card: {
number: '4111111111111111',
name: 'CARLOS FERREIRA',
month: '08',
year: '28',
security_code: '456'
}
},
items: [
{
id: 'plano_premium',
description: 'Acesso Premium Mensal',
amount: 99.9,
quantity: 1
}
]
})
};
fetch('https://sandbox.4seletpay.com.br/api/v1/subscriptions', 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://sandbox.4seletpay.com.br/api/v1/subscriptions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'international' => false,
'client' => [
'client_ip' => '192.168.1.100',
'name' => 'Carlos Ferreira',
'email' => 'carlos@exemplo.com.br',
'gender' => 'Male',
'birthdate' => '1985-06-20',
'phone' => [
'ddi' => 55,
'ddd' => 11,
'number' => '977776666'
],
'document' => [
'type' => 'CPF',
'number' => '111.222.333-44'
],
'address' => [
'zipcode' => '04538-132',
'street' => 'Rua Fidêncio Ramos',
'number' => 302,
'neighborhood' => 'Vila Olímpia',
'complement' => 'Torre B',
'city' => 'São Paulo',
'state' => 'SP',
'country' => 'Brasil'
]
],
'subscription' => [
'interval' => 30,
'code' => 'plano_mensal_001',
'description' => 'Plano Mensal Premium',
'installments' => 1,
'max_invoices' => 12,
'minimum_price' => 9990,
'billing_type' => 'prepaid',
'discounts' => [
'cycles' => 1,
'value' => 10,
'type' => 'percentage'
],
'metadata' => [
'origem' => 'site'
]
],
'payment' => [
'type' => 'CreditCard',
'card' => [
'number' => '4111111111111111',
'name' => 'CARLOS FERREIRA',
'month' => '08',
'year' => '28',
'security_code' => '456'
]
],
'items' => [
[
'id' => 'plano_premium',
'description' => 'Acesso Premium Mensal',
'amount' => 99.9,
'quantity' => 1
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"account: <account>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.4seletpay.com.br/api/v1/subscriptions"
payload := strings.NewReader("{\n \"international\": false,\n \"client\": {\n \"client_ip\": \"192.168.1.100\",\n \"name\": \"Carlos Ferreira\",\n \"email\": \"carlos@exemplo.com.br\",\n \"gender\": \"Male\",\n \"birthdate\": \"1985-06-20\",\n \"phone\": {\n \"ddi\": 55,\n \"ddd\": 11,\n \"number\": \"977776666\"\n },\n \"document\": {\n \"type\": \"CPF\",\n \"number\": \"111.222.333-44\"\n },\n \"address\": {\n \"zipcode\": \"04538-132\",\n \"street\": \"Rua Fidêncio Ramos\",\n \"number\": 302,\n \"neighborhood\": \"Vila Olímpia\",\n \"complement\": \"Torre B\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\",\n \"country\": \"Brasil\"\n }\n },\n \"subscription\": {\n \"interval\": 30,\n \"code\": \"plano_mensal_001\",\n \"description\": \"Plano Mensal Premium\",\n \"installments\": 1,\n \"max_invoices\": 12,\n \"minimum_price\": 9990,\n \"billing_type\": \"prepaid\",\n \"discounts\": {\n \"cycles\": 1,\n \"value\": 10,\n \"type\": \"percentage\"\n },\n \"metadata\": {\n \"origem\": \"site\"\n }\n },\n \"payment\": {\n \"type\": \"CreditCard\",\n \"card\": {\n \"number\": \"4111111111111111\",\n \"name\": \"CARLOS FERREIRA\",\n \"month\": \"08\",\n \"year\": \"28\",\n \"security_code\": \"456\"\n }\n },\n \"items\": [\n {\n \"id\": \"plano_premium\",\n \"description\": \"Acesso Premium Mensal\",\n \"amount\": 99.9,\n \"quantity\": 1\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("account", "<account>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.4seletpay.com.br/api/v1/subscriptions")
.header("account", "<account>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"international\": false,\n \"client\": {\n \"client_ip\": \"192.168.1.100\",\n \"name\": \"Carlos Ferreira\",\n \"email\": \"carlos@exemplo.com.br\",\n \"gender\": \"Male\",\n \"birthdate\": \"1985-06-20\",\n \"phone\": {\n \"ddi\": 55,\n \"ddd\": 11,\n \"number\": \"977776666\"\n },\n \"document\": {\n \"type\": \"CPF\",\n \"number\": \"111.222.333-44\"\n },\n \"address\": {\n \"zipcode\": \"04538-132\",\n \"street\": \"Rua Fidêncio Ramos\",\n \"number\": 302,\n \"neighborhood\": \"Vila Olímpia\",\n \"complement\": \"Torre B\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\",\n \"country\": \"Brasil\"\n }\n },\n \"subscription\": {\n \"interval\": 30,\n \"code\": \"plano_mensal_001\",\n \"description\": \"Plano Mensal Premium\",\n \"installments\": 1,\n \"max_invoices\": 12,\n \"minimum_price\": 9990,\n \"billing_type\": \"prepaid\",\n \"discounts\": {\n \"cycles\": 1,\n \"value\": 10,\n \"type\": \"percentage\"\n },\n \"metadata\": {\n \"origem\": \"site\"\n }\n },\n \"payment\": {\n \"type\": \"CreditCard\",\n \"card\": {\n \"number\": \"4111111111111111\",\n \"name\": \"CARLOS FERREIRA\",\n \"month\": \"08\",\n \"year\": \"28\",\n \"security_code\": \"456\"\n }\n },\n \"items\": [\n {\n \"id\": \"plano_premium\",\n \"description\": \"Acesso Premium Mensal\",\n \"amount\": 99.9,\n \"quantity\": 1\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.4seletpay.com.br/api/v1/subscriptions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["account"] = '<account>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"international\": false,\n \"client\": {\n \"client_ip\": \"192.168.1.100\",\n \"name\": \"Carlos Ferreira\",\n \"email\": \"carlos@exemplo.com.br\",\n \"gender\": \"Male\",\n \"birthdate\": \"1985-06-20\",\n \"phone\": {\n \"ddi\": 55,\n \"ddd\": 11,\n \"number\": \"977776666\"\n },\n \"document\": {\n \"type\": \"CPF\",\n \"number\": \"111.222.333-44\"\n },\n \"address\": {\n \"zipcode\": \"04538-132\",\n \"street\": \"Rua Fidêncio Ramos\",\n \"number\": 302,\n \"neighborhood\": \"Vila Olímpia\",\n \"complement\": \"Torre B\",\n \"city\": \"São Paulo\",\n \"state\": \"SP\",\n \"country\": \"Brasil\"\n }\n },\n \"subscription\": {\n \"interval\": 30,\n \"code\": \"plano_mensal_001\",\n \"description\": \"Plano Mensal Premium\",\n \"installments\": 1,\n \"max_invoices\": 12,\n \"minimum_price\": 9990,\n \"billing_type\": \"prepaid\",\n \"discounts\": {\n \"cycles\": 1,\n \"value\": 10,\n \"type\": \"percentage\"\n },\n \"metadata\": {\n \"origem\": \"site\"\n }\n },\n \"payment\": {\n \"type\": \"CreditCard\",\n \"card\": {\n \"number\": \"4111111111111111\",\n \"name\": \"CARLOS FERREIRA\",\n \"month\": \"08\",\n \"year\": \"28\",\n \"security_code\": \"456\"\n }\n },\n \"items\": [\n {\n \"id\": \"plano_premium\",\n \"description\": \"Acesso Premium Mensal\",\n \"amount\": 99.9,\n \"quantity\": 1\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Assinatura criada com sucesso",
"data": {
"subscription_code": "sub_abc123",
"status": "Active",
"interval": 30,
"payment_method": "CreditCard",
"next_billing_date": "2026-04-11",
"created_at": "2026-03-11T10:00:00.000000Z"
}
}{
"mensagem": "Unauthenticated.",
"erro": true,
"mensagenserro": [],
"codigoretorno": 401,
"id": "00000000-0000-0000-0000-000000000000",
"data": []
}{
"message": "The given data was invalid.",
"errors": {
"client.email": [
"O campo client.email é obrigatório."
]
}
}{
"mensagem": "Um erro aconteceu.",
"erro": true,
"mensagenserro": [
"Erro interno. Tente novamente mais tarde."
],
"codigoretorno": 500,
"id": "00000000-0000-0000-0000-000000000000",
"data": []
}Requer o header
account. Passa por validações de fraude e bloqueio de clientes.Authorizations
Token JWT obtido via POST /v1/login. Envie no header Authorization: Bearer <token>.
Headers
Código da conta à qual a operação se aplica
Example:
"acc_abc123xyz"
Body
application/json
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Lista de itens da assinatura (obrigatório)
Show child attributes
Show child attributes
Indica se é uma transação internacional (opcional)
Example:
false
⌘I
