> For the complete documentation index, see [llms.txt](https://docs.afipsdk.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.afipsdk.com/siguientes-pasos/web-services/factura-mipyme.md).

# Factura MiPyME

### Requisitos previos

Para poder usar esta guía, primero necesitarás:

* [Integrar Afip SDK en tu proyecto](/readme.md#integracion)

***

<https://servicioscf.afip.gob.ar/facturadecreditoelectronica/documentos/Manual-Desarrollador-WSFECRED.pdf>

<details>

<summary>Identificador <kbd>wsfecred</kbd></summary>

Producción <img src="/files/QGwOSkPC4zR0p25CSAil" alt="Produccion" data-size="line">

Desarrollo <img src="/files/lb3HDMp0GlHRr3vRpKIW" alt="Desarrollo" data-size="original">

</details>

### **Paso 1 - Crear una instancia del web service**

{% tabs %}
{% tab title="Node" %}

```js
const ws = afip.WebService('wsfecred');
```

{% endtab %}

{% tab title="PHP" %}

```php
$ws = $afip->WebService('wsfecred');
```

{% endtab %}

{% tab title="Ruby" %}

```ruby
ws = afip.webService("wsfecred")
```

{% endtab %}

{% tab title="Python" %}

```python
ws = afip.webService("wsfecred")
```

{% endtab %}

{% tab title=".NET" %}

```csharp
AfipWebService ws = afip.WebService("wsfecred");
```

{% endtab %}

{% tab title="Java" %}

```java
AfipWebService ws = afip.webService("wsfecred");
```

{% endtab %}

{% tab title="API" %}
No se requiere ninguna acción adicional.
{% endtab %}
{% endtabs %}

### **Paso 2 - Preparar lo datos para la solicitud**

En la [Referencia de API de Factura MiPyME](https://afipsdk.com/docs/api-reference/web-services/wsfecred/) pueden encontrar los métodos disponibles.

En este ejemplo vamos a usar los datos para el método `consultarMontoObligadoRecepcion`

{% tabs %}
{% tab title="Node" %}

```js
// Obtenemos el TA
const ta = await ws.getTokenAuthorization();
	
// Preparamos los datos
const data = {
    'authRequest': {
        'token': ta.token,
        'sign': ta.sign,
        'cuitRepresentada': afip.CUIT,
    },
    'cuitConsultada': '20409378472',
    'fechaEmision': '2024-03-03'
};
```

{% endtab %}

{% tab title="PHP" %}

```php
// Obtenemos el TA
$ta = $ws->GetTokenAuthorization();
	
// Preparamos los datos
$data = array(
	'authRequest' => array(
        'token' => $ta->token,
        'sign' => $ta->sign,
        'cuitRepresentada' => $afip->CUIT,
    ),
    'cuitConsultada' => '20409378472',
    'fechaEmision' => '2024-03-03'
);
```

{% endtab %}

{% tab title="Ruby" %}

```ruby
# Obtenemos el TA
ta = ws.getTokenAuthorization

# Preparamos los datos
data = {
  "authRequest": {
    "token": ta["token"],
    "sign": ta["sign"],
    "cuitRepresentada": afip.CUIT
  },
  "cuitConsultada": "20409378472",
  "fechaEmision": "2024-03-03"
}
```

{% endtab %}

{% tab title="Python" %}

```python
# Obtenemos el TA
ta = ws.getTokenAuthorization()

# Preparamos los datos
data = {
  "authRequest": {
    "token": ta["token"],
    "sign": ta["sign"],
    "cuitRepresentada": afip.CUIT
  },
  "cuitConsultada": "20409378472",
  "fechaEmision": "2024-03-03"
}
```

{% endtab %}

{% tab title=".NET" %}

```csharp
// Obtenemos el TA
var ta = await ws.GetTokenAuthorizationAsync();

// Preparamos los datos
var data = new Dictionary<string, object?>
{
    ["authRequest"] = new Dictionary<string, object?>
    {
        ["token"] = ta["token"],
        ["sign"] = ta["sign"],
        ["cuitRepresentada"] = afip.CUIT,
    },
    ["cuitConsultada"] = "20409378472",
    ["fechaEmision"] = "2024-03-03"
};
```

{% endtab %}

{% tab title="Java" %}

```java
// Obtenemos el TA
GetServiceTAResponse ta = ws.getTokenAuthorization();

// Preparamos los datos
Map<String, Object> authRequest = new HashMap<>();
authRequest.put("token", ta.getToken());
authRequest.put("sign", ta.getSign());
authRequest.put("cuitRepresentada", afip.getOptions().getCuit());

Map<String, Object> data = new HashMap<>();
data.put("authRequest", authRequest);
data.put("cuitConsultada", "20409378472");
data.put("fechaEmision", "2024-03-03");
```

{% endtab %}

{% tab title="API" %}
No se requiere ninguna acción adicional.
{% endtab %}
{% endtabs %}

### **Paso 3 - Ejecutamos la solicitud**

{% tabs %}
{% tab title="Node" %}

```js
const res = await ws.executeRequest('consultarMontoObligadoRecepcion', data);

console.log(res);
```

{% endtab %}

{% tab title="PHP" %}

```php
$res = $ws->ExecuteRequest('consultarMontoObligadoRecepcion', $data);

var_dump($res);
```

{% endtab %}

{% tab title="Ruby" %}

```
res = ws.executeRequest("consultarMontoObligadoRecepcion", data)

puts res
```

{% endtab %}

{% tab title="Python" %}

```python
res = ws.executeRequest("consultarMontoObligadoRecepcion", data)

print(res)
```

{% endtab %}

{% tab title=".NET" %}

```csharp
var res = await ws.ExecuteRequestAsync<Dictionary<string, object?>>("consultarMontoObligadoRecepcion", data);

Console.WriteLine(JsonSerializer.Serialize(res));
```

{% endtab %}

{% tab title="Java" %}

```java
Map<String, Object> res = ws.executeRequest("consultarMontoObligadoRecepcion", data);

System.out.println(res);
```

{% endtab %}

{% tab title="API" %}
**Endpoint**

<mark style="color:blue;">`POST`</mark> `https://app.afipsdk.com/api/v1/afip/requests`

**Ejemplo**

```json
{
    "environment": "dev",
    "method": "consultarMontoObligadoRecepcion",
    "wsid": "wsfecred",
    "params": {
        "authRequest": {
            "token": "{{token}}",
            "sign": "{{sign}}",
            "cuitRepresentada": "20409378472",
        },
        "cuitConsultada": "20409378472",
        "fechaEmision": "2024-03-03"
    }
}
```

{% endtab %}
{% endtabs %}
