0% encontró este documento útil (0 votos)
93 vistas16 páginas

API MiCorreo: Guía de Uso y Autenticación

Cargado por

Luciano Martinez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Temas abordados

  • peso del envío,
  • respuesta JSON,
  • número de calle,
  • servicios disponibles,
  • piso de dirección,
  • valor declarado,
  • código de respuesta,
  • dimensiones del envío,
  • código de error,
  • altura del envío
0% encontró este documento útil (0 votos)
93 vistas16 páginas

API MiCorreo: Guía de Uso y Autenticación

Cargado por

Luciano Martinez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Temas abordados

  • peso del envío,
  • respuesta JSON,
  • número de calle,
  • servicios disponibles,
  • piso de dirección,
  • valor declarado,
  • código de respuesta,
  • dimensiones del envío,
  • código de error,
  • altura del envío

Correo Argentino - API MiCorreo.

md 8/8/2022

Correo Argentino: API MiCorreo


La API de MiCorreo se utiliza principalmente para cotizar envíos, e importarlos en la plataforma de MiCorreo.

Esta API está organizada en torno a REST. Nuestra API tiene direcciones URL predecibles orientadas a los
recursos, acepta solicitudes 'form-encoded', devuelve respuestas 'JSON-encode' y utiliza códigos de
respuesta, autenticación y verbos HTTP estándar.

URL Base
Todas las URLs referenciadas en esta documentación corresponden a la siguiente base:

Ambiente QA (Testing)

[Link]

Ambiente Productivo

[Link]

La API se sirve a través de HTTPS. Para garantizar la privacidad de los datos, no se admite HTTP sin
cifrar.

Autentificación
La API de MiCorreo utiliza JWT tokens para autorizar las solicitudes. Para obtener el token de autorización
deberán previamente autentificarse a través de HTTP Basic Auth. Las credenciales de acceso deberán ser
solicitadas a Correo para cada uno de los ambientes.

Request

curl -X POST ${BASE_URL}/token -u ${user}:${password}

Response (200 OK):

{
"token":
"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJtYm9mIiwiYXVkIjoiQ29ycmVvIEFyZ2Vu
dGlubyIsIm1lbWJlciBvZiI6Ik1pZGRsZXdhcmUiLCJpc3MiOiJDT1JBU0EiLCJleHAiOjE2NTEwMTg1OD
[Link]-iX1kAKKUZB6NwyGGFsXzVrCB-
Cmy8Q",
"expires": "2022-04-26 [Link]"
}
1 / 16
Correo Argentino - API [Link] 8/8/2022

Response (401 Unauthorized):

{
"code": "401",
"message": "Unauthorized"
}

Para consumir el resto de los endpoints deberá enviar la solicitud con el encabezado de autorización
'Authorization' (bearer auth):

curl -X POST ${BASE_URL}/register


-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
-H 'Content-Type: application/json'
-d '{"firstName":"Juan","lastName":"Gonzalez",...}'

Todas las solicitudes deben realizarse a través de HTTPS. Las llamadas realizadas a través de HTTP
simple fallarán. Las solicitudes de API sin autenticación también fallarán

Sus claves API tienen muchos privilegios, ¡así que asegúrese de mantenerlas seguras! No comparta sus
claves API secretas en áreas de acceso público como GitHub, código del lado del cliente, etc.

Errores
Usamos códigos de respuesta HTTP convencionales para indicar el éxito o el fracaso de una solicitud API. En
general: los códigos en el rango 2xx indican éxito. Los códigos en el rango 4xx indican un error que falló dada
la información proporcionada (por ejemplo, se omitió un parámetro requerido, falló una carga, etc.). Los
códigos en el rango 5xx indican un error con los servidores de Correo (estos son raros).

Response Example (404 NOT FOUND):

{
"code": "404",
"message": "Resource not found",
}

HTTP Status Code Summary

200 - OK Todo funcionó como se esperaba.

400 - Bad
La solicitud es inaceptable (probablemente a la falta de un parámetro obligatorio).
Request

