Skip to main content

Flujo Mifel

Postman

Importar una coleccion de Postman

  1. Primero que todo creamos una cuenta de Postman
  2. Importamos la coleccion de postman.
    • Seleccionamos File --> Import
    • Seleccionamos el archivo Mifel.postman_collection
    • Artemis Site
  3. Obtendriamos algo como esto Artemis Site
  4. Para obtener el Token:
    • Seleccionamos Mifel --> Authorization --> Get New Access Token
    • Artemis Site
    • De esta manera ya no sera necesario configurar el token a cada una de las peticiones de la coleccion, debido a que ya vienen configuradas para que tome el token del padre
    • Artemis Site

Saber que Url poner

  1. Para saber que url poner simplemente nos dirigimos a swagger y si la Url es https://prices.scisa.com.mx/ y el endpoint es algo como get_price, entonces la Url final seria algo como https://prices.scisa.com.mx/get_price. Lo ponemos en Postman y seleccionamos el tipo de peticion que es.

Artemis Site

Hacer un Get sin parametros

  1. Para hacer un Get sin parametros simplemente verificamos que la URL no tenga ninguno y solo le presionamos el boton de Send Artemis Site

Hacer un Get con parametros

  1. Para hacer un Get con parametros simplemente verificamos que la URL contenga parametros
    • Podemos verificar en Swagger que parametro lleva, en este caso usaremos de ejemplo el https://prices.scisa.com.mx/get_price que pide estos parametros
    • Artemis Site
    • En postman al poner la liga en la seccion Params podemos poner cada parametro necesario con su valor y estos se añadirán a la Url
    • Artemis Site

Hacer un Get cuyo parametro esta en la Url

  1. Para hacer un Get cuyo parametro esta en la Url
    • Podemos verificar en Swagger los endpoints cuyo parametro esta en la Url, por ejemplo
    • Artemis Site
    • En postman al poner la liga tendriamos algo como esto https://siglonet.scisa.com.mx/v2/payee_settlement_types/2018

Hacer un Post

  1. Para hacer un Post es similar a hacer un Get sin parametros, solo hay que poner la Url del endpoint, pero si hay que seguir unos pasos
    • La estructura de lo que se enviara y la documentacion de cada campo viene documentado en su respectivo endpoint
    • Artemis Site
    • Artemis Site
    • En la seccion Body seleccionamos el tipo raw y el tipo JSON
    • Artemis Site

Flujo para obtener precios

1. Inicializamos los datos iniciales

Enviamos el rquest donde obtenemos los datos iniciales que se guardaran en la calculadora, puede ser el siguiente endpoint: https://siglonet.scisa.com.mx/v2/forex_transactions/data_init Artemis Site

Aqui obtendremos los spotPricing, portfolioSpreads, priceRange, productPrice.

2. Obtenemos un precio

Supongamos que queremos obtener el precio del par de divisas USD/MXN con un intervalo de 1. En ese caso, el request sería el siguiente: https://prices.scisa.com.mx/get_price?CurrencyPairId=1&IntervalId=1

Supongamos que queremos realizar una compra con el TermCode 'Today'. En este caso, nos interesa lo siguiente:

En BasePrices, el valor que contenga BuyPriceTODAY. Los campos ExpiresAt y BuyPriceTODAYChecksum, ya que ambos nos servirán para verificar que el precio sea válido al momento de pactar una operación. Artemis Site

Flujo para poder completar una operación

1. Se registra una forma de liquidación (en caso de ser requerida)

Enviamos, por ejemplo, lo siguiente:

