La API del sistema facilita la integración con otras aplicaciones. En los ejemplos siguientes, utilizamos la herramienta de
CURL - puede cambiarla a cualquier idioma de ordenador.
Por favor contáctanos si necesitas cualquier función adicional de API, la añadiremos lo más pronto posible.
Todos los ejemplos funcionan también con JSON (simplemente necesita cambiar la extensión de xml a json)
La documentación actual está disponible en GitHub: https://github.com/bitfactura/API
El token de API lo tienes que descargar de los ajustes de la aplicación (“Ajustes -> Ajustes de cuenta -> Integración -> Código de autorización de API”)
Selecciona todas las facturas de un período de tiempo específico
selecciona facturas del mes actual:
XML curl "http://YOUR_DOMAIN.bitfactura.com/invoices.xml?period=this_month&api_token=YOUR_TOKEN_FROM_APP_SETTINGS"
JSON curl "http://YOUR_DOMAIN.bitfactura.com/invoices.json?period=this_month&api_token=YOUR_TOKEN_FROM_APP_SETTINGS"
Puede introducir los mismos parámetros que están introducidos en la aplicación (en la lista de facturas)
XML curl "http://YOUR_DOMAIN.bitfactura.com/invoices/100.xml&api_token=YOUR_TOKEN_FROM_APP_SETTINGS"
JSON curl "http://YOUR_DOMAIN.bitfactura.com/invoices/100.json&api_token=YOUR_TOKEN_FROM_APP_SETTINGS"
Descargar factura por ID
XML curl "http://YOUR_DOMAIN.bitfactura.com/invoices?oid=nr_zam&api_token=YOUR_TOKEN_FROM_APP_SETTINGS"
JSON curl "http://YOUR_DOMAIN.bitfactura.com/invoices?oid=nr_zam&api_token=YOUR_TOKEN_FROM_APP_SETTINGS"
Añadir una factura nueva
JSON (recomendado) >
CURL
curl http://YOUR_DOMAIN.bitfactura.com/invoices.json -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{ "api_token": "YOUR_TOKEN_FROM_APP_SETTINGS", "invoice": { "kind":"vat", "number": null, "sell_date": "2013-02-07", "issue_date": "2013-02-07", "payment_to": "2013-02-14", "seller_name": "Wystawca Sp. z o.o.", "seller_tax_no": "5252445767", "buyer_name": "Klient1 Sp. z o.o.", "buyer_tax_no": "5252445767", "positions":[ {"name":"Produkt A1", "tax":23, "total_price_gross":10.23, "quantity":1}, {"name":"Produkt A2", "tax":0, "total_price_gross":50, "quantity":3} ] }}'
Descargar el código CURL
Ruby
endpoint = 'http://YOUR_DOMAIN.bitfactura.com/invoices.json' uri = URI.parse(endpoint) json_params = { "api_token" => "YOUR_TOKEN_FROM_APP_SETTINGS", "invoice" => { "kind" =>"vat", "number" => nil, "sell_date" => "2013-02-07", "issue_date" => "2013-02-07", "payment_to" => "2013-02-14", "seller_name" => "Wystawca Sp. z o.o.", "seller_tax_no" => "5252445767", "buyer_name" => "Klient1 Sp. z o.o.", "buyer_tax_no" => "5252445767", "positions" =>[ {"name" =>"Produkt A1", "tax" =>23, "total_price_gross" =>10.23, "quantity" =>1}, {"name" =>"Produkt A2", "tax" =>0, "total_price_gross" =>50, "quantity" =>3} ] }} request = Net::HTTP::Post.new(uri.path) request.body = JSON.generate(json_params) request["Content-Type"] = "application/json" http = Net::HTTP.new(uri.host, uri.port) response = http.start {|h| h.request(request)} if response.code == '201' ret = JSON.parse(response.body) else ret = response.body end puts ret.to_json
Descargar el código Ruby
Si tiene un cliente (cliente_id) y vendedor (department_id):
curl http://YOUR_DOMAIN.bitfactura.com/invoices.json -u 'login:YOUR_PASSWORD -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"api_token": "YOUR_TOKEN_FROM_APP_SETTINGS", "invoice": { "kind":"vat", "number": null, "sell_date": "2013-02-07", "issue_date": "2013-02-07", "payment_to": "2013-02-14", "department_id": 1, "client_id": 2, "buyer_name": "Klient1 Sp. z o.o.", "buyer_tax_no": "5252445767", "positions":[ {"name":"Produkt A1", "tax":23, "total_price_gross":10.23, "quantity":1}, {"name":"Produkt A2", "tax":0, "total_price_gross":50, "quantity":3} ] }}'
Descargar el código CURL
XML curl http://YOUR_DOMAIN.bitfactura.com/invoices.xml -u 'login:YOUR_PASSWORD -H 'Accept: application/xml' -H 'Content-Type: application/xml' -d '
Descargar el código CURL
Eliminar factura
XML curl -X DELETE "http://YOUR_DOMAIN.bitfactura.com/invoices/100.xml?api_token=YOUR_TOKEN_FROM_APP_SETTINGS"
JSON curl -X DELETE "http://YOUR_DOMAIN.bitfactura.com/invoices/100.json?api_token=YOUR_TOKEN_FROM_APP_SETTINGS"
Productos
curl "http://YOUR_DOMAIN.bitfactura.com/products.xml&api_token=YOUR_TOKEN_FROM_APP_SETTINGS"
Seleciona producto por su ID
curl "http://YOUR_DOMAIN.bitfactura.com/products/100.xml&api_token=YOUR_TOKEN_FROM_APP_SETTINGS"
Widget
Para descargar el formulario de pagos (JS), usar el URL:
http://app.bitfactura.dev/a/YOUR_DOMAIN/p/{{token}}.js
donde {{token}} es el símbolo del producto
Clientes
curl "http://YOUR_DOMAIN.bitfactura.com/clients.xml&api_token=YOUR_TOKEN_FROM_APP_SETTINGS"
Selecciona cliente por su ID
curl "http://YOUR_DOMAIN.bitfactura.com/clients/100.xml&api_token=YOUR_TOKEN_FROM_APP_SETTINGS"
Cliente por correo electrónico o contraseña
sus clientes pueden ingresar utilizando su correo electrónico y contraseña curl "http://YOUR_DOMAIN.bitfactura.com/clients/check?email=marcin@email.com&password=haslo_przykladowe&api_token=YOUR_TOKEN_FROM_APP_SETTINGS"
nota: es importante mantener los apóstrofes en el url
Pagos
XML curl "http://YOUR_DOMAIN.bitfactura.com/payments.xml&api_token=YOUR_TOKEN_FROM_APP_SETTINGS"
JSON curl "http://YOUR_DOMAIN.bitfactura.com/payments.json&api_token=YOUR_TOKEN_FROM_APP_SETTINGS"
Selecciona pago por su ID
XML curl "http://YOUR_DOMAIN.bitfactura.com/payments/100.xml&api_token=YOUR_TOKEN_FROM_APP_SETTINGS"
JSON curl "http://YOUR_DOMAIN.bitfactura.com/payment/100.json&api_token=YOUR_TOKEN_FROM_APP_SETTINGS"
Añadir un pago nuevo
JSON (recomendado) curl http://YOUR_DOMAIN.bitfactura.com/payments.json -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{ "api_token": "YOUR_TOKEN_FROM_APP_SETTINGS", "payment": { "city": null, "client_id":null, "comment":null, "country":null, "currency":"PLN", "deleted":false, "department_id":null, "description":"abonament roczny", "email":"email@email.pl", "first_name":"Jan", "generate_invoice":true, "invoice_city":"Warszawa", "invoice_comment":"", "invoice_country":null, "invoice_id":null, "invoice_name":"Company name", "invoice_post_code":"00-112", "invoice_street":"street 52", "invoice_tax_no":"5252445767", "last_name":"Kowalski", "name":"Plantnosc za produkt1", "oid":"", "paid":true, "paid_date":null, "phone":null, "post_code":null, "price":"100.00", "product_id":1, "promocode":"", "provider":"transfer", "provider_response":null, "provider_status":null, "provider_title":null, "quantity":1, "street":null }}'
Obtener código de CURL
Más ejemplos: https://github.com/iinvoiceocean/api