Manual da API REST - Versão 1.0
Autenticação A autenticação é feita através do fornecimento da sua API Key em todas as requisições. É possível obte-la através do menu configurações, aba API, de dentro da sua conta do Asaas. Sua API Key carrega muitos privilégios, portanto certifique-se de mantê-la secreta. Além disso, não é possível recuperá-la caso a perca, sendo necessário a geração de uma nova. A API Key deve ser transmitida em todas as requisições no header access_token. Caso a chave seja inválida ou não informada você reberá como retorno o status HTTP 401. Todas as requisições devem utilizar HTTPS. Requisições feitas através de HTTP falharão. Resposta Todas as repostas da API são objetos JSON. Status HTTP de retorno O Asaas utiliza respostas HTTP convencionais para indicar sucesso ou falha nas requisições. Via de regra, status 2xx indicam sucesso, status 4xx indicam falhas decorrentes de erros nas informações enviadas, e status 5xx indicam erros internos no servidor do Asaas. 200 OK - Tudo ocorreu conforme o esperado. 400 Bad Request - Algum parâmetro obrigatório não foi enviado ou é inválido. 401 Unauthorized - A API Key enviada é inválida. 404 Not Found - O objeto solicitado não existe. 500 Internal Server Error - Algo deu errado no servidor do Asaas. Exemplo de reposta para status HTTP 400: "errors":[ "code":"invalid_value", "description":"o campo value deve ser informado", "code":"invalid_duedate", "description":"o campo duedate deve ser informado" ]
Listagem/Paginação É possível listar Clientes, Assinaturas, Cobranças e Notificações. Para paginar os resultados da lista são utilizados dois parâmetros: limit: quantidade de objetos por página offset: posição do objeto a partir do qual a página deve ser carregada. O objeto inicial possui a posição 0. Por exemplo, utilizando limit 10 e offset 0 será retornada a primeira página com 10 objetos. Utilizando limit 10 e offset 10 trará a segunda página, limit 10 e offset 20 a terceira página, e assim por diante. O limit deve ser um valor numérico entre 1 e 100. Caso seja omitido será utilizado o valor padrão: 10. Exemplo de resposta para listagem "object":"list", "hasmore":true, "limit":10, "offset":0, "data":[ "object":"payment", "id":"pay_tvnbgqwwub9t", "customer":170, "value":159.0, "netvalue":154.0, "originalvalue":null, "nossonumero":"30086894", "description":"cobrança Junho/2014", "billingtype":"boleto", "status":"pending", "duedate":"20/06/2014", "paymentdate":"01/06/2014", "invoiceurl":"https://www.asaas.com/p/vc/vvoypti8", "boletourl":"https://www.asaas.com/b/pdf/vvoypti8", "deleted":false,...,... ] Os objetos localizados, de acordo com os parâmetros da requisição, ficam no atributo data. O atributo hasmore terá o valor true sempre houver mais uma página a ser buscada, considerando o offset previamente utilizado.
Objeto Cliente (customer) Atributos Nome Tipo Finalidade id String Identificador único do cliente name String Nome do cliente email String Email do cliente company String Nome da compania phone String Telefone do cliente. Formato: (00) 0000-0000 mobilephone String Telefone celular do cliente. Formato: (00) 0000-0000 address String Endereço da assinatura (Rua, Av, etc) addressnumber String Número do endereço complement String Complemento do endereço province String Bairro do endereço city String Cidade do cliente state String Estado (UF) do cliente. Utilizar valores padrão (SP, RJ, SC, MG, BA, etc) country String País do cliente. Somente Brasil. postalcode String Código postal (CEP) cpfcnpj String CPF ou CNPJ do cliente (somente números) persontype String Define se cliente pessoa física ou juridica. Valores válidos: FISICA ou JURIDICA subscriptions Lista Lista de assinaturas do cliente, caso exista. Verificar objeto subscription. payments Lista Lista de cobranças do cliente, caso exista. Verificar objeto payment notifications Lista Lista de notificações do cliente, caso exista. Verificar objeto notification
Criar um novo cliente https://asaas.com/api/v1/customers Recuperar cliente existente https://asaas.com/api/v1/customers/customer_id Atualizar cliente https://asaas.com/api/v1/customers/customer_id Remover cliente DELETE https://asaas.com/api/v1/customers/customer_id Listar clientes https://asaas.com/api/v1/customers Exemplo de resposta (JSON) "object":"customer", "id":"cus_lbbjq2l4z0k7", "name":"joão Silva", "email":"joao.silva@email.com", "company":null, "phone":"(11) 00000000", "mobilephone":"(11) 000000000", "address":"rua Adalberto Silva", "addressnumer":null, "complement":"apto 205", "province":null, "city":"são Paulo", "state":"sp", "country":"brasil", "postalcode":null, "cpfcnpj":"089.926.717-33", "persontype":null, "deleted":false, "subscriptions":..., "payments":..., "notifications":...
Objeto Assinatura (subscription) Atributos Nome Tipo Finalidade id String Identificar único da assinatura customer String Identificador único do cliente value Double Valor da assinatura nextduedate Data (dd/mm/yyy) Data de vencimento da próxima cobrança cycle String Intervalo de cobrança. Veriricar tabela de intervalos. billingtype String Forma de pagamento.. Valores válidos: BOLETO. description String Descrição da assinatura payments Lista Lista de cobranças da assinatura Intervalos de assinatura Valor MONTHLY QUARTERLY SEMIANNUALLY YEARLY Descrição Mensal Trimestral Semestral Anual
Criar uma nova assinatura https://asaas.com/api/v1/subscriptions Recuperar assinatura existente https://asaas.com/api/v1/subscriptions/subscription_id Atualizar assinatura https://asaas.com/api/v1/subscriptions/subscription_id Remover assinatura DELETE https://asaas.com/api/v1/subscriptions/subscription_id Listar assinaturas https://asaas.com/api/v1/subscriptions Listar assinaturas de um cliente específico https://asaas.com/api/v1/customers/customer_id/subscriptions Exemplo de resposta (JSON) "object":"subscription", "id":"sub_ni728ydjjgpg", "customer":"cus_lbbjq2l4z0k7", "value":59.9, "nextduedate":"06/07/2014", "cycle":"monthly", "description":"plano 2 vezes por semana", "billingtype":"boleto", "deleted":false, "payments": "object":"list", "hasmore":false, "limit":10, "offset":0, "data":[...,... ]
Objeto Cobrança (payment) Atributos Nome Tipo Finalidade id String Identificador único da cobrança customer String Identificador único do cliente subscription String Identificador único da assinatura, quando houver. billingtype String Forma de pagamento. Valores válidos: BOLETO. value Double Valor da cobrança netvalue Double Valor líquido (calculado pelo Asaas) originalvalue Double Valor original (preenchido somente quando a cobrança é recebida com valor diferente do cadastrado) duedate Date Data de vencimento. status String Status da cobrança (Verificar tabela de status). nossonumero String Identificador único do boleto bancário description String Descrição da cobrança invoiceurl String Link público para a fatura boletourl String Link público para dow nload do PDF do boleto Status de cobrança Valor PENDING RECEIVED OVERDUE Descrição Aguardando pagamento Cobrança paga Cobrança atrasada
Criar uma nova cobrança https://asaas.com/api/v1/payments Recuperar cobrança existente https://asaas.com/api/v1/payments/payment_id Atualizar cobrança https://asaas.com/api/v1/payments/payment_id Remover cobrança DELETE https://asaas.com/api/v1/payments/payment_id Listar cobranças https://asaas.com/api/v1/payments Listar cobranças de um cliente específico https://asaas.com/api/v1/customers/customer_id/payments Exemplo de resposta (JSON) "object":"payment", "id":"pay_tvnbgqwwub9t", "customer":"cus_lbbjq2l4z0k7", "subscription":"sub_ni728ydjjgpg", "value":59.9, "netvalue":54.9, "originalvalue":null, "nossonumero":"07691040", "description":null, "billingtype":"boleto", "status":"pending", "duedate":"06/06/2014", "paymentdate":null, "invoiceurl":"https://www.asaas.com/p/vc/vvoypti8",, "boletourl":"https://www.asaas.com/b/pdf/vvoypti8",, "deleted":false
Objeto Notificação (notification) Atributos Nome Tipo Finalidade id String Identificador único da notificação customer String Identificador único do cliente event String Tipo de evento (Verificar tabela de eventos) scheduleoffset Integer Somente para o evento PAYMENT_DUEDATE_WARNING. Especifica quantos dias antes do vencimento a notificação deve ser enviada. Valores válidos: 0, 5, 10 ou 15 emailenabledforprovider Boolean Desabilita/habilita envio de email para o fornecedor smsenabledforprovider Boolean Desabilita/habilita envio de sms para o fornecedor emailenabledforcustomer Boolean Desabilita/habilita envio de email para o cliente smsenabledforcustomer Boolean Desabilita/habilita envio de sms para o cliente enabled Boolean Desabilita/habilita a notificação Eventos disponíveis Nome PAYMENT_CREATED PAYMENT_UPDATED PAYMENT_RECEIVED PAYMENT_OVERDUE PAYMENT_DUEDATE_WARNING Evento Geração de nova cobrança Alteração no vencimento ou valor de cobrança existente. Confirmação de pagamento. Cobrança vencida Aviso de vencimento da cobrança
Criar uma nova notificação https://asaas.com/api/v1/notifications Recuperar notificação existente https://asaas.com/api/v1/notifications/notification_id Atualizar notificação https://asaas.com/api/v1/notifications/notification_id Remover notificação DELETE https://asaas.com/api/v1/notifications/notification_id Listar notificações https://asaas.com/api/v1/notifications Listar notificações de um cliente específico https://asaas.com/api/v1/customers/customer_id/notifications Exemplo de resposta (JSON) "object":"notification", "id":"not_okscr4uo4hp4", "customer":"cus_lbbjq2l4z0k7", "enabled":true, "emailenabledforprovider":false, "smsenabledforprovider":false, "emailenabledforcustomer":true, "smsenabledforcustomer":false, "event":"payment_duedate_warning", "scheduleoffset":0, "deleted":false
Aplicativo para testes Para testar a API sugerimos que seja utilizado o aplicativo REST Console, disponível na Chrome Web Store. Com ele é possível testar todos os métodos da API, incluindo recuperação, criação e atualização de dados. Acesse: https://chrome.google.com/webstore/detail/rest-console/cokgbflfommojglbmbpenpphppikmonn