# Carta de Porte Electrónica

### Requisitos previos

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

* [Integrar Afip SDK en tu proyecto](https://docs.afipsdk.com/readme#integracion)

***

<https://www.afip.gob.ar/ws/documentos/manual_wscpe_version-2-0-3.pdf>

<details>

<summary>Identificador <kbd>wscpe</kbd></summary>

Producción <img src="https://4026677166-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVEAVwm5cCW83gSe7NH8Z%2Fuploads%2Fgit-blob-4944303257ec5f74d0f9b49f0d89c4cb4b302961%2F7.png?alt=media" alt="Produccion" data-size="line">

Desarrollo <img src="https://4026677166-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FVEAVwm5cCW83gSe7NH8Z%2Fuploads%2Fgit-blob-547392654f2a6bbf00b6a58329457bda57d7684e%2F7.png?alt=media" alt="Desarrollo" data-size="original">

</details>

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

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

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

{% endtab %}

{% tab title="PHP" %}

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

{% endtab %}

{% tab title="Ruby" %}

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

{% endtab %}

{% tab title="Python" %}

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

{% endtab %}

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

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

En la [Referencia de API de Carta de Porte Electrónica](https://afipsdk.com/docs/api-reference/web-services/wscpe/) pueden encontrar los métodos disponibles.

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

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

```js
// Obtenemos el TA
const ta = await ws.getTokenAuthorization();
	
// Preparamos los datos
const data = {
	'auth': { 
		'token': ta.token,
		'sign': ta.sign,
		'cuitRepresentada': afip.CUIT
	},
	'solicitud': {
		'sucursal': 195,
		'tipoCPE': 1
	}
};
```

{% endtab %}

{% tab title="PHP" %}

```php
// Obtenemos el TA
$ta = $ws->GetTokenAuthorization();
	
// Preparamos los datos
$data = array(
	'auth' => array( 
		'token' => $ta->token,
		'sign' => $ta->sign,
		'cuitRepresentada' => $afip->CUIT
	),
	'solicitud' => array(
		'sucursal' => 195,
		'tipoCPE' => 1
	)
);
```

{% endtab %}

{% tab title="Ruby" %}

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

# Preparamos los datos
data = {
  "auth": { 
    "token": ta["token"],
    "sign": ta["sign"],
    "cuitRepresentada": afip.CUIT
  },
  "solicitud": {
    "sucursal": 195,
    "tipoCPE": 1
  }
}
```

{% endtab %}

{% tab title="Python" %}

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

# Preparamos los datos
data = {
  "auth": { 
    "token": ta["token"],
    "sign": ta["sign"],
    "cuitRepresentada": afip.CUIT
  },
  "solicitud": {
    "sucursal": 195,
    "tipoCPE": 1
  }
}
```

{% 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('consultarUltNroOrden', data);

console.log(res);
```

{% endtab %}

{% tab title="PHP" %}

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

var_dump($res);
```

{% endtab %}

{% tab title="Ruby" %}

```ruby
res = ws.executeRequest("consultarUltNroOrden", data)

puts res
```

{% endtab %}

{% tab title="Python" %}

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

print(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": "consultarUltNroOrden",
    "wsid": "wscpe",
    "params": {
            "auth": { 
                    "token": "{{token}}",
                    "sign": "{{sign}}",
                    "cuitRepresentada": "20409378472"
            },
            "solicitud": {
                    "sucursal": 195,
                    "tipoCPE": 1
            }
    }
}
```

{% endtab %}
{% endtabs %}
