La API del sistema facilita 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
API token
El token de API lo tiene que descargar de los ajustes de la aplicación (“Ajustes -> Ajustes de cuenta -> Integración -> Código de autorización de API”)
Facturas
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)
Selecciona factura por ID
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 tal 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 / servicios
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
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
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