POST/api/v2/partners/application

Criar Aplicação

Cria uma nova aplicação vinculada ao parceiro autenticado.

Parâmetros

AuthorizationObrigatório
header

Token de autenticação obtido no login do parceiro.

Tipo:string

Cabeçalhos obrigatórios:

CabeçalhoValorDescrição
Content-Typeapplication/jsonTipo de conteúdo enviado no corpo da requisição.
AuthorizationBearer {{ access_token }}Token de autenticação obtido no login do parceiro.

Parâmetros no corpo (JSON)

ParâmetroTipoObrigatórioDescrição
namestringSimNome da aplicação.
scopesarraySimLista de escopos autorizados para a aplicação.
descriptionstringSimDescrição detalhada da aplicação.
briefingstringSimDescrição resumida da aplicação.
categorystringSimCategoria atribuída à aplicação.

Escopos Disponíveis

EscopoDescrição
cob.readLeitura de cobranças Pix
cob.writeCriação e atualização de cobranças Pix
merchants.readLeitura de estabelecimentos
merchants.writeCriação e atualização de estabelecimentos
terminals.readLeitura de terminais
terminals.writeCriação e atualização de terminais
transactions.readLeitura de transações
transactions.writeCriação e atualização de transações
webhooks.readLeitura de webhooks
webhooks.writeCriação e atualização de webhooks
dict.readLeitura de dicionários
dict.writeCriação e atualização de dicionários

Campos da Resposta

CampoTipoDescrição
idstringID único da aplicação criada.
partnerobjectDados do parceiro proprietário da aplicação.
namestringNome da aplicação.
descriptionstringDescrição detalhada da aplicação.
briefingstringDescrição resumida da aplicação.
categorystringCategoria atribuída à aplicação.
scopesarrayEscopos autorizados para a aplicação.
client_idstringID do cliente (gerado após aprovação).
client_secretstringChave secreta do cliente (gerada após aprovação).
statusstringStatus atual da aplicação (pending inicialmente).
created_atstringData de criação da aplicação (ISO8601).
updated_atstringData da última atualização da aplicação (ISO8601).

Status da Aplicação

StatusDescrição
pendingAplicação aguardando aprovação (status inicial).
activeAplicação aprovada e ativa.
rejectedAplicação rejeitada.
suspendedAplicação suspensa temporariamente.

Observações

  • O token {{ access_token }} deve ser obtido previamente através do endpoint de login do parceiro.
  • Os scopes definem as permissões que a aplicação terá dentro do ambiente.
  • O status inicial da aplicação normalmente é pending até ser aprovada pelo time responsável.
  • Os campos client_id e client_secret só são gerados após aprovação da aplicação.
  • Escolha apenas os escopos necessários para sua aplicação para maior segurança.

Códigos de Resposta

CódigoSignificadoDescrição
201CreatedAplicação criada com sucesso.
400Bad RequestParâmetros inválidos ou ausentes na requisição.
401UnauthorizedToken de autenticação inválido ou expirado.
403ForbiddenParceiro não tem permissão para criar aplicações.
500Internal Server ErrorErro interno do servidor.

Resposta de Sucesso

Em caso de sucesso, será retornado um objeto JSON com os dados da aplicação criada, semelhante ao exemplo de listagem, contendo id, name, scopes, status, datas e informações do parceiro.

Validações

  • Nome: Deve ter entre 3 e 100 caracteres.
  • Descrição: Deve ter entre 10 e 500 caracteres.
  • Briefing: Deve ter entre 5 e 200 caracteres.
  • Escopos: Deve conter pelo menos um escopo válido.
  • Categoria: Deve ser uma categoria válida do sistema.
curl --location 'https://dominio-ambiente.com.br/api/v2/partners/application' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{ access_token }}' \
--data '{
  "name": "Nome da sua aplicação",
  "scopes": [
    "cob.read",
    "cob.write"
  ],
  "description": "Uma descrição da sua aplicação",
  "briefing": "Uma descrição curta da sua aplicação",
  "category": "Categoria 1"
}'
const axios = require('axios');