{
"contractCode": "0000000",
"beneficiaryName": null,
"branchBankName": "",
"payeeSettlementType": {
"id": 2018,
"payeeId": 1,
"settlementTypeId": 1,
"settlementTypeDescription": "SPEI",
"currencyID": 1,
"currencyName": "Peso Mexicano",
"settlementTypeStatusCode": 1,
"isActive": true,
"version": "-4752702782736171008",
"paySettTypeInstID": 0,
"treasuryAccountID": 0,
"isSwiftSendMsg300": false,
"swiftCodeBIC": null,
"isWebOperate": false,
"isDefaultIntermediary": false,
"secuencia": 0,
"isUniqueLetter": 0,
"vigencyUniqueLetter": "0001-01-01T00:00:00",
"emailUniqueLetter1": null,
"emailUniqueLetter2": null,
"accountNumber": null,
"bankName": "AFIRME",
"payeeContractSettlementTypeID": 0,
"beneficiaryAccountTypeCode": 0,
"beneficiaryBankID": 0,
"intermediaryBankID": 0
},
"settlementTypeDTO": {
"SettlementTypeId": 1,
"SettlementType": {
"SettlementTypeId": 1,
"Id": 2,
"PayeeSettlementTypeId": 2018,
"BeneficiaryName": "KLU TECH, S.A.P.I. DE C.V.",
"RFC": "COI170804N33",
"AccountCode": "566679009334",
"PaymentConcept": "PAGO",
"SpeiOperationTypeId": 2,
"SpeiAccountTypeId": 2,
"SpeiPaymentTypeId": 5,
"BankSettlementTypeID": 30,
"BranchBankId": 0,
"Version": "-4608587594660315136",
"SecondBeneficiary": null
}
}
}

2. Obtenemos un precio

Supongamos que queremos obtener el precio del par de divisas USD/MXN con un intervalo de 1. En ese caso, el request sería el siguiente: https://prices.scisa.com.mx/get_price?CurrencyPairId=1&IntervalId=1

Supongamos que queremos realizar una compra con el TermCode 'Today'. En este caso, nos interesa lo siguiente:

En BasePrices, el valor que contenga BuyPriceTODAY. Los campos ExpiresAt y BuyPriceTODAYChecksum, ya que ambos nos servirán para verificar que el precio sea válido al momento de pactar una operación.

3. Pactar una operación

Enviamos, por ejemplo, lo siguiente:

{
"contractCode": "0000002",
"tradedCurrency": "USD",
"tradedCurrencyAmount": 100,
"baseCurrency": "MXN",
"tradeRate": 19.2027616826647,
"marketRate": 19.2027616826647,
"executorId": "gerardo",
"beneficiaryId": 2018,
"payment": [],
"isIncome": true,
"termCode": "TermToday",
"expiresAt": 1738367523,
"tipoCambioMesaChecksum": "MaPxQjP9Ob/FKR45OGGwqUKoC6jYuLWobQUbvPl3DQElfHIpbWP6symwGP7S5Ek6JlSoR9nHyS6MlHDheCcbLl4rJDPf/cmA/VJFpFlrMd5oN2bEZ6p/64aBHimMhkApAng2iJ2HtgEj4y0OKW4dTN4CYaNMO16zWk5nYZexyKkmBOPKyYl6J5RhMzzDaYwnb4a/xndz5K5PUKSbjyNPPg=="
}

Lo importante a resaltar son los siguientes campos:

  • ExpiresAt = ExpiresAt
  • TipoCambioMesaChecksum = BuyPriceTODAYChecksum

Estos campos se llenan con la información adicional que obtenemos de la calculadora de precios.

4. Completamos la operación

Desde la siguiente liga enviamos lo siguiente: https://siglonet.scisa.com.mx/v2/forex_transactions/436/complete (el 436 es el id de la operacion)

{
"contractCode": "0000002",
"forexTransId": "436|FX Mexico",
"beneficiaryId": 2018,
"payment": [
{
"beneficiaryId": 2018,
"isIncome": true,
"amount": 5.21
},
{
"beneficiaryId": 2051,
"isIncome": false,
"amount": 100
}
]
}

En caso de ser requerido nos podemos apoyar del show: https://siglonet.scisa.com.mx/v2/forex_transactions/436

Flujo para poder completar una operación desde la pactada

1. Se registra una forma de liquidación (en caso de ser requerida)

Enviamos, por ejemplo, lo siguiente:

