Skip to content

Commit 97a32ea

Browse files
committed
docs: show how to select API error language
1 parent 6148632 commit 97a32ea

3 files changed

Lines changed: 70 additions & 7 deletions

File tree

‎README.es.md‎

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,13 +116,42 @@ Facturapi facturapi = Facturapi.builder("sk_test_...")
116116
Para pruebas o configuraciones avanzadas, puedes inyectar tu propio `OkHttpClient`:
117117

118118
```java
119+
import io.facturapi.http.FacturapiConfig;
119120
import okhttp3.OkHttpClient;
120121

121-
Facturapi facturapi = Facturapi.builder("sk_test_...")
122-
.httpClient(new OkHttpClient())
123-
.build();
122+
Facturapi facturapi = new Facturapi(
123+
FacturapiConfig.builder("sk_test_...")
124+
.httpClient(new OkHttpClient())
125+
.build());
124126
```
125127

128+
## Idioma de los errores de la API
129+
130+
En API V2 puedes solicitar mensajes de error en inglés con `Accept-Language`. Usa la configuración existente del cliente:
131+
132+
```java
133+
import io.facturapi.Facturapi;
134+
import io.facturapi.http.FacturapiConfig;
135+
import java.time.Duration;
136+
import okhttp3.OkHttpClient;
137+
138+
OkHttpClient httpClient = new OkHttpClient.Builder()
139+
.connectTimeout(Duration.ofSeconds(30))
140+
.callTimeout(Duration.ofSeconds(30))
141+
.addInterceptor(chain -> chain.proceed(
142+
chain.request().newBuilder()
143+
.header("Accept-Language", "en")
144+
.build()))
145+
.build();
146+
147+
Facturapi facturapi = new Facturapi(
148+
FacturapiConfig.builder("YOUR_API_KEY")
149+
.httpClient(httpClient)
150+
.build());
151+
```
152+
153+
Usa `es` para español. También se aceptan variantes como `en-US` y preferencias como `en;q=0.9, es;q=0.5`. Sin el header o sin un idioma compatible, la API usa español. La preferencia se aplica a todas las solicitudes de esta instancia; usa instancias separadas si necesitas varios idiomas. Los códigos no cambian y los mensajes externos SAT/PAC y los mensajes legacy no catalogados conservan su idioma original. La localización depende del soporte de API V2 en el servidor; no traduce errores locales del SDK.
154+
126155
## Documentación
127156

128157
Docs completas: [https://docs.facturapi.io](https://docs.facturapi.io)

‎README.md‎

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,13 +116,42 @@ Facturapi facturapi = Facturapi.builder("sk_test_...")
116116
For tests or advanced setups, you can inject your own `OkHttpClient`:
117117

118118
```java
119+
import io.facturapi.http.FacturapiConfig;
119120
import okhttp3.OkHttpClient;
120121

121-
Facturapi facturapi = Facturapi.builder("sk_test_...")
122-
.httpClient(new OkHttpClient())
123-
.build();
122+
Facturapi facturapi = new Facturapi(
123+
FacturapiConfig.builder("sk_test_...")
124+
.httpClient(new OkHttpClient())
125+
.build());
124126
```
125127

128+
## API error language
129+
130+
For API V2, request English error messages with `Accept-Language` using the existing client configuration:
131+
132+
```java
133+
import io.facturapi.Facturapi;
134+
import io.facturapi.http.FacturapiConfig;
135+
import java.time.Duration;
136+
import okhttp3.OkHttpClient;
137+
138+
OkHttpClient httpClient = new OkHttpClient.Builder()
139+
.connectTimeout(Duration.ofSeconds(30))
140+
.callTimeout(Duration.ofSeconds(30))
141+
.addInterceptor(chain -> chain.proceed(
142+
chain.request().newBuilder()
143+
.header("Accept-Language", "en")
144+
.build()))
145+
.build();
146+
147+
Facturapi facturapi = new Facturapi(
148+
FacturapiConfig.builder("YOUR_API_KEY")
149+
.httpClient(httpClient)
150+
.build());
151+
```
152+
153+
Use `es` for Spanish. Regional variants such as `en-US` and preferences such as `en;q=0.9, es;q=0.5` are also supported. Missing or unsupported language preferences fall back to Spanish. The setting applies to all requests from this instance; use separate instances for different languages. Codes remain unchanged, and external SAT/PAC messages and uncataloged legacy messages retain their original language. Localization requires server-side API V2 support; it does not translate local SDK errors.
154+
126155
## Documentation
127156

128157
Full docs: [https://docs.facturapi.io](https://docs.facturapi.io)

‎src/test/java/io/facturapi/FacturapiHttpClientTest.java‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,13 @@ void sendsBearerAuthAndParsesTypedJson() throws Exception {
1717
StubHttpClient httpClient = new StubHttpClient();
1818
httpClient.enqueueJson(200, "{\"ok\":true}");
1919

20+
var builder = httpClient.client().newBuilder();
21+
builder.interceptors().add(0, chain -> chain.proceed(
22+
chain.request().newBuilder().header("Accept-Language", "en-US").build()
23+
));
2024
FacturapiHttpClient client = new FacturapiHttpClient(
2125
FacturapiConfig.builder("sk_test_123")
22-
.httpClient(httpClient.client())
26+
.httpClient(builder.build())
2327
.build()
2428
);
2529

@@ -28,6 +32,7 @@ void sendsBearerAuthAndParsesTypedJson() throws Exception {
2832

2933
var request = httpClient.requests().get(0);
3034
assertEquals("Bearer sk_test_123", request.headers().firstValue("Authorization").orElse(""));
35+
assertEquals("en-US", request.headers().firstValue("Accept-Language").orElse(""));
3136
assertEquals("POST", request.method());
3237
assertEquals("/v2/invoices?page=1", request.uri().getPath() + "?" + request.uri().getQuery());
3338
}

0 commit comments

Comments
 (0)