{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"f56fe1ad-7bdf-4e23-a46d-a7fc3bc7ceff","name":"API 20 Bananas 2.7","description":"**Last revision: 2023/06/06**\n\n<img src=\"https://api.20bananas.com/docs/united-kingdom.png\">\n\nAPI to connect your data in 20 Bananas. In each table you have an index that is indicated. This index will be unique and it is allways mandatory.\n\nSome technical considerations:\n\n- IMPORTANT: All data (Clients, Products, Offers, Rates, Favorites...) except Orders and payments GO FROM ERP to 20 Bananas (do not USE get from those endpoints, they are only there so you can check that the posts you have made have worked) . If you have questions about this, please contact us. UNDERSTANDING THIS WILL SAVE YOU HOURS OF UNNECESSARY WORK.\n    \n- The Data model of all endpoints are here: [API20Bananas_2.7_DATAMODEL.txt](https://api.20bananas.com/docs/API20Bananas_2.7_DATAMODEL.txt)\n    \n- UTF-8 encoding\n    \n- Number format without thousands separator and point as decimal separator. Example: 1004.56\n    \n- Numerical values without quotation marks.\n    \n- Dates in international format: YYYY-MM-DD - Example: 2023-05-22\n    \n- You can send GET queries to any endpoint (except exceptions) filtering by index keys, with this schema: .../_endpoint_/indexkey1/indexkey2 You can use \\* as wildcard on index key 1 to filter only by index key 2.\n    \n- GET requests to endpoints only return a maximum of 1,000 records. In this case, the data is paginated. To obtain the remaining records, you must request the different pages by adding the page parameter to the request header, and the value is the number of pages. In this case, \"totalRecords\" is returned in the response, indicating the total number of records for pagination.\n    \n- The PATCH method (in the endpoints that are available) is used to send the data and refresh it all at once. The system will delete the records that do not arrive in the shipment with the PATCH method, it will update the ones that already exist and insert the missing ones.\n    \n\nGood practice manual:\n\nLIMITS (maximum 2MB during the day, at night it is free but please be careful)\n\nHere the details.\n\nDuring the DEVELOPMENT period we DO NOT limit the fee for sending and collecting data to make your work easier. We ask for caution and if you have any questions, contact us or request a quick and free doubt session with our technicians.\n\nWhen the account is moved to PRODUCTION there are 2 time zones each day:  \n🌑 A- No limits during the night from 1:00am -> 6:59am  \n🌞 B- Limited to 2MB during the day 7:00am -> 0:59am (because that is when customers are placing orders and there is more traffic)\n\n<img src=\"https://api.20bananas.com/docs/spain.png\">\n\nAPI de conexión a sus datos en 20 Bananas. En cada tabla tiene un índice que está indicado. Este índice será único y es siempre obligatorio.\n\nAlgunas consideraciones técnicas:\n\n- IMPORTANTE: Todos los datos (Clientes, Productos, Ofertas, Tarifas, Favoritos...) excepto Pedidos y cobros VAN DEL ERP a 20 Bananas (no hagas get de esos endpoints, sólo están para que puedas comprobar que los post que has hecho han funcionado). Si tienes dudas sobre esto contactanos por favor. ENTENDER ESTO TE AHORRARÁ HORAS DE TRABAJO INNECESARIO.\n    \n- El modelo de datos de todos los endpoint se ecuentra aquí: [API20Bananas_2.7_DATAMODEL.txt](https://api.20bananas.com/docs/API20Bananas_2.7_DATAMODEL.txt)\n    \n- Codificación UTF-8\n    \n- El formato de números es sin separador de miles y el punto como separador de decimales. Ejemplo: 1004.56\n    \n- Los valores numéricos sin entrecomillado.\n    \n- Las fechas en formato internacional: YYYY-MM-DD - Ejemplo: 2023-05-22\n    \n- Puedes enviar consultas GET a cualquier endpoint (salvo excepciones) filtrando por sus índices siguiendo el esquema:  \n    .../_endpoint_/indexkey1/indexkey2  \n    Puedes usar un asterisco como comodín en el índice 1 para filtrar solo por el índice 2.\n    \n- Los GET a endpoints solo devuelven 1000 registros como máximo, en este caso los datos están paginados, para obtener el resto de registros hay que pedirles las distintas páginas añadiendo el parámetro page en el header de la petición, y el valor el número de páginas. Además en este caso en la respuesta se devuelve \"totalRecords\" que indica el número total de registro para poder paginarlo.\n    \n- El método PATCH (en los endpoints que esté disponible) sirve para enviar los datos y refrescarlos todo de una vez. El sistema borrará los registros que no lleguen en el envío con el método PATCH, actualizará los que ya exista e insertará los que faltan.\n    \n\nManual de buenas prácticas:\n\nLÍMITES (de día máximo 2MB, de noche es libre pero precaución por favor)\n\nAquí los detalles.\n\nDurante el periodo de DESARROLLO NO limitamos la cuota de envio y recogida de datos para facilitaros la labor. Pedimos pruedencia y ante cualquier duda contactarnos o pedir una sesión de dudas rápida y gratuita con nuestros técnicos.\n\nCuando se pasa la cuenta a PRODUCCIÓN hay 2 zonas horarias cada día:  \n🌑 A- Sin límites durante la noche de 1:00am -> 6:59am  \n🌞 B- Limitado a 2MB durante el día 7:00am -> 0:59am (por que es cuando los clientes están emitiendo pedidos y hay más tráfico)","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"771460","team":5213853,"collectionId":"f56fe1ad-7bdf-4e23-a46d-a7fc3bc7ceff","publishedId":"2s93sXdvGT","public":true,"publicUrl":"https://documenter-api.postman.tech/view/771460/2s93sXdvGT","privateUrl":"https://go.postman.co/documentation/771460-f56fe1ad-7bdf-4e23-a46d-a7fc3bc7ceff","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FFC300"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"system_default","themes":[{"name":"dark","logo":"https://content.pstmn.io/64aa3112-3cd0-469c-93a3-b2b1afaade94/bG9nb2FtYXJpbGxvX2ZvbmRvdHJhbnNwYXJlbnRlLnBuZw==","colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FFC300"}},{"name":"light","logo":"https://content.pstmn.io/b553fd44-e262-494b-892f-4d76f8978e16/bG9nb2FtYXJpbGxvLnBuZw==","colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FFC300"}}]}},"version":"8.10.1","publishDate":"2023-06-06T08:39:29.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":"https://content.pstmn.io/b553fd44-e262-494b-892f-4d76f8978e16/bG9nb2FtYXJpbGxvLnBuZw==","logoDark":"https://content.pstmn.io/64aa3112-3cd0-469c-93a3-b2b1afaade94/bG9nb2FtYXJpbGxvX2ZvbmRvdHJhbnNwYXJlbnRlLnBuZw=="}},"statusCode":200},"environments":[{"name":"20b envirovement DOCUMENTATION","id":"d24cfd13-c75c-4b8d-b337-02694ce5c7a9","owner":"771460","values":[{"key":"version","value":"<api_version>","enabled":true},{"key":"debugapikey","value":"<su_apikey>","enabled":true},{"key":"proveid","value":"1","enabled":false,"type":"default"},{"key":"debugmode","value":"true","enabled":false}],"published":true}],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/0d8fde606945072ea792bc514a6470c21391aa956bdc992732dd563241dff277","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"},{"label":"20b envirovement DOCUMENTATION","value":"771460-d24cfd13-c75c-4b8d-b337-02694ce5c7a9"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/2s93sXdvGT"}