Esta API permite que sejam desenvolvidas soluções informáticas que integrem o Keyinvoice de forma a poder centralizar as suas facturas, encomendas, clientes e produtos.
A nossa API utiliza um WebService (SOAP) detalhadamente documentado, o que lhe permite criar as suas aplicações ou sites com comunicação à sua aplicação de facturação Keyinvoice.
Só precisa de ter uma conta no Keyinvoice, e a partir deste gerar o identificador - API_KEY - que lhe permitirá integrar o seu software de facturação com as suas soluções desenvolvidas à medida.
Se por algum motivo o seu identificador API_KEY ficar comprometido, pode gerar um novo na sua aplicação Keyinvoice. Recomendamos que mantenha este identificador seguro, de forma a proteger os seus dados.
O serviço está acessível através do endereço https://login.keyinvoice.com/API3_ws.php?wsdl.
Todos os parâmetros devem ser passados, (a assinatura dos métodos tem de ser respeitada), mas os 'Parâmetros não vazios', marcados com *, são obrigados a ter conteúdo, diferente de string vazia ('').
Tipicamente, se a resposta for um array, a posição [0] contém o código de resposta, e a posição [1], se existir, contém os dados relevantes de resposta desse método.
Se a resposta for um objecto, então a posição ->RC contém o código de resposta e a posição ->DAT contém os dados relevantes de resposta desse método.
Existem algumas excepções que poderão consultar nesta documentação.
A api permite fazer muitas das funcionalidades do Keyinvoice, consulte o separador "métodos" para conhecer todas as funcionalidades disponíveis.
A API está limitada a 5000 chamadas diárias. A utilização da mesma continuará a ser gratuita, no entanto, terá este limite diário. Caso pretenda utilizar diariamente mais do que o limite definido poderá adquirir pack's adicionais. Mais informações contacte-nos através do email suporte@keyinvoice.com
Neste exemplo vamos utilizar vários métodos para criar:
-Uma Sessão válida
-Um cliente
-Um artigo
-Uma fatura utilizando o cliente e artigo criado
-Enviar Documento por email
$WS_URL = 'https://login.keyinvoice.com/API3_ws.php?wsdl'; $API_KEY = 'INSIRA A SUA CHAVE AQUI'; $soap = new soapclient( $WS_URL ); $result = $soap->authenticate( $API_KEY ); $APISession = $result[1]; //DEFINIR DADOS CLIENTE $nif = "510072801"; $name = "Keyinvoice"; $address = "Alameda dos Oceanos, 41-O 32A"; $postalCode = "1990-203"; $locality = "LISBOA"; $phone = "211933556"; $fax = ""; $email = "suporte@keyinvoice.com"; $obs = "Cliente de teste"; //CRIAR CLIENTE $create_client = $soap->insertClient( $APISession, $nif, $name, $address, $postalcode, $locality, $phone, $fax, $email, $obs ); print_r( $create_client ); //DEFINIR DADOS PRODUTO $ref = "0022"; $designation = "Produto de teste"; $shortName = "Ptest"; $tax = "23"; $obs = "teste"; $isService = "0"; $hasStocks = "0"; $active = "1"; $shortDesc = "Descricao 123"; $longDesc = "Descricao longa, teste 123."; $price = "100"; $vendorRef = ""; $ean = ""; //CRIAR PRODUTO $product = $soap->insertProduct( $APISession, $ref, $designation, $shortName, $tax, $obs, $isService, $hasStocks, $active, $shortDesc, $longDesc, $price, $vendorRef, $ean); print_r($product); //DEFINE O TIPO DE DOCUMENTO 4 = FATURA $doctype = 4; $obs = ""; $opt_name = ""; $opt_nif = ""; $opt_address = ""; $opt_locality = ""; $opt_postalCode = ""; $docRef = ""; //CRIAR CABECALHO DO DOCUMENTO PASSANDO O NIF DO CLIENTE CRIADO $insert_document = $soap->insertDocumentHeader( $APISession, $nif , $doctype, $obs, $opt_name, $opt_nif, $opt_address, $opt_locality, $opt_postalCode, $docRef ); print_r($insert_document); //DEFINE O ID DO DOCUMENTO $idDocTemp = $insert_document[1]; //NAO E NECESSARIO DEFINIR ESTA INFORMACAO, O SISTEMA VAI BUSCAR OS VALORES DEFINIDOS NO PRODUTO $qt = ""; $price = ""; $tax = ""; $prodDesc = ""; $discount = ""; //CRIAR UMA LINHA PARA O DOCUMENTO PASSANDO A REF DO PRODUTO CRIADO $insert_document_line = $soap->insertDocumentLine( $APISession, $idDocTemp, $doctype, $ref, $qt, $price, $tax, $prodDesc, $discount ); print_r( $insert_document_line ); //FECHAR O DOCUMENTO, SE O DOCUMENTO NAO FOR FECHADO FICARA EM RASCUNHO NO SISTEMA $close_document = $soap->closeDocument( $APISession, $idDocTemp, $doctype ); //DEFINIR O ID DO DOCUMENTO FINAL $idDocTemp = $close_document[1]; print_r( $close_document ); //DEFINIR OS DADOS PARA O ENVIO DO EMAIL $email_destinations = 'suporte@keyinvoice.com'; $email_subject = 'Titulo email'; $email_body = 'Segue em anexo o documento!'; //ENVIAR EMAIL COM DOC EM ANEXO. //AS CONFIGURACOES PARA O ENVIO DO EMAIL TEEM QUE ESTAR BEM CONFIGURADAS NA SUA CONTA KEYINVOICE! $email = $soap->sendDocumentPDF2Email ( $APISession, $idDocTemp, $doctype, $email_destinations, $email_subject, $email_body ); print_r( $email ); die;
Conta o número total de documentos do tipo indicado gravados na base de dados.
[sid]* - identificador de sessão [docType]* - tipo de documento. Ver tabela de Tipos de documentos possíveis.
::array ( [0]=> 1, [1]=>(número de resultados) ) ::array ( [0]=> -4 ) ::array ( [0]=> -5 )