# Reviso
# Primeros pasos
## Reviso cosas
### Cuestión Autenticación
De momento es sencillo.
Se trata de que hay un **Gran Token** para el **agreement** **1257729** que es el acuerdo de desarrollador
Entrando en ese acuerdo en app.reviso.com, se dio de alta una app para usar el otro acuerdo, el nacional, con numero **125746** que tiene su propio Gran token.
Después hay un publico y un **secret** que es el que se usa de forma global para acompañar al otro token.
### Cuestión endpoints
> Hay un articulo interesante [Use Apis](https://help.reviso.com/en/articles/5573892-use-the-apis) donde se peude obtener una coleccion Postman. (Actualmente de 2023)
Los endpoints son únicos y la forma de buscar es un poco liosa en Postman, aunque parece que mas sencilla para programarlo.
Vien definido en [Filtering](https://api-docs.reviso.com/#filtering)
```json
?filter=name$eq:Joe$and:city$like:*port
```
#### Operadores de filtro
Operator | Syntax |
---|
Equals | `$eq:` |
Not equals | `$ne:` |
Greater than | `$gt:` |
Greater than or equal | `$gte:` |
Less than | `$lt:` |
Less than or equal | `$lte:` |
Substring match | `$like:` |
And also | `$and:` |
Or else | `$or:` |
In | `$in:` |
Not In | `$nin:` |
#### Soporte LIKE
Podemos hacer bésquedas de sub strings con `$like`
#### Caracteres especiales y su escape
- "$" is escaped with "$$"
- "(" is escaped with "$("
- ")" is escaped with "$)"
- "*" is escaped with "$*"
- "," is escaped with "$,"
- "\[" is escaped with "$\["
- "\]" is escaped with "$\]"
#### Otras cuestiones
Se puede forzar la bsuqueda de un valor null. con `$null:`
Se pueden usar `in` and `not` como operadores en campos numéricos
```
customerNumber$in:[2,5,7,22,45]
```
#### Escape en URL
Esto es muy especial, por si buscamos que lo dudo por caracteres
- "<" is escaped with "0"
- ">" is escaped with "*1*"
- "\*" is escaped with "*2*"
- "%" is escaped with "*3*"
- ":" is escaped with "*4*"
- "&" is escaped with "*5*"
- "/" is escaped with "*6*"
- "" is escaped with "*7*"
- "\_" is escaped with "*8*"
- " " is escaped with "*9*"
- "?" is escaped with "*10*"
- "." is escaped with "*11*"
- "#" is escaped with "*12*"
- "+" is escaped with "*13*"
Ejemplo de url para obtener el producto ABC 2/3
```json
https://rest.reviso.com/products/ABC_9_2_6_3
```
#### Paginacion
Admite hasta 1000
```json
?pagesize=200
```
# Proceso Clientes
## Crear un cliente
Endpoint: `https://rest.reviso.com/customers`Método: `POST`Body Mínimo:
```json
{
"address": "Santa clara, 8",
"city": "Arenys de Mar",
"corporateIdentificationNumber": "B63637953",
"country": "España",
"countryCode": {
"code": "ES"
},
"currency": "EUR",
"customerGroup": {
"customerGroupNumber": 1
},
"email": "admin@setdart.com",
"province": {
"countryCode": {
"code": "ES"
},
"provinceNumber": 8
},
"zip": "08359",
"name": "Setdart online, S.L.",
"vatNumber": "B63637953",
"vatZone": {
"vatZoneNumber": 1
},
"paymentTerms": {
"paymentTermsNumber": 10
}
}
```
Y se reibe el dato completo si uno hay errores, con un `201`
```json
{
"address": "Santa clara, 8",
"balance": 0.00,
"city": "Arenys de Mar",
"corporateIdentificationNumber": "B63637953",
"country": "España",
"countryCode": {
"code": "ES"
},
"currency": "EUR",
"customerGroup": {
"customerGroupNumber": 1
},
"email": "admin@setdart.com",
"province": {
"countryCode": {
"code": "ES"
},
"provinceNumber": 8
},
"zip": "08359",
"name": "Setdart online, S.L.",
"vatNumber": "B63637953",
"vatZone": {
"vatZoneNumber": 1
},
"paymentTerms": {
"paymentTermsNumber": 10
}
}
```
### Sobre los campos especificos
Campos que deben ir
#### CustomeerGroup
`https://rest.reviso.com/customer-groups`
Número | Descripcion |
---|
1 | Clientes nacionales |
2 | Clientes EU |
3 | Cliente con retenciones. NO se usa |
4 | Clientes moneda extranjera. No se usa |
5 | Clientes fuera EU |
#### VatZone
`https://rest.reviso.com/vat-zones`
Plantea serias dudas pednientes de consulta.
Número | Descripción |
---|
1 | Domestic |
2 | VAT Zone |
3 | Outside EU |
4 | Domestic Exento |
7 | España Recergo de Equivalencia |
#### Payment Terms
Dedidido por el 10 creod por mi.