2 / 16
Correo Argentino - API [Link] 8/8/2022

401 -
No se ha proporcionado un token de acceso válido.
Unauthorized

402 - Request
Los parámetros enviados son válidos pero la solicitud falló.
Failed

403 - Forbidden El token de acceso no tiene permisos para realizar la solicitud.

404 - Not Found El recurso solicitado no existe.

La solicitud entra en conflicto con otra solicitud (quizás debido al uso de la misma
409 - Conflict
clave idempotente).

429 - Too Many Demasiadas solicitudes llegan a la API demasiado rápido. Recomendamos un
Requests retroceso exponencial de sus solicitudes.

50x - Server
Servicio no disponible
Errors

Endpoints
/register [POST], registra un usuario nuevo en MiCorreo.
/users/validate [POST], devuelve el id de un usuario de MiCorreo.
/agencies [GET], devuelve las sucursales de una provincia determinada.
/rates [POST], devuelve la cotización de un envío.
/shipping/import [POST], importa un envío a MiCorreo.

/register [POST]
Registra un nuevo usuario en la plataforma MiCorreo. Hay dos tipos de alta de usuario posibles, consumidor
final o con CUIT, para monotributistas o responsables inscriptos.

Body Attributes

Campo Descripción Requerido

firstName Nombre ✔

lastName ** Apellido

* Dirección de correo electrónico, no debe existir en la plataforma


email ✔
MiCorreo.

Tipo de documento, "DNI" para consumidores finales, "CUIT" para


documentType ✔
monotributistas o responsables inscriptos.

documentId Número de DNI o CUIT, según el campo documentType. ✔

phone Número de teléfono.

cellPhone Número de celular.

[Link] ** Nombre de la calle de la dirección.

3 / 16
Correo Argentino - API [Link] 8/8/2022

Campo Descripción Requerido

[Link] ** Altura o número de la dirección

[Link] Piso de la dirección.

[Link] Departamento (piso dpto.) de la dirección.

[Link] ** Nombre de la ciudad de la dirección.

[Link] ** Codigo de la provincia de la dirección.

[Link] ** Código Postal de la dirección.

* Este servcio no dispone de ningún mecanismo de validación del correo electrónico (campo email).

** obligatorio para DNI.

Request - Registro consumidor final:

{
"firstName": "Juan",
"lastName": "Gonzalez",
"email": "email@[Link]",
"password": "123456",
"documentType": "DNI",
"documentId": "32471960",
"phone": "1165446544",
"cellPhone": "1165446544",
"address": {
"streetName": "Vicente Lopez",
"streetNumber": "448",
"floor": "1",
"apartment": "D",
"locality": "Monte Grande",
"city": "Esteban Echeverria",
"provinceCode": "B",
"postalCode": "B1842ZAB"
}
}

Request - Registro empresas, monotributista, etc.:

{
"firstName": "Juan",
"lastName": "Gonzalez",
"email": "email@[Link]",
"password": "123456",
"documentType": "CUIT",
"documentId": "30324719607",
"phone": "1165446544",
"cellPhone": "1165446544",
4 / 16
Correo Argentino - API [Link] 8/8/2022

"address": {
"streetName": "Vicente Lopez",
"streetNumber": "448",
"floor": "1",
"apartment": "D",
"locality": "Monte Grande",
"city": "Esteban Echeverria",
"provinceCode": "B",
"postalCode": "B1842ZAB"
}
}

curl -X POST ${BASE_URL}/register


-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
-H 'Content-Type: application/json'
-d '{"firstName":"Juan","lastName":"Gonzalez",...}'

Response (200 OK):

{
"customerId": "0090000024",
"createdAt":"2022-04-28 [Link].847"
}

Response Attributes

Campo Descripción

customerId Identificador de usuario de MiCorreo.

createdAt Fecha de creación del registro.

Response (402 Error):

{
"code": "402",
"message": "Error..."
}

Response (402 Error):

