Skip to main content
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

Authorization
string
header
required

Token JWT obtido via POST /v1/login. Envie no header Authorization: Bearer <token>.

Headers

account
string
required

Código da conta à qual a operação se aplica

Example:

"acc_abc123xyz"

Body

application/json
client
object
required
subscription
object
required
payment
object
required
items
object[]
required

Lista de itens da assinatura (obrigatório)

international
boolean | null

Indica se é uma transação internacional (opcional)

Example:

false

Response

Assinatura criada com sucesso

success
boolean
Example:

true

message
string
Example:

"Assinatura criada com sucesso"

data
object