{
"contractCode": "0000000",
"beneficiaryName": null,
"branchBankName": "",
"payeeSettlementType": {
"id": 2018,
"payeeId": 1,
"settlementTypeId": 1,
"settlementTypeDescription": "SPEI",
"currencyID": 1,
"currencyName": "Peso Mexicano",
"settlementTypeStatusCode": 1,
"isActive": true,
"version": "-4752702782736171008",
"paySettTypeInstID": 0,
"treasuryAccountID": 0,
"isSwiftSendMsg300": false,
"swiftCodeBIC": null,
"isWebOperate": false,
"isDefaultIntermediary": false,
"secuencia": 0,
"isUniqueLetter": 0,
"vigencyUniqueLetter": "0001-01-01T00:00:00",
"emailUniqueLetter1": null,
"emailUniqueLetter2": null,
"accountNumber": null,
"bankName": "AFIRME",
"payeeContractSettlementTypeID": 0,
"beneficiaryAccountTypeCode": 0,
"beneficiaryBankID": 0,
"intermediaryBankID": 0
},
"settlementTypeDTO": {
"SettlementTypeId": 1,
"SettlementType": {
"SettlementTypeId": 1,
"Id": 2,
"PayeeSettlementTypeId": 2018,
"BeneficiaryName": "KLU TECH, S.A.P.I. DE C.V.",
"RFC": "COI170804N33",
"AccountCode": "566679009334",
"PaymentConcept": "PAGO",
"SpeiOperationTypeId": 2,
"SpeiAccountTypeId": 2,
"SpeiPaymentTypeId": 5,
"BankSettlementTypeID": 30,
"BranchBankId": 0,
"Version": "-4608587594660315136",
"SecondBeneficiary": null
}
}
}

2. Obtenemos un precio

Supongamos que queremos obtener el precio del par de divisas USD/MXN con un intervalo de 1. En ese caso, el request sería el siguiente: https://prices.scisa.com.mx/get_price?CurrencyPairId=1&IntervalId=1

Supongamos que queremos realizar una compra con el TermCode 'Today'. En este caso, nos interesa lo siguiente:

En BasePrices, el valor que contenga BuyPriceTODAY. Los campos ExpiresAt y BuyPriceTODAYChecksum, ya que ambos nos servirán para verificar que el precio sea válido al momento de pactar una operación.

3. Al pactar una operación con instrucciones, esta se completa.

Enviamos, por ejemplo, lo siguiente:

{
"contractCode": "0000002",
"tradedCurrency": "USD",
"tradedCurrencyAmount": 100,
"baseCurrency": "MXN",
"tradeRate": 19.2027616826647,
"marketRate": 19.2027616826647,
"executorId": "gerardo",
"beneficiaryId": 2018,
"payment": [
{
"beneficiaryId": 2018,
"isIncome": true,
"amount": 5.21
},
{
"beneficiaryId": 2051,
"isIncome": false,
"amount": 100
}
],
"isIncome": true,
"termCode": "TermToday",
"expiresAt": 1738367523,
"tipoCambioMesaChecksum": "MaPxQjP9Ob/FKR45OGGwqUKoC6jYuLWobQUbvPl3DQElfHIpbWP6symwGP7S5Ek6JlSoR9nHyS6MlHDheCcbLl4rJDPf/cmA/VJFpFlrMd5oN2bEZ6p/64aBHimMhkApAng2iJ2HtgEj4y0OKW4dTN4CYaNMO16zWk5nYZexyKkmBOPKyYl6J5RhMzzDaYwnb4a/xndz5K5PUKSbjyNPPg=="
}

Lo importante a resaltar son los siguientes campos:

  • ExpiresAt = ExpiresAt
  • TipoCambioMesaChecksum = BuyPriceTODAYChecksum

Estos campos se llenan con la información adicional que obtenemos de la calculadora de precios.

Para completar la operación pactada, es necesario llenar el campo de instrucciones. Si no se llena, solo se pactará la operación. En caso de que las instrucciones estén incompletas o ocurra algún error durante la operación, se realizará un rollback.