{
"code": "402",
"message": "Email existente...."
}
5 / 16
Correo Argentino - API [Link] 8/8/2022

/users/validate [POST]
Devuelve el ID de un usuario de MiCorreo

Body Attributes

Campo Descripción Requerido

email Email registrado. ✔

password Contraseña valida. ✔

Request:

curl -X POST ${BASE_URL}/users/validate


-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
-H 'Content-Type: application/json'
-d '{"email":"email2@[Link]","password":"secret"}'

Response (200 OK):

{
"customerId": "0090000025",
"createdAt": "2021-03-10"
}

Response (404 NOT FOUND):

{
"code": "404",
"message": "Usuario no valido o inexistente",
}

/agencies [GET]
Devuelve las sucursales de una provincia determinada.

Query Attributes

Campo Descripción Requerido

customerId Identificador de usuario de MiCorreo. ✔

provinceCode Código de provincia. ✔

6 / 16
Correo Argentino - API [Link] 8/8/2022

Campo Descripción Requerido

services "package_reception", "pickup_availability"

Request:

curl -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." \


${BASE_URL}/agencies \
--data-urlencode "customerId=0090000025" \
--data-urlencode "provinceCode=B"

Response (200 OK):

[
{
"code": "B0107",
"name": "Monte Grande",
"manager": "Denardo, Matías Gabriel",
"email": "sopoficina@[Link]",
"phone": "(03401) 448396",
"services": {
"packageReception": true,
"pickupAvailability": true
},
"location": {
"address" : {
"streetName": "Vicente Lopez",
"streetNumber": "448",
"floor": null,
"apartment": null,
"locality": "Monte Grande",
"city": "Esteban Echeverria",
"province": "Buenos Aires",
"provinceCode": "B",
"postalCode": "B1842ZAB"
},
"latitude": "-34.81939997",
"longitude": "-58.46747615"
},
"hours": {
"sunday": null,
"monday": { "start": "0930", "end": "1800" },
"tuesday": { "start": "1000", "end": "1800" },
"wednesday": { "start": "1000", "end": "1800" },
"thursday": { "start": "1000", "end": "1800" },
"friday": { "start": "1000", "end": "1800" },
"saturday": null,
"holidays": null
},
"status": "ACTIVE"

7 / 16
Correo Argentino - API [Link] 8/8/2022

}
]

Response (402 Error):

{
"code": "402",
"message": "Customer ID no valido"
}

/rates [POST]
Devuelve las cotizaciciones de un envío a destino o a una sucursal.

Body Attributes

Campo Descripción Requerido

customerId Identificador de usuario de MiCorreo. ✔

postalCodeOrigin CP de origen del envío a cotizar. ✔

postalCodeDestination CP de destino del envío a cotizar. ✔

deliveredType "D" para entrega a domicilio, o "S" para entrega en sucursal.

[Link] Peso en gramos del envío (mínimo 1g y máximo 25000g). ✔

[Link] Alto en centímetros del envío (máximo 150cm). ✔

[Link] Ancho en centímetros del envío (máximo 150cm). ✔

[Link] Largo en centímetros del envío (máximo 150cm). ✔

All fields of the dimensions object are integer values (max precision )

Request - Envío a Domicilio:

{
"customerId": "0000550137",
"postalCodeOrigin": "1757",
"postalCodeDestination": "1704",
"deliveredType": "D",
"dimensions": {
"weight": 2500,
"height": 10,
"width": 20,
"length": 30
}
}

8 / 16
Correo Argentino - API [Link] 8/8/2022

curl -X POST ${BASE_URL}/rates


-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
-H 'Content-Type: application/json'
-d
'{"customerId":"0090000025","postalCodeOrigin":"1757","postalCodeDestination":
"1704",...}'

Response (200 OK):

{
"customerId": "0000550997",
"validTo": "2022-06-07T[Link].881-03:00",
"rates": [
{
"deliveredType": "D",
"productType": "CP",
"productName": "[Link] Clásico",
"price": 498.06
}
]
}

Request - Envío a Sucursal:

{
"customerId": "0000550997",
"postalCodeOrigin": "1757",
"postalCodeDestination": "1704",
"deliveredType": "S",
"dimensions": {
"weight": 2500,
"height": 10,
"width": 20,
"length": 30
}
}

curl -X POST ${BASE_URL}/rates


-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
-H 'Content-Type: application/json'
-d
'{"customerId":"0090000025","postalCodeOrigin":"1757","postalCodeDestination":
"1704",...}'

Response (200 OK):


9 / 16
Correo Argentino - API [Link] 8/8/2022

{
"customerId": "0000550997",
"validTo": "2022-06-07T[Link].881-03:00",
"rates": [
{
"deliveredType": "S",
"productType": "CP",
"productName": "[Link] Clásico",
"price": 398.06
}
]
}

Request - Las dos cotizaciones en un mismo request:

{
"customerId": "0000550997",
"postalCodeOrigin": "1757",
"postalCodeDestination": "1704",
"dimensions": {
"weight": 2500,
"height": 10,
"width": 20,
"length": 30
}
}

curl -X POST ${BASE_URL}/rates


-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
-H 'Content-Type: application/json'
-d
'{"customerId":"0090000025","postalCodeOrigin":"1757","postalCodeDestination":
"1704",...}'

Response (200 OK):

{
"customerId": "0000550997",
"validTo": "2022-06-07T[Link].881-03:00",
"rates": [
{
"deliveredType": "D",
"productType": "CP",
"productName": "[Link] Clásico",
"price": 498.06
},
10 / 16
Correo Argentino - API [Link] 8/8/2022

{
"deliveredType": "S",
"productType": "CP",
"productName": "[Link] Clásico",
"price": 398.06
}
]
}

Response (402 ERROR):

{
"code": "402",
"message": "Cliente FAP no identificado {customerId}",
}

/shipping/import [POST]
Importa un envío a MiCorreo.

Body Attributes

Campo Descripción Requerido

customerId Identificador de usuario de MiCorreo. ✔

extOrderId Identificador externo de la Orden. ✔

orderNumber Identificador externo para ver en MiCorreo.

sender Información del remitente.

[Link] Nombre del remitente.

[Link] Número de teléfono del remitente.

[Link] Número de celular del remitente.

[Link] Dirección de correo electrónico del remitente.

[Link] Dirección del remitente.

[Link] Nombre de la calle de la dirección.

[Link] Altura o numero de la dirección.

[Link] Piso de la dirección.

[Link] Departamento de la dirección.

[Link] Ciudad de la dirección.

[Link] Código de la provincia de la dirección.

11 / 16
Correo Argentino - API [Link] 8/8/2022

Campo Descripción Requerido

[Link] Código Postal de la dirección.

recipient Información del Destinatario. ✔

[Link] Nombre del destinatario del envío. ✔

[Link] Número de teléfono del destinatario.

[Link] Número de celular del destinatario.

[Link] Dirección de correo electrónico del destinatario. ✔

shipping Información del envío. ✔

Tipo de envío: "D" (no "S") envío a domicilio, "S"


[Link] ✔
envío a sucursal.

Para envíos a sucursal, definir el código de la sucursal


[Link]
y solo en ese caso es obligatorio.

[Link] * Nombre de la calle de la dirección de envío.

[Link] * Altura o numero de la dirección del envío.

[Link] Piso de la dirección de envío. (trunc to 3 characters)

Departamento de la dirección de envío. (trunc to 3


[Link]
characters)

[Link] * Ciudad de la dirección de envío.

[Link] * Código de la provincia de la dirección de envío.

[Link] * Código Postal de la dirección de envío.

[Link] Peso del envío en gramos. ✔

[Link] Valor declarado del envío. ✔

[Link] Alto en centímetros del envío. ✔

[Link] Largo del envío en centímetros. ✔

[Link] Ancho del envío en centímetros ✔

* Solo obligatorios para envio a Domicilio ([Link] != "S" (no S))

The fields weight, height, length and width of the shipping object are integer values (max precision )

Request - Envío a Domicilio:

{
"customerId": "0005000033",
"extOrderId": "583358193",
"orderNumber": "102",

12 / 16
Correo Argentino - API [Link] 8/8/2022

"sender": {
"name": null,
"phone": null,
"cellPhone": null,
"email": null,
"originAddress": {
"streetName": null,
"streetNumber": null,
"floor": null,
"apartment": null,
"city": null,
"provinceCode": null,
"postalCode": null
}
},
"recipient": {
"name": "Aa cc",
"phone": "",
"cellPhone": "",
"email": "username@[Link]",
},
"shipping": {
"deliveryType": "D",
"agency": null,
"address": {
"streetName": "Bb",
"streetNumber": "1234",
"floor": "",
"apartment": "",
"city": "Buenos Aires",
"provinceCode": "B",
"postalCode": "1425"
},
"weight": 1000,
"declaredValue": 500.00,
"height": 20,
"length": 40,
"width": 20,
}
}

curl -X POST ${BASE_URL}/shipping/import


-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
-H 'Content-Type: application/json'
-d '{"customerId":"0005000033","extOrderId":"583358193","orderNumber":
"102",...}'

Request - Envío a sucursal:

13 / 16
Correo Argentino - API [Link] 8/8/2022

{
"customerId": "0005000033",
"extOrderId": "583358194",
"orderNumber": "103",
"sender": {
"name": null,
"phone": null,
"cellPhone": null,
"email": null,
"originAddress": {
"streetName": null,
"streetNumber": null,
"floor": null,
"apartment": null,
"city": null,
"provinceCode": null,
"postalCode": null
}
},
"recipient": {
"name": "Aa cc",
"phone": "",
"cellPhone": "",
"email": "username@[Link]",
},
"shipping": {
"deliveryType": "S",
"agency": "E0000",
"address": {
"streetName": "Bb",
"streetNumber": "1234",
"floor": "",
"apartment": "",
"city": "Buenos Aires",
"provinceCode": "B",
"postalCode": "1425"
},
"weight": 1000,
"declaredValue": 500.00,
"height": 20,
"length": 40,
"width": 20,
}
}

curl -X POST ${BASE_URL}/shipping/import


-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
-H 'Content-Type: application/json'
-d '{"customerId":"0005000033","extOrderId":"583358194","orderNumber":
"103",...}'

14 / 16
Correo Argentino - API [Link] 8/8/2022

Response (200 OK):

{
"createdAt": "2022-06-07T[Link].996-03:00"
}

Response (402 Error):

{
"code": "402",
"message": "Error ..."
}

Error messages (from WCP):

La orden ya fue importada con anterioridad.


Peso no valido
Tipo de entrega invalido
Verifique la sucursal de destino
Tipo de encomienda [TENC] no valida
El peso debe ser mayor a 0
El peso excede el maximo permitido para el producto
no se encontro datos de remitente - id :...
El codigo Postal del emisor debe tener valor.
La provincia del emisor debe tener valor.
La provincia es invalida.
El alto debe estar entre 0 y 255.
El ancho debe estar entre 0 y 255.
El largo debe estar entre 0 y 255.

Notes:
Province Codes
Code Province name

A Salta

B Provincia de Buenos Aires

C Ciudad Autonoma Buenos Aires (o Capital Federal)

D San Luis

E Entre Rios

15 / 16
Correo Argentino - API [Link] 8/8/2022

Code Province name

F La Rioja

G Santiago del Estero

H Chaco

J San Juan

K Catamarca

L La Pampa

M Mendoza

N Misiones

P Formosa

Q Neuquen

R Rio Negro

S Santa Fe

T Tucuman

U Chubut

V Tierra del Fuego

W Corrientes

X Cordoba

Y Jujuy

Z Santa Cruz

16 / 16

También podría gustarte