longinus / asaas-sdk
Asaas.com PHP API包装器
v1.0.2
2024-05-28 18:51 UTC
Requires
- php: >=7.2
README
SDK非官方集成www.asaas.com的API
进行中的项目
安装
composer require Longinus/Asaas-sdk
示例
<?php require 'vendor/autoload.php'; use Longinus\Asaas\Asaas; // Instancie o cliente Asaas usando a instância do adapter previamente criada. $Asaas = new Asaas('seu_token_de_acesso');
端点
如果想在测试模式下使用API,请在创建客户端时指定环境
。
// Obs.: Caso não seja informado o segundo parâmetro a API entra em modo de produção $Asaas = new Asaas('seu_token_de_acesso', 'producao|homologacao');
客户端
// Retorna a listagem de clientes $clientes = $Asaas->Cliente()->getAll(array $filtros); // Retorna os dados do cliente de acordo com o Id $clientes = $Asaas->Cliente()->getById(123); // Retorna os dados do cliente de acordo com o Email $clientes = $Asaas->Cliente()->getByEmail('email@mail.com'); // Insere um novo cliente $clientes = $Asaas->Cliente()->create(array $dadosCliente); // Atualiza os dados do cliente $clientes = $Asaas->Cliente()->update(123, array $dadosCliente); // Restaura um cliente $Asaas->Cliente()->restaura(123); // Deleta uma cliente $Asaas->Cliente()->delete(123);
收款
// Retorna a listagem de cobranças $cobrancas = $Asaas->Cobranca()->getAll(array $filtros); // Retorna os dados da cobrança de acordo com o Id $cobranca = $Asaas->Cobranca()->getById(123); // Retorna a listagem de cobranças de acordo com o Id do Cliente $cobrancas = $Asaas->Cobranca()->getByCustomer($customer_id); // Retorna a listagem de cobranças de acordo com o Id da Assinaturas $cobrancas = $Asaas->Cobranca()->getBySubscription($subscription_id); // Insere uma nova cobrança / cobrança parcelada / cobrança split $cobranca = $Asaas->Cobranca()->create(array $dadosCobranca); // Atualiza os dados da cobrança $cobranca = $Asaas->Cobranca()->update(123, array $dadosCobranca); // Restaura cobrança removida $cobranca = $Asaas->Cobranca()->restore(id); // Estorna cobrança $cobranca = $Asaas->Cobranca()->estorno(id); // Confirmação em dinheiro $cobranca = $Asaas->Cobranca()->confirmacao(id); // Desfazer confirmação de recebimento em dinheiro $cobranca = $Asaas->Cobranca()->dezconfirmacao(id); // Deleta uma cobrança $Asaas->Cobranca()->delete(123);
Pix
要创建Pix,需要添加一个收款,然后使用这个收款id生成Pix的qrCode,请注意,qrCode将在同一天的23:59h之前生成。QrCode以base64格式提供。
$Pix = $Asaas->Pix()->create($id_cobranca); if($Pix->success){ echo '<img src="data:image/jpeg;base64, '.$Pix->encodedImage.'" />'; } //Consulta se foi efetivado o pagamento via Pix, (Obs: Recomendo um post a cada 30s, ou um botão para confirmação do pagamento, assim não sobrecarregado o seu sistema e nem o do Asaas ;) ). $retorno = $Asaas->Pix()->get($id_cobranca);
付款链接
// Retorna a listagem de cobranças $LinkPagamento = $Asaas->LinkPagamento()->getAll(array $filtros); // Retorna os dados da cobrança de acordo com o Id $LinkPagamento = $Asaas->LinkPagamento()->getById($id); // Insere uma nova cobrança / cobrança parcelada / cobrança split $LinkPagamento = $Asaas->LinkPagamento()->create(array $dadosLink); Body { "name": "Venda de livros", "description": "Qualquer livro por apenas R$: 50,00", "endDate": "2021-02-05", "value": 50, "billingType": "UNDEFINED", "chargeType": "DETACHED", "dueDateLimitDays": 10, "subscriptionCycle": null, "maxInstallmentCount": 1 } $dadosLink = array( 'name' => 'Nome do link de pagamentos -> String required', 'description' => 'Descrição do link de pagamentos -> String', 'endDate' => 'Data de encerramento, a partir desta data o seu link de pagamentos será desativado automaticamente', 'value' => 'Valor do link de pagamentos, caso não informado o pagador poderá informar o quanto deseja pagar', /* Forma de pagamento permitida BOLETO -> Boleto Bancário CREDIT_CARD -> Cartão de Crédito UNDEFINED -> Perguntar ao Cliente */ 'billingType' => 'UNDEFINED', //required /* Forma de cobrança DETACHED -> Avulsa RECURRENT -> Assinatura INSTALLMENT -> Parcelamento */ 'chargeType' => 'DETACHED' //required /* Caso seja possível o pagamento via boleto bancário, define a quantidade de dias úteis que o seu cliente poderá pagar o boleto após gerado */ 'dueDateLimitDays' => '10', /* Periodicidade da cobrança, envio obrigatório caso a forma de cobrança selecionado seja Assinatura WEEKLY -> Semanal BIWEEKLY -> Quinzenal (2 semanas) MONTHLY -> Mensal QUARTERLY -> Trimestral SEMIANNUALLY -> Semestral YEARLY -> Anual 'subscriptionCycle' => 'MONTHLY', */ /* Quantidade máxima de parcelas que seu cliente poderá parcelar o valor do link de pagamentos caso a forma de cobrança selecionado seja Parcelamento. Caso não informado o valor padrão será de 1 parcela */ 'maxInstallmentCount' => '1' ); // Atualiza os dados da cobrança $LinkPagamento = $Asaas->LinkPagamento()->update($id, array $dadosLink); // Restaura cobrança removida $LinkPagamento = $Asaas->LinkPagamento()->restore(id); // Estorna cobrança $LinkPagamento = $Asaas->LinkPagamento()->estorno(id); // Confirmação em dinheiro $LinkPagamento = $Asaas->LinkPagamento()->confirmacao(id); // Deleta uma cobrança $Asaas->LinkPagamento()->delete(123);
订阅
Os status possíveis de uma cobrança são os seguintes: [PENDING] - Aguardando pagamento [RECEIVED] - Recebida (saldo já creditado na conta) [CONFIRMED] - Pagamento confirmado (saldo ainda não creditado) [OVERDUE] - Vencida [REFUNDED] - Estornada [RECEIVED_IN_CASH] - Recebida em dinheiro (não gera saldo na conta) [REFUND_REQUESTED] - Estorno Solicitado [CHARGEBACK_REQUESTED] - Recebido chargeback [CHARGEBACK_DISPUTE] - Em disputa de chargeback (caso sejam apresentados documentos para contestação) [AWAITING_CHARGEBACK_REVERSAL] - Disputa vencida, aguardando repasse da adquirente [DUNNING_REQUESTED] - Em processo de recuperação [DUNNING_RECEIVED] - Recuperada [AWAITING_RISK_ANALYSIS] - Pagamento em análise // Retorna a listagem de assinaturas $assinaturas = $Asaas->Assinatura()->getAll(array $filtros); // Retorna os dados da assinatura de acordo com o Id $assinatura = $Asaas->Assinatura()->getById(123); // Retorna a listagem de assinaturas de acordo com o Id do Cliente $assinaturas = $Asaas->Assinatura()->getByCustomer($customer_id); // Insere uma nova assinatura /* Assinatura via Boleto $dadosAssinatura = array( "customer" => "{CUSTOMER_ID}", "billingType" => "BOLETO", "nextDueDate" => "2017-05-15", "value" => 19.9, "cycle" => "MONTHLY", "description" => "Assinatura Plano Pró", "discount" => array( "value" => 10, "dueDateLimitDays" => 0 ), "fine" => array( "value": 1 ), "interest" => array( "value": 2 ) ); Assinatura via cartão de credito $dadosAssinatura = array( "customer" => "{CUSTOMER_ID}", "billingType" => "CREDIT_CARD", "nextDueDate" => "2017-05-15", "value" => 19.9, "cycle" => "MONTHLY", "description" => "Assinatura Plano Pró", "creditCard" => array( "holderName" => "marcelo h almeida", "number" => "5162306219378829", "expiryMonth" => "05", "expiryYear" => "2021", "ccv" => "318" ), "creditCardHolderInfo" => array( "name" => "Marcelo Henrique Almeida", "email" => "marcelo.almeida@gmail.com", "cpfCnpj" => "24971563792", "postalCode" => "89223-005", "addressNumber" => "277", "addressComplement" => null, "phone" => "4738010919", "mobilePhone" => "47998781877" ) ); */ $assinatura = $Asaas->Assinatura()->create(array $dadosAssinatura); // Atualiza os dados da assinatura $assinatura = $Asaas->Assinatura()->update(123, array $dadosAssinatura); Listar notas fiscais das cobranças de uma assinatura /* $parametos = array( 'offset' => '', 'limit' => '', 'status' => '', */ $assinatura = $Asaas->Assinatura()->getNotaFiscal($id, array $parametos); // Deleta uma assinatura $Asaas->Assinatura()->delete(123);
预付款
$Antecipacao = $Asaas->Antecipacao()->getAll($filtro); Parametros Filtro para retorno $filtro = array( 'payment' => 'Filtrar antecipações de uma cobrança -> string', 'installment' => 'Filtrar antecipações de um parcelamento -> String', 'status' => 'Filtrar por status -> String', 'offset' => 'Elemento inicial da lista -> Number', 'limit' => 'Número de elementos da lista (max: 100) -> Number', ) $Antecipacao = $Asaas->Antecipacao()->create($dados); Dados Para solicitação de antecipação = array() { "agreementSignature": "João Almeida", "installment": null, "payment": "pay_626366773834", "documents": [<file>] } Recupera uma Antecipação $Asaas = $Asaas->Antecipacao()->getBy($id); Dados de retorno { "object": "receivableAnticipation", "id": "9e7d8639-350f-45c0-8bc3-d4ddc5f4ebac", "installment": null, "payment": "pay_626366773834", "status": "PENDING", "anticipationDate": "2019-05-20", "dueDate": "2019-05-26", "requestDate": "2019-05-14", "fee": "2.33", "anticipationDays": "6", "netValue": "73.68", "totalValue": "80.00", "value": "76.01", "denialObservation": null }
账单支付
Retorna Lista $Pagar = $Asaas->PagarConta()->getAll($filtro); $filtro = array( 'offset' => 'Elemento inicial da lista -> Number', 'limit' => 'Número de elementos da lista (max: 100) -> Number', ); $Pagar = $Asaas->PagarConta()->create($dados); Parametros Filtro para retorno $dados = array( 'identificationField' => 'Linha digitável do boleto -> required string', 'scheduleDate' => 'Data de agendamento do pagamento -> string', 'description' => 'Descrição do pagamento de conta -> string', 'discount' => 'Desconto atribuido ao pagamento -> number', 'dueDate' => 'Data de vencimento da conta caso seja do tipo que não possui essa informação -> string', 'value' => 'Valor da conta caso seja do tipo que não possui essa informação (Ex: faturas de cartão de crédito) -> number', ) /* * Simulação Pagar Conta * */ $Pagar = $Asaas->PagarConta()->simulate($dados); Dados simulação $dados = array( 'identificationField' => 'Linha digitável do boleto', /* OU */ 'barCode' => 'Código de barras do boleto', ); Recupera um Pagamento $Pagar = $Asaas->PagarConta()->getBy($id); Dados de retorno { "object": "bill", "id": "f1bce822-6f37-4905-8de8-f1af9f2f4bab", "status": "PENDING", "value": 29.9, "discount": 0, "identificationField": "03399.77779 29900.000000 04751.101017 1 81510000002990", "dueDate": "2020-01-31", "scheduleDate": "2020-01-31", "fee": 0, "description": "Celular 01/12", "companyName": null, "transactionReceiptUrl": "https://www.asaas.com/comprovantes/00016578", "canBeCancelled": false, "failReasons": null }
Serasa查询
Retorna Lista $ConsultaSerasa = $Asaas->ConsultaSerasa()->getAll($filtro); $filtro = array( 'startDate' => 'Filtrar a partir da data de criação -> String', 'endDate' => 'Filtrar até uma data de criação -> String', 'offset' => 'Elemento inicial da lista -> Number', 'limit' => 'Número de elementos da lista (max: 100) -> Number', ); Dados de retorno { "object": "list", "hasMore": false, "totalCount": 1, "limit": 10, "offset": 0, "data": [ { "id": "6c5e73fa-9efd-4a75-b60c-1cafb8d1c7ed", "dateCreated": "2021-01-27", "cpfCnpj": "05666663755", "state": "SC", "customer": "cus_000000001766", "downloadUrl": "https://www.asaas.com.br/creditBureauReport/download/6c5e73fa-9efd-4a75-b60c-1cafb8d1c7ed" } ] } Cria uma consulta As consultas junto ao Serasa Experian são realizadas no momento da solicitação, para evitar possíveis percas de conexão, sugerimos um timeout de 30 segundos ou mais. Ao realizar a consulta será retornado o atributo reportFile contendo o PDF da consulta em Base64, este campo apenas é retornado no momento da criação da consulta, caso precise obte-lo novamente será necessário realizar o download por meio da url presente no campo downloadUrl. Para realizar a consulta você terá que informar um CPF ou CNPJ e o estado onde deseja realizar a consulta. Caso queira informar um cliente já cadastrado na sua conta Asaas: Este deverá possuir um CPF ou CNPJ já cadastrado O envio do estado se torna opcional caso já conste no cadastro do cliente $ConsultaSerasa = $Asaas->ConsultaSerasa()->create($dados); Parametros Create $dados = array( 'customer' = 'Identificador único do cliente no Asaas -> String', 'cpfCnpj' = 'CPF ou CNPJ do cliente. Informe este campo caso seu cliente não esteja cadastrado no Asaas -> String', 'state' = 'Estado em que deseja realizar a consulta. -> required EX: PE ou PB etc', ) Consulta Valida até as 23:59 do dia da consulta dados de retorno { "id": "6c5e73fa-9efd-4a75-b60c-1cafb8d1c7ed", "dateCreated": "2021-01-27", "cpfCnpj": "05666663755", "state": "SC", "customer": "cus_000000001766", "downloadUrl": "https://www.asaas.com.br/creditBureauReport/download/6c5e73fa-9efd-4a75-b60c-1cafb8d1c7ed" } Recupera consulta $ConsultaSerasa = $Asaas->ConsultaSerasa()->getBy($id); Dados de retorno { "id": "6c5e73fa-9efd-4a75-b60c-1cafb8d1c7ed", "dateCreated": "2021-01-27", "cpfCnpj": "05666663755", "state": "SC", "customer": "cus_000000001766", "downloadUrl": "https://www.asaas.com.br/creditBureauReport/download/6c5e73fa-9efd-4a75-b60c-1cafb8d1c7ed" }
发票
允许企业(法人)向其客户开具发票。可以针对现有的收款开具发票。
在开具发票之前,需要填写账户的税务信息。点击这里了解如何操作。
发票可能的状态如下
SCHEDULED - 已安排
SYNCHRONIZED - 已发送至市政厅
AUTHORIZED - 已开具
PROCESSING_CANCELLATION - 正在处理取消
CANCELED - 已取消
CANCELLATION_DENIED - 取消被拒绝
ERROR - 开具错误
//Recuperar dados comerciais /* Parametros */ $dados = array( 'effectiveDate[ge]' => 'Filtrar a partir de uma data de emissão -> Date (Y-m-d)', 'effectiveDate[le]' => 'Filtrar até uma data de emissão -> String', 'payment' => 'Filtrar pelo identificador único da cobrança -> String', 'installment' => 'Filtrar pelo identificador único do parcelamento -> String', 'externalReference' => 'Identificador da nota fiscal no seu sistema -> String', 'status' => 'Filtrar por situação -> Enum', 'offset' => 'Elemento inicial da lista -> Number', 'limit' => 'Número de elementos da lista (max: 100) -> Number', ); $NotaFiscal = $Asaas->NotaFiscal()->getAll($dados); /*Agenda Nota Fiscal*/ $dados = array( "payment" => "pay_637959110194", "installment" => null, "serviceDescription" => "Nota fiscal da Fatura 101940. \nDescrição dos Serviços: ANÁLISE E DESENVOLVIMENTO DE SISTEMAS", "observations" => "Mensal referente aos trabalhos de Junho.", "value" => 300, "deductions" => 0, "effectiveDate" => "2018-07-03", "externalReference" => null, "taxes" => array( "retainIss" => false, "iss" => 3, "cofins" => 3, "csll" => 1, "inss" => 0, "ir" => 1.5, "pis" => 0.65 ), "municipalServiceId" => null, "municipalServiceCode" => "1.01", "municipalServiceName" => "Análise e desenvolvimento de sistemas" ); $NotaFiscal = $Asaas->NotaFiscal()->create($dados); /*Agenda Nota Fiscal*/ $dados = array( "serviceDescription" => "Nota fiscal da Fatura 101940. \nDescrição dos Serviços: ANÁLISE E DESENVOLVIMENTO DE SISTEMAS", "observations" => "Mensal referente aos trabalhos de Junho.", "value" => 300, "deductions" => 0, "effectiveDate" => "2018-07-03", "externalReference" => null, "taxes" => array( "retainIss" => false, "iss" => 3, "cofins" => 3, "csll" => 1, "inss" => 0, "ir" => 1.5, "pis" => 0.65 ), ); $NotaFiscal = $Asaas->NotaFiscal()->update($dados); //Emitir Nota Fiscal $NotaFiscal = $Asaas->NotaFiscal()->issueInvoice($id); //Listar serviços municipais $NotaFiscal = $Asaas->NotaFiscal()->ListMunicipalServices($descricao);
税务信息
//Recuperar Informações Fiscais $InformacoesFiscais = $Asaas->InformacoesFiscais()->get(); /*Cria e atualiza informações Fiscais*/ $dados = array( "object" => "customerFiscalInfo", "simplesNacional" => false, "rpsSerie" => "1", "rpsNumber" => 1, "loteNumber" => 1, "username" => "usuario", "specialTaxRegime" => "1", "email" => "marcelo.almeida@gmail.com", "serviceListItem" => null, "cnae" => "6209100", "culturalProjectsPromoter" => false, "municipalInscription" => "21779501", "stateInscription" => null, "password" => "secret", "accessToken" => null, "certificateFile" => null, "certificatePassword" => "secret" ); $InformacoesFiscais = $Asaas->InformacoesFiscais()->createUpdate($dados); //Listar configurações municipais $InformacoesFiscais = $Asaas->NotaFiscal()->ListMunicipalConfigurations();
我的账户
//Recuperar dados comerciais $MinhaConta = $Asaas->MinhaConta()->get(); // Recuperar configurações de personalização $MinhaConta = $Asaas->MinhaConta()->getConf();
Web Hook
$dados = array( name => "Web Teste" [string required] [Nome do Web Hook] url => "www.teste.com.br" [string required] [URL que receberá as informações de sincronização] email => "teste@teste.com.br" [string required] [Email para receber as notificações em caso de erros na fila] sendType => 'SEQUENTIALLY/NON_SEQUENTIALLY' [string] [Sequencial (SEQUENTIALLY) ou não sequencial (NON_SEQUENTIALLY)] [Default: SEQUENTIALLY] apiVersion => 3 [int32 required] [Versão utilizada da API. Utilize "3" para a versão v3] [Default: 3] enabled => true/false [boolean required] [Habilitar ou não o webhook] authToken => '123asd123asd' [string] [Token de autenticação] events => ['evento teste', 'evento teste2'] [array required] [Lista dos eventos que este Webhook irá observar] ) $dados2 = array( name => "Web Teste" [string required] [Nome do Web Hook] url => "www.teste.com.br" [string required] [URL que receberá as informações de sincronização] email => "teste@teste.com.br" [string required] [Email para receber as notificações em caso de erros na fila] sendType => 'SEQUENTIALLY/NON_SEQUENTIALLY' [string] [Sequencial (SEQUENTIALLY) ou não sequencial (NON_SEQUENTIALLY)] [Default: SEQUENTIALLY] apiVersion => 3 [int32 required] [Versão utilizada da API. Utilize "3" para a versão v3] [Default: 3] enabled => true/false [boolean required] [Habilitar ou não o webhook] authToken => '123asd123asd' [string] [Token de autenticação] events => ['evento teste', 'evento teste2'] [array required] [Lista dos eventos que este Webhook irá observar] ) $web = $Asaas->WebhookSub(); $webhook = $web->addInstace(array $dados, interrupted => false); [FirstParam required, SecondParam default true] $webhook = $web->addInstace(array $dados2, interrupted => false); [FirstParam required, SecondParam default true] $webhooksub = $webhook->getWebHookArray();
子账户
//Criando uma sub conta $dados = array( name => "Exemplo" [string required] [Nome da subconta] email => "exemplo@gmail.com" [string required] [Email da subconta] loginEmail => "exemplo2@gmail.com" [string] [Email para login da subconta, caso não informado será utilizado o email da subconta] cpfCnpj => "00000000000 || 00000000000000" [string required] [CPF ou CNPJ do proprietário da subconta] birthDate => "2000-12-30" [string] [Data de Nascimento] companyType => "MEI; LIMITED; INDIVIDUAL; ASSOCIATION" [string] [Tipo da empresa (somente quando Pessoa Jurídica)] phone => "11 11111111" [string] [Fone fixo] mobilePhone => "11 111111111" [string required] [Fone celular] site => "www.exemplo.com.br" [string] [enviar URL referente ao site da conta filha] incomeValue => 123412 [number required] [Faturamento/Renda mensal] address => "Rua Endereço" [string required] [Logradouro] addressNumber => "999" [string required] [Número do endereço] complement => "casa" [string] [Complemento do endereço] province => "centro" [string required] [Bairro] postalCode => "88888888" [string required] [CEP do endereço] webhooks => $webhook->getWebHookArray() [array of objects] [class WebHook] ); $MinhaConta = $Asaas->SubConta(); $MinhaConta->create($dados); $dados = array( "cpfCnpj" => '00000000000000 | 000000000' [string] [Filtrar pelo cpf ou cnpj da subconta] "email" => 'exemplodeUso@gm.com' [string] [Filtrar pelo email da subconta] "name" => 'NomeDaConta' [string] [Filtrar pelo nome da subconta] "walletId" => '1231231a12-123asdasd1-asdasdasd123asd-123asd13ads' [string] [Filtrar pelo walletId da subconta] "offset" => 1 [integer] [Elemento inicial da lista] "limit" => 100 [integer] [Número de elementos da lista (max: 100)] ); $MinhaConta = $Asaas->SubConta()->getAll($dados);
白标
$wl = $Asaas->WhiteLabel(); $fileExample = file_get_contents(public_path('img/jumbo.png')); $dados = [ "documentFile" => new CURLFile($filePath) [Arquivo required], "type" => "IDENTIFICATION" [string required] [Tipo de documento: IDENTIFICATION, SOCIAL_CONTRACT, ENTREPRENEUR_REQUIREMENT, MINUTES_OF_ELECTION, CUSTOM] ]; $id = '21313231213213232' [string required] [Identificador único do documento] $wl->create($id, $dados) [Mandando arquivos via white label] $wl->pendentes() [Recebe uma lista dos arquivos e status deles] $wl->getDocument($id) [Visualiza o documento enviado e o status dele] $wl->update($id, $dados) [Atualiza o arquivo via white label] $wl->delete($id) [Deleta o arquivo via white label]
通知
// Retorna a listagem de notificações $notificacoes = $Asaas->Notificacao()->getAll(array $filtros); // Retorna os dados da notificação de acordo com o Id $notificacao = $Asaas->Notificacao()->getById(123); // Retorna a listagem de notificações de acordo com o Id do Cliente $notificacoes = $Asaas->Notificacao()->getByCustomer($customer_id); // Insere uma nova notificação $notificacao = $Asaas->Notificacao()->create(array $dadosNotificacao); // Atualiza os dados da notificação $notificacao = $Asaas->Notificacao()->update(123, array $dadosNotificacao); // Deleta uma notificação $Asaas->Notificacao()->delete(123);
官方文档
注意:这是一个非官方API。它基于以下链接提供的文档制作:此链接。
致谢
支持
支持
安全:如果您发现任何安全相关的问题,请通过contato@Longinus.com发送电子邮件,而不是使用问题跟踪器。
如果您发现任何与安全相关的问题,请通过contato@Longinus.com发送电子邮件,而不是使用问题跟踪器。
谢谢
致谢
许可
MIT许可(MIT)。请参阅许可文件以获取更多信息。