const createApplication = async (token, applicationData) => {
  try {
    const response = await axios.post('https://dominio-ambiente.com.br/api/v2/partners/application', applicationData, {
      headers: {
        'Content-Type': 'application/json',
        'Authorization': `Bearer ${token}`
      }
    });

    console.log('Aplicação criada:', response.data.id);
    console.log('Nome:', response.data.name);
    console.log('Status:', response.data.status);
    
    return response.data;
    
  } catch (error) {
    console.error('Erro ao criar aplicação:', error.response?.data || error.message);
    return null;
  }
};

// Exemplo de uso
const applicationData = {
  name: "Nome da sua aplicação",
  scopes: ["cob.read", "cob.write"],
  description: "Uma descrição da sua aplicação",
  briefing: "Uma descrição curta da sua aplicação",
  category: "Categoria 1"
};

const token = "{{ access_token }}";
createApplication(token, applicationData);
import requests
import json

def create_application(token, application_data):
    url = "https://dominio-ambiente.com.br/api/v2/partners/application"
    
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {token}"
    }
    
    try:
        response = requests.post(url, json=application_data, headers=headers)
        response.raise_for_status()
        
        data = response.json()
        
        print(f"Aplicação criada: {data['id']}")
        print(f"Nome: {data['name']}")
        print(f"Status: {data['status']}")
        print(f"Escopos: {', '.join(data['scopes'])}")
        
        return data
        
    except requests.exceptions.RequestException as e:
        print(f"Erro na requisição: {e}")
        return None

# Exemplo de uso
application_data = {
    "name": "Nome da sua aplicação",
    "scopes": ["cob.read", "cob.write"],
    "description": "Uma descrição da sua aplicação",
    "briefing": "Uma descrição curta da sua aplicação",
    "category": "Categoria 1"
}

token = "{{ access_token }}"
result = create_application(token, application_data)
<?php

function createApplication($token, $applicationData) {
    $url = 'https://dominio-ambiente.com.br/api/v2/partners/application';
    
    // Configuração do cURL
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($applicationData));
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $token
    ]);
    
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $error = curl_error($ch);
    curl_close($ch);
    
    if ($error) {
        echo "Erro cURL: " . $error . "\n";
        return null;
    }
    
    if ($httpCode !== 200 && $httpCode !== 201) {
        echo "Erro HTTP: " . $httpCode . "\n";
        echo "Resposta: " . $response . "\n";
        return null;
    }
    
    $data = json_decode($response, true);
    
    if (json_last_error() !== JSON_ERROR_NONE) {
        echo "Erro ao decodificar JSON: " . json_last_error_msg() . "\n";
        return null;
    }
    
    echo "Aplicação criada: " . $data['id'] . "\n";
    echo "Nome: " . $data['name'] . "\n";
    echo "Status: " . $data['status'] . "\n";
    
    return $data;
}

// Exemplo de uso
$applicationData = [
    'name' => 'Nome da sua aplicação',
    'scopes' => ['cob.read', 'cob.write'],
    'description' => 'Uma descrição da sua aplicação',
    'briefing' => 'Uma descrição curta da sua aplicação',
    'category' => 'Categoria 1'
];

$token = '{{ access_token }}';
createApplication($token, $applicationData);
?>
{
  "id": "app-123-456-789",
  "partner": {
    "id": "partner-abc-def",
    "name": "Minha Empresa",
    "contact_email": "[email protected]",
    "contact_phone": "11999999999",
    "status": "active",
    "scopes": ["cob.read", "cob.write", "merchants.read"]
  },
  "name": "Nome da sua aplicação",
  "description": "Uma descrição da sua aplicação",
  "briefing": "Uma descrição curta da sua aplicação",
  "category": "Categoria 1",
  "scopes": [
    "cob.read",
    "cob.write"
  ],
  "client_id": null,
  "client_secret": null,
  "status": "pending",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:30:00Z"
}