---
# System prepended metadata

title: Nuevos lineamientos para los microservicios

---

# Nuevos lineamientos para los microservicios 



## Contenido
[microservicio blacklist](#BLACKLIST)
[nanoservicio card hasher](#CARD-HASHER)
[microservicio tokens](#TOKENS)
[microservicio geolocation](#GEOLOCATION)
[microservicio bin](#BIN)
[microservicio card data](#CARD-DATA) 
[microservicio orquestino](#ORQUESTINO) 




# ORQUESTINO
#### request `POST` `orquestino/tokens`
- `metadata` es opcional

```json
{
	"meta":{
		"traceId":"123",
		"timestamp":"2019-08-14T10:36:00.123Z-0500",
		"serviceId":"agw-default",
		"ip":"161.132.125.10",
		"path":"/tokens",
		"method":"post"
	},
	"data":{
		"cardNumber":"4111111111111111",
		"expirationMonth":"09",
		"expirationYear":"2020",
		"email":"richard@piedpiper.com",
		"cvv":"123",
		"metadata":{
			"dni":"12345673"
		}
	}
}


```



#### response status code **200**

```json
{
    "meta": {
        "traceId": "123",
        "timestamp": "2019-09-05T17:57:41.346Z-0500",
        "serviceId": "or-tokenq37RdZH6EG5cNt",
        "ip": "::1",
        "path": "/tokens",
        "method": "POST"
    },
    "data": {
        "object": "token",
        "type": "card",
        "email": "richard@piedpiper.com",
        "creation_date": "",
        "card_number": "411111******1111",
        "last_four": "1111",
        "active": "",
        "iin": {
            "object": "iin",
            "bin": "411111",
            "cardBrand": "VISA",
            "cardType": "CREDIT",
            "cardCategory": "",
            "issuer": {
                "name": "JPMORGAN CHASE BANK, N.A.",
                "country": "UNITED STATES",
                "countryCode": "US",
                "website": "http://www.jpmorganchase.com",
                "phoneNumber": "1-212-270-6000"
            },
             "installmentsAllowed": [2,4,8,12,24,42]
        },
        "client": {
            "ip": "72.229.28.185",
            "ip_country": "United States",
            "ip_country_code": "US",
            "browser": "Google Chrome 56.0.2924.87",
            "device_fingerprint": "6rITdVTYkWfOrss8",
            "device_type": "escritorio"
        },
        "metadata": {
            "dni":"5831543"
        }
    }
}

````





# CARD HASHER
#### request `POST` `card-hasher/`
```json
{

   "meta": {
       "traceId": "123",
       "timestamp": "",
       "serviceId": "or-tokens"      # caller <- package.json
    },
   "data": {
       "cardNumber": "4444333322221111"
    }
}
```
#### response status code **200**
```json
{
  "meta": {
    "traceId": "123321",
    "timestamp": "2019-08-23T15:20:01.499Z-0500",
    "serviceId": "42d3fDaHQhg8Xp"
  },
  "data": {
    "hash": "c8f50254f0ae62604a179d9c292720afb1236a4f88ae10bd814eb619cdc5ee50",
    "mask": "455788******1530",
    "bin": "455788",
    "lastFour": "1530"
  }
}

 ```

# BLACKLIST
- Durante la generación del token se puede invocar dos veces a este ms.
#### request 1 `POST`  `blacklist/validate`
```json

{
    "meta": {
        "traceId": "1234567890",
        "timestamp": "2019-08-20T14:06:02.271Z-0500",
        "serviceId": "4XpndaSBMngQXu"
    },
    "data": {
    	"array": [
    		{	
    			"subject":"email",
    			"value":"christos.otarola@culqi.com"
    		},
    				{	
    			"subject":"cardHash",
    			"value":"g88f7dg9sdfy7g9sf78oyg8aohs88sy98xf7azd9"
    		},
    				{	
    			"subject":"bin",
    			"value":"444433"
    		}
    	]
    }
} 
```

#### request 2 `POST`  `blacklist/validate`
```json

{
    "meta": {
        "traceId": "1234567890",
        "timestamp": "2019-08-20T14:06:02.271Z-0500",
        "serviceId": "4XpndaSBMngQXu"
    },
    "data": {
    	"array": [
          {
            "subject": "country",
            "value": "UNITED STATES"
          },
          {
            "subject": "issuer",
            "value": "JPMORGAN CHASE BANK, N.A."
          },
          {
            "subject": "cardBrand",
            "value": "VISA"
          }
        ]
    }
} 
````

#### Response status code **200**
- la respuesta varía de acuerdo a los datos enviados
```json
{
    "meta": {
        "traceId": "1234567890",
        "timestamp": "2019-09-05T17:17:40.027Z-0500",
        "serviceId": "ms-blacklist"
    },
    "data": {
        "subject": "country",
        "value": "UNITED STATES",
        "match": false
    }
}
```
#### Request  `POST` `blacklist/bulk` 
- carga masiva
- `data1`, `data2`, `data3` es el nombre del colección a agregar, desde 1 o más colecciones
- los datos dentro del array son los datos para esa nueva colección
```json
{
    "meta": {
      "traceId": "123321",
      "timestamp": "2019-09-15T11:13:20.123Z-0500",
      "serviceId": "asdasdsad"
    },
    "data": {
            "data1": [
                "emerson.beltran@culqi.com",
                "emerson.beltran@stripe.com"
            ],
            "data2": [
                "873612334",
                "645823446"
            ],
            "data3": [
                "873612334",
                "645823446"
            ]
    }
}

```
 
#### response status code **200**
```json
{
    "meta": {
        "traceId": "1234567890",
        "timestamp": "2019-08-20T14:06:02.271Z-0500",
        "serviceId": "4XpndaSBMngQXu"
    },
    "data": {
        "message": "ok"
    }
}
```
 
# BIN
- Los `installmentsAllowed` no se obtiene de la comunicación con `neutrino`
- path: `post` y `patch`
#### request `POST` `bin/`
```json
{
    "meta": {
        "timestamp": "2019-08-20T12:16:32.942Z-0500",
        "serviceId": "4XpndaSBMngQXu",
         "traceId": "1234567890"
    },
    "data": {
       	"binNumber":"455788"
    }
}
 ```
 
 #### response status code **200**
```json
{
    "meta": {
        "traceId": "1234567890",
        "timestamp": "2019-09-05T17:24:34.113Z-0500",
        "serviceId": "aua9nEMDM7JujB"
    },
    "data": {
        "installmentsAllowed": [],
        "country": "PERU",
        "countryCode": "PE",
        "cardType": "DEBIT",
        "cardBrand": "VISA",
        "cardCategory": "GOLD",
        "issuerPhone": "311-9898",
        "currencyCode": "PEN",
        "countryCode3": "PER",
        "issuer": "BANCO DE CREDITO DEL PERU",
        "issuerWebsite": "http://www.viabcp.com/",
        "binNumber": "455788"
    }
}
```



#### request `PATCH` `bin/{bin}`
- actualización de cualquier dato actual vía `bin`
```json
{
    "meta": {
        "timestamp": "2019-08-20T12:16:32.942Z-0500",
        "serviceId": "4XpndaSBMngQXu",
         "traceId": "1234567890"
    },
    "data": {
         "installmentsAllowed": [
            2,
            4,
            8,
            12,
            24,
            42
        ]
    }
}
 ```
 
 #### response status code **200**
```json
{
    "meta": {
        "traceId": "1234567890",
        "timestamp": "2019-09-05T17:24:34.113Z-0500",
        "serviceId": "aua9nEMDM7JujB"
    },
    "data": {
        "installmentsAllowed": [
            2,
            4,
            8,
            12,
            24,
            42
        ]
        "country": "PERU",
        "countryCode": "PE",
        "cardType": "DEBIT",
        "cardBrand": "VISA",
        "cardCategory": "GOLD",
        "issuerPhone": "311-9898",
        "currencyCode": "PEN",
        "countryCode3": "PER",
        "issuer": "BANCO DE CREDITO DEL PERU",
        "issuerWebsite": "http://www.viabcp.com/",
        "binNumber": "455788"
    }
}
```
#### request `POST` `bin/bulk`
```json
{
    "meta": {
        "traceId": "123321",
        "timestamp": "2019-09-15T11:13:20.123Z-0500",
        "serviceId": "asdasdsad"
    },
    "data": {
        "binCards": [
            {
                "binNumber": "447409",
                "country": "PERU2",
                "countryCode": "PE",
                "cardType": "CREDIT",
                "cardBrand": "VISA",
                "cardCategory": "CLASSIC",
                "issuerPhone": "51-1-6180000",
                "currencyCode": "PEN",
                "countryCode3": "PER",
                "issuer": "BANCO FALABELLA PERU, S.A.",
                "issuerWebsite": ""
            }, {
                "binNumber": "455788",
                "country": "PERU",
                "countryCode": "PE",
                "cardType": "DEBIT",
                "cardBrand": "VISA",
                "cardCategory": "GOLD",
                "issuerPhone": "311-9898",
                "currencyCode": "PEN",
                "countryCode3": "PER",
                "issuer": "BANCO DE CREDITO DEL PERU",
                "issuerWebsite": "http://www.viabcp.com/"
                
            }
        ]
    }
}
```

#### response status code **200**
```json
{
    "meta": {
        "traceId": "1234567890",
        "timestamp": "2019-08-20T14:06:02.271Z-0500",
        "serviceId": "4XpndaSBMngQXu"
    },
    "data": {
        "message": "ok"
    }
}
```


# GEOLOCATION
- path: `post` y `patch`
#### request`POST` `geolocation/`
```json
{
    "meta": {
        "timestamp": "2019-08-20T12:16:32.942Z-0500",
        "serviceId": "4XpndaSBMngQXu",
         "traceId": "1234567890"
    },
    "data": {
       	"ip":"179.60.193.3"
    }
}
```
 

#### response status code 200
```json
{
    "meta": {
        "traceId": "1234567890",
        "timestamp": "2019-08-20T14:06:02.271Z-0500",
        "serviceId": "4XpndaSBMngQXu"
    },
    "data": {
        "ip": "179.60.193.3",
        "country": "United States",
        "countryCode": "US"
    }
}
```

#### request `PATCH` `geolocation/{ip}`
- actualización de cualquier dato actual vía `ip`
```json
{
    "meta": {
        "timestamp": "2019-08-20T12:16:32.942Z-0500",
        "serviceId": "4XpndaSBMngQXu",
         "traceId": "1234567890"
    },
    "data": {
       	"country":"VENEZUELA"
    }
}
 ```
 
 #### response status code **200**
```json
{
    "meta": {
        "traceId": "1234567890",
        "timestamp": "2019-08-20T14:06:02.271Z-0500",
        "serviceId": "4XpndaSBMngQXu"
    },
    "data": {
        "ip": "179.60.193.3",
        "country": "VENEZUELA",
        "countryCode": "US"
    }
}
```

#### request `POST` `geolocation/bulk`
- carga masiva
```json
{
    "meta": {
      "traceId": "123321",
      "timestamp": "2019-09-15T11:13:20.123Z-0500",
      "serviceId": "asdasdsad"
    },
    "data": {
      "records": [
        {
          "ip": "161.132.125.10",
          "country": "Peru",
          "countryCode": "PE"
        }, {
          "ip": "181.224.246.2",
          "country": "Venezuela",
          "countryCode": "PE"
        }
      ]
    }
}
```

#### response status code **200**
```json
{
    "meta": {
        "traceId": "1234567890",
        "timestamp": "2019-08-20T14:06:02.271Z-0500",
        "serviceId": "4XpndaSBMngQXu"
    },
    "data": {
        "message": "ok"
    }
}
```


# CARD DATA
#### request `POST` `card-data/set`
```json
 {

 "meta": {
     "traceId": "123",
     "timestamp": "2019-08-14T10:36:00.123Z-0500",
     "serviceId": "or-tokens"
  },
 "data": {
     "token": "tkn_live_87f6d9g7sdfsg6f8",
     "card":{
     "cardNumber": "4444333322221111",
     "cvv": "005",
     "expirationMonth": "10",
     "expirationYear": "2020"
     }
  }
}
````

#### response status code 200
```json
{
    "meta": {
        "traceId": "123",
        "timestamp": "2019-08-26T16:34:41.595Z-0500",
        "serviceId": "ms-tokenizer"
    },
    "data": {
        "message": "ok"
    }
}

 ```
 
 # TOKENS
 
#### request `POST` `tokens/tokens`

```json
{    
    "meta":{
        "traceId": "uy26t12he",
        "timestamp": "2019-08-16T14:45:43.060Z-0500",
        "serviceId": "postman"
},
    "data": {
        "token": "tkn_live_b762eyhdkjlkjdlac" ,
        "cardHash": "BHGSIHLSJÑLKHDSDS",
        "object": "token",
        "type": "token",
        "mask": "444411******1111",
        "bin": "444411",
        "lastFour":"1111"
    }
}
````

#### response status code 200
```json
{
    "meta": {
        "traceId": "uy26t12he",
        "timestamp": "2019-08-26T16:01:28.723Z-0500",
        "serviceId": "ms-tokens"
    },
    "data": {
        "cardHash": "BHGSIHLSJÑLKHDSDS",
        "object": "token",
        "type": "token",
        "mask": "444411******1111",
        "bin": "444411",
        "lastFour": "1111",
        "_id": "tkn_live_b762eyhdkjlkjdlac",
        "createdAt": "2019-08-26T21:01:28.608Z",
        "updatedAt": "2019-08-26T21:01:28.608Z",
        "__v": 0
    }
}
```


 