This will serve as a guide for third party users (Euronet) on how they can use our bank's gateway APIs related to card transactions.
Content:
I. Payment Transaction API
II. Withdrawal Transaction API
III. Reversal Transaction API
IV. Balance Inquiry API
V. Account Verification API
VI. Reconciliation Process
VII. Data Elements
I. Payment transaction (apply to POS payment & e-commerce):
To trigger a pre-authorization transaction, user shall call the outbound-auth API:
https://api.smallog.tech/euronet-gateway/transaction/card-outbound-auth
with the fields shown in sample 1.1.The user will get response (sample 1.2) synchronously with a status code indicating whether the transaction amount is in authorization withhold in CBS successfully.
Sample 1.1: payment transaction sample request
curl --location --request POST 'https://api.smallog.tech/euronet-gateway/transaction/card-outbound-auth' \ --header 'idempotency-key: 69ed5ef2-3a25-4cb4-9c71-b9d367178149' \ --header 'Content-Type: application/json' \ --data-raw '{ "data": { "mti": "0100", "processingCode": "1000", "transactionID": "123456789012345", "RRN": "000584512380", "transactionCode": "DOMESTIC_PAYMENT", "categoryCode": "POS", "proxyNumber": "123456789", "cardVendor": "MASTERCARD", "transactionAmount": 100.00, "transactionCurrencyCode": "PHP", "cardHolderBillingAmount": 0, "cardHolderCurrencyCode": "PHP", "feeAmount": 0, "feeCurrency": "PHP", "transmissionDateTime": "string", "systemTraceAuditNumber": "string", "localTransactionDateTime": "string", "merchantCategoryCode": "string", "acquirerCountryCode": "string", "panEntryMode": "string", "networkID": "string", "PosDataSF4": "string", "PosDataSF5": "string", "PosDataSF7": "string", "PosDataSF10": "string", "acquirerID": "string", "retrievalReferenceNumber": "string", "authorizationID": "123456", "cardAcceptorTerminalID": "string", "cardAcceptorMerchantID": "string", "cardAcceptorTermName": "string", "OrgtransactionID": "string", "threeDsAuthTID": "string", "DCCIndicator": "string", "ECOMindicator": "string", "UCAFIndicator": "string", "threeDsValidation": "string", "PANValidation": "string", "expiryDateValidation": "string", "pinValidation": "string", "CVVValidation": "string", "CVV2Validation": "string", "EMVValidation": "string", "MSTransactionTypeId": "string", "MSTransactionRefData": "string" }, "signature": "i13bj12h3iou123ionasdasd" }'
Sample 1.2: payment transaction sample response:
{ "transactionId": "123456789012345", "RRN": "000584512380", "status": "SUCCESS", "responseCode": "00", "authorizationId": "123456" }
II. Withdrawal transaction (apply to ATM withdraw):
To trigger a withdrawal transaction, user shall call the transfer API:
https://api.smallog.tech/euronet-gateway/transaction/card-transfer
with the fields shown in Sample 2.1.User will get response (sample 2.2) synchronously with a status code indicating whether the transaction amount is accepted in CBS.
Sample 2.1: withdrawal transaction sample request
curl --location --request POST 'https://api.smallog.tech/euronet-gateway/transaction/card-transfer' \ --header 'idempotency-key: 69ed5ef2-3a25-4cb4-9c71-b9d367178149' \ --header 'Content-Type: application/json' \ --data-raw '{ "data": { "mti": "0100", "processingCode": "0100", "transactionID": "123456789012345", "RRN": "000584512380", "transactionCode": "EXTERNAL_ATM_WITHDRAWAL", "categoryCode": "ATM", "proxyNumber": "123456789", "cardVendor": "MASTERCARD", "transactionAmount": 100.00, "transactionCurrencyCode": "PHP", "cardHolderBillingAmount": 0, "cardHolderCurrencyCode": "PHP", "feeAmount": 0, "feeCurrency": "PHP", "transmissionDateTime": "string", "systemTraceAuditNumber": "string", "localTransactionDateTime": "string", "merchantCategoryCode": "string", "acquirerCountryCode": "string", "panEntryMode": "string", "networkID": "string", "PosDataSF4": "string", "PosDataSF5": "string", "PosDataSF7": "string", "PosDataSF10": "string", "acquirerID": "string", "retrievalReferenceNumber": "string", "authorizationID": "123456", "cardAcceptorTerminalID": "string", "cardAcceptorMerchantID": "string", "cardAcceptorTermName": "string", "OrgtransactionID": "string", "threeDsAuthTID": "string", "DCCIndicator": "string", "ECOMindicator": "string", "UCAFIndicator": "string", "threeDsValidation": "string", "PANValidation": "string", "expiryDateValidation": "string", "pinValidation": "string", "CVVValidation": "string", "CVV2Validation": "string", "EMVValidation": "string", "MSTransactionTypeId": "string", "MSTransactionRefData": "string" }, "signature": "i13bj12h3iou123ionasdasd" }'
Sample 2.2: withdrawal transaction sample response:
{ "transactionId": "123456789012345", "RRN": "000584512380", "status": "SUCCESS", "responseCode": "00", "authorizationId": "123456" }
III. Reversal / Partial-reversal transaction API
To trigger a reversal transaction, user shall call the card-reverse API:
https://api.smallog.tech/euronet-gateway/transaction/card-reverse
with the request fields shown in Sample 3.1.User will get response synchronously as shown in sample 3.2.
Sample 3.1: reversal transaction sample request
curl --location --request POST 'https://api.smallog.tech/euronet-gateway/transaction/card-reversal' \ --header 'idempotency-key: 69ed5ef2-3a25-4cb4-9c71-b9d367178149' \ --header 'Content-Type: application/json' \ --data-raw '{ "data": { "mti": "0100", "processingCode": "0100", "transactionID": "123456789012345", "RRN": "000584512380", "transactionCode": "DOMESTIC_PAYMENT", "categoryCode": "POS", "proxyNumber": "123456789", "cardVendor": "MASTERCARD", "transactionAmount": 100.00, "replacementAmount": 50.00, "transactionCurrencyCode": "PHP", "cardHolderBillingAmount": 0, "cardHolderReplacementAmount": 0, "cardHolderCurrencyCode": "PHP", "feeAmount": 0, "feeCurrency": "PHP", "transmissionDateTime": "string", "systemTraceAuditNumber": "string", "localTransactionDateTime": "string", "merchantCategoryCode": "string", "acquirerCountryCode": "string", "panEntryMode": "string", "networkID": "string", "PosDataSF4": "string", "PosDataSF5": "string", "PosDataSF7": "string", "PosDataSF10": "string", "acquirerID": "string", "retrievalReferenceNumber": "string", "authorizationID": "123456", "cardAcceptorTerminalID": "string", "cardAcceptorMerchantID": "string", "cardAcceptorTermName": "string", "OrgtransactionID": "string", "threeDsAuthTID": "string", "originalTransactionID": "string", "originalDataElements": "string", "DCCIndicator": "string", "ECOMindicator": "string", "UCAFIndicator": "string", "threeDsValidation": "string", "PANValidation": "string", "expiryDateValidation": "string", "pinValidation": "string", "CVVValidation": "string", "CVV2Validation": "string", "EMVValidation": "string", "MSTransactionTypeId": "string", "MSTransactionRefData": "string" }, "signature": "i13bj12h3iou123ionasdasd" }'
Sample 3.2: reversal transaction sample response:
{ "transactionId": "123456789012345", "RRN": "000584512380", "status": "SUCCESS", "responseCode": "00", "authorizationId": "123456" }
IV. Balance Inquiry:
To trigger a balance inquiry transaction, user shall call the get-balance API:
https://api.smallog.tech/euronet-gateway/cards/get-balance
with the request fields shown in Sample 4.1.User will get response synchronously as shown in sample 4.2.
Sample 4.1: balance inquiry sample request
curl --location --request POST 'https://api.smallog.tech/euronet-gateway/cards/get-balance' \ --header 'idempotency-key: 69ed5ef2-3a25-4cb4-9c71-b9d367178149' \ --header 'Content-Type: application/json' \ --data-raw '{ "data": { "mti": "0100", "processingCode": "0100", "transactionID": "123456789012345", "RRN": "000584512380", "transactionCode": "INTERNATIONAL_BALANCE_INQUIRY", "categoryCode": "POS", "proxyNumber": "123456789", "cardVendor": "MASTERCARD", "transactionAmount": 100.00, "transactionCurrencyCode": "PHP", "cardHolderBillingAmount": 0, "cardHolderCurrencyCode": "PHP", "feeAmount": 0, "feeCurrency": "PHP", "transmissionDateTime": "string", "systemTraceAuditNumber": "string", "localTransactionDateTime": "string", "merchantCategoryCode": "string", "acquirerCountryCode": "string", "panEntryMode": "string", "networkID": "string", "PosDataSF4": "string", "PosDataSF5": "string", "PosDataSF7": "string", "PosDataSF10": "string", "acquirerID": "string", "retrievalReferenceNumber": "string", "authorizationID": "123456", "cardAcceptorTerminalID": "string", "cardAcceptorMerchantID": "string", "cardAcceptorTermName": "string", "OrgtransactionID": "string", "threeDsAuthTID": "string", "DCCIndicator": "string", "ECOMindicator": "string", "UCAFIndicator": "string", "threeDsValidation": "string", "PANValidation": "string", "expiryDateValidation": "string", "pinValidation": "string", "CVVValidation": "string", "CVV2Validation": "string", "EMVValidation": "string", "MSTransactionTypeId": "string", "MSTransactionRefData": "string" }, "signature": "i13bj12h3iou123ionasdasd" }'
Sample 4.2: balance inquiry sample response
{ "transactionId": "123456789012345", "RRN": "000584512380", "status": "SUCCESS", "responseCode": "00", "authorizationId": "123456" "balanceAmount": 0, "balanceCurrency": "PHP", "feeAmount": 0, "feeCurrency": "PHP" }
V. Account Verification
Account verification service in CBS includes:
card status verification
customer verification
customer account status verification
balance checking
To trigger an account verification service, user shall call the verify API:
https://api.smallog.tech/euronet-gateway/cards/verify
with the request fields shown in Sample 4.1.User will get response synchronously as shown in sample 4.2.
Sample 4.1: account verification sample request
curl --location --request POST 'https://api.smallog.tech/euronet-gateway/cards/verify' \ --header 'idempotency-key: 69ed5ef2-3a25-4cb4-9c71-b9d367178149' \ --header 'Content-Type: application/json' \ --data-raw '{ "data": { "mti": "0100", "processingCode": "0100", "transactionID": "123456789012345", "RRN": "000584512380", "transactionCode": "DOMESTIC_PAYMENT", "categoryCode": "POS", "proxyNumber": "123456789", "cardVendor": "MASTERCARD", "transactionAmount": 100.00, "transactionCurrencyCode": "PHP", "cardHolderBillingAmount": 0, "cardHolderCurrencyCode": "PHP", "feeAmount": 0, "feeCurrency": "PHP", "transmissionDateTime": "string", "systemTraceAuditNumber": "string", "localTransactionDateTime": "string", "merchantCategoryCode": "string", "acquirerCountryCode": "string", "panEntryMode": "string", "networkID": "string", "PosDataSF4": "string", "PosDataSF5": "string", "PosDataSF7": "string", "PosDataSF10": "string", "acquirerID": "string", "retrievalReferenceNumber": "string", "authorizationID": "123456", "cardAcceptorTerminalID": "string", "cardAcceptorMerchantID": "string", "cardAcceptorTermName": "string", "OrgtransactionID": "string", "threeDsAuthTID": "string", "DCCIndicator": "string", "ECOMindicator": "string", "UCAFIndicator": "string", "threeDsValidation": "string", "PANValidation": "string", "expiryDateValidation": "string", "pinValidation": "string", "CVVValidation": "string", "CVV2Validation": "string", "EMVValidation": "string", "MSTransactionTypeId": "string", "MSTransactionRefData": "string" }, "signature": "i13bj12h3iou123ionasdasd" }'
Sample 4.2: account verification sample response
{ "transactionId": "123456789012345", "RRN": "000584512380", "status": "SUCCESS", "responseCode": "00", "authorizationId": "123456" }
VI. Reconciliation Process
Euronet and AIG shall conduct reconciliation on T+1 basis, and the reconciliation source are the four types of reports:
Report Name | Description | |
---|---|---|
Reconciled Report | contains transactions to be settled with no issue | |
Unreconciled Report | contains exception transactions which need to be settled or reversed | the report shall contain “originalDataElement” and “originalTransactionID” for transactions to be reverse to customer |
Refund Report | contains transactions to release the blocked amount | the report shall contain “originalDataElement” and “originalTransactionID” for transactions to be reverse to customer |
Amount Difference Report | contains transactions which settlement amount is to be adjusted |
Procedure to conduct a reconciliation process:
Euronet will upload the reports into the AIG’s FTP folder with specific report folder
AIG will consume the uploaded report with a cloud function
Transactions extracted from report are to be fed in specific Kafka topic
CBS will consume the transactions in Kafka topic and proceed accordingly
Example:
VII. Data Elements
Name | Data Type | Max | WDL | ECOM | POS | Money Send | Description |
mti | string | 4 | M | M | M | M | Message Type Identifier |
proxyNumber | string | 20 | M | M | M | M | unique identifier for a card |
processingCode | string | 6 | M | M | M | M | Refer to processing codes section |
transactionAmount | int | 20 | M | M | M | M | Transaction amount is the value dispensed / entered at transaction origination. The decimal value is decided from the Currency code. ISO 4217. This denotes the original currency or acquirer currency, need not be PHD(home currency). When Reversal: In case transaction is in local currency only this field will be present. So Original debit posting to be reversed or say this amount to be reversed. |
cardHolderBillingAmount | int | 20 | M | M | M | M | Cardholder amount is transaction amounted converted to local currency amount, (PHD) When Reversal: In case transaction is international transaction this field will be present along with above field (absent in case of domestic transaction). So Original debit posting to be reversed or say this amount to be reversed. |
replacementAmount | int | 20 | O | O | O | O | When Partial-Reversal: This field needs to be checked in reversal transaction. If present this is partial reversal domestic transaction. This original transaction needs to be reversed and amount present in this field needs to be debited. |
cardHolderReplacementAmount | int | 20 | O | O | O | O | When Partial-Reversal: This field needs to be checked in reversal transaction. If present this is partial reversal international transaction. This original transaction needs to be reversed and amount present in this field needs to be debited. |
transmissionDateTime | string | 36 | M | M | M | M | Transmission Date and Time to be sent in ISO 8601 format, eg: 2022-01-25T04:01:52Z, in SGT format |
systemTraceAuditNumber | string | 6 | M | M | M | M | Number to trace in euronet system |
localTransactionDateTime | string | 36 | M | M | M | M | Local Transaction Date and Time at the acquirer side to be sent in MMDDhhmmss. |
merchantCategoryCode | string | 4 | M | M | M | M | Merchant Category Code |
acquirerCountryCode | string | 3 | C | C | C | C | Acquirer bank country code to be passed in numeric code in ISO 4217. This field will tell where the txn is performed. Currently not used in MC platform |
panEntryMode | string | 3 | M | M | M | M | PAN entry mode, see complete list below |
networkID | string | 3 | M | M | M | M | “MCN” Mastercard Network |
PosDataSF4 | string | 1 | M | M | M | M | POS Cardholder Presence indicates whether the cardholder is |
PosDataSF5 | string | 1 | M | M | M | M | POS Card Presence indicates if the card is present at the point |
PosDataSF7 | string | 1 | M | M | M | M | POS Transaction Status indicates the purpose or status of the request. |
PosDataSF10 | string | 1 | M | M | M | M | Cardholder-Activated Terminal Level indicates the type of cardholder activated terminal used by the cardholder to initiate the transaction |
acquirerID | string | 11 | M | M | M | M | Unique id for Acquirer bank |
retrievalReferenceNumber | string | 12 | M | M | M | M | Retrieval reference number can be used to trace the transaction from acquirer, scheme and euronet. Generated by acquirer, unique for that particular txn. Can be duplicated across different acquirers. |
authorizationID | string | 6 | M | M | M | M | Authorization ID, to be generated by EN and sent this request. |
cardAcceptorTerminalID | string | 16 | M | C | M | M | Merchant Terminal ID/ ATM ID |
cardAcceptorMerchantID | string | 16 | M | M | M | M | Merchant ID/ For ATM what will this be? |
cardAcceptorTermName | string | 40 | M | M | M | M | Merchant name and description/ ATM Name and location. |
transactionCurrencyCode | string | 3 | M | M | M | M | Transaction currency represents the currency in which transaction was performed. Format: ISO 4217, for example USD, need not be home currency. |
cardHolderCurrencyCode | string | 3 | M | M | M | M | Cardholder currency represents the currency of issuer ISO 4217, home currency |
transactionID | string | 15 | M | M | M | M | Unique ID for all transaction requests across MC EN and AIG, |
OrgtransactionID | string | 15 | O | C | C | O | This field will be used in follow up transactions like incremental auth, reversals and advice of the original transactions. |
threeDsAuthTID | string | 36 | O | C | O | O | The Directory Server Transaction ID is generated by the EMV 3DS Mastercard |
DCCIndicator* | string | 1 | C | C | C | O | Only populated for DCC Txn |
ECOMindicator | string | 2 | O | C | O | O | Ecommerce Indicator. |
UCAFIndicator | string | 1 | O | C | O | O | UCAF Collection Values represeting security of Ecommerce Transaction |
threeDsValidation | string | 1 | O | C | O | O | This will be populated when Switch validates IAV successfully |
PANValidation | string | 1 | M | M | M | M | PANValidation. P – Performed ;N – Not-performed |
expiryDateValidation | string | 1 | M | M | M | M | Expiry date validation, P – Performed ;N – Not-performed |
pinValidation | string | 1 | M | O | C | O | Pin validation check. Only present if transaction is PIN base transaction. Like For ATM txns. P – Performed ;N – Not-performed |
CVVValidation | string | 1 | M | O | M | O | CVV Validation. Only present if transaction is Card base transaction. CVV is present in the physical card mag data. P – Performed ;N – Not-performed |
CVV2Validation | string | 1 | O | C | O | O | CVV2 Validation. Only present if transaction is Non-Card base transaction P – Performed ;N – Not-performed |
EMVValidation | string | 1 | M | O | M | O | EMV Validation. Only present if transaction is EMV Card base transaction P – Performed ;N – Not-performed |
MSTransactionTypeId | String | 3 | O | O | O | C | Transaction Type Identifier used to identify type / mode of funding Valid Values |
MSTransactionRefData | String | 358 | O | O | O | C | Additional transaction reference Data containing Sender Data Will be forwarded as received from MC. |
RRN | String | M | M | M | M | ||
cardVendor | String | M | M | M | M |
| |
feeAmount | int | O | O | O | O | ||
feeCurrency | String | C | C | C | C | ||
transactionCode | String | M | M | M | M |
| |
categoryCode | String | M | M | M | M |
|
PAN Entry Mode
Value | Description |
---|---|
00 | PAN entry mode unknown |
01 | PAN manual entry |
02 | PAN auto-entry via magnetic stripe—track data is not required. OR The acquirer is not qualified to submit magnetic stripe transactions, so Mastercard replaced value 90 or 91 with value 02. |
03 | PAN auto-entry via bar code reader |
04 | PAN auto-entry via optical character reader (OCR) |
05 | PAN auto-entry via chip |
07 | PAN auto-entry via contactless M/Chip |
09 | PAN/Token entry via electronic commerce containing DSRP cryptogram in DE 55 (Integrated Circuit Card [ICC] System-Related Data). |
10 | Credential on File |
79 | A hybrid terminal with an online connection to the acquirer failed in sending a chip fallback transaction (in which DE 22, subfield 1 = 80) to the issuer. or A hybrid terminal with no online connection to the acquirer failed to read the chip card. The merchant is prompted to read the magnetic stripe from the card, the magstripe is successfully read and indicates a service code 2XX (or 6XX if card is domestic). To complete the transaction in both cases, a voice transaction takes place during which the merchant communicates the PAN and the expiry date originating from the magstripe track 2 data to the acquirer. The acquirer then sends an online transaction to the issuer in which the value of DE 22, subfield 1 = 79 and in which DE 61 subfield 11 indicate that the terminal is chip capable. Refer to the M/Chip Requirements for additional information. |
80 | Chip card at chip-capable terminal was unable to process transaction using data on the chip; therefore, the terminal defaulted to the magnetic stripe-read PAN. The full track data has been read from the data encoded on the card and transmitted within the Authorization Request/0100 in DE 45 (Track 1 Data) or DE 35 (Track 2 Data) without alteration or truncation. To use this value, the acquirer must be qualified to use value 90. |
81 | PAN/Token entry via electronic commerce with optional Identity Check-AAV or DSRP cryptogram in UCAF. |
82 | PAN Auto Entry via Server (issuer, acquirer, or third party vendor system). |
90 | PAN auto-entry via magnetic stripe—the full track data has been read from the data encoded on the card and transmitted within the authorization request in DE 35 (Track 2 Data) or DE 45 (Track 1 Data) without alteration or truncation. |
91 | PAN auto-entry via contactless magnetic stripe—the full track data has been transmitted by the acquirer within the authorization request in DE 35 (Track 2 Data) or DE 45 (Track 1 Data) and forwarded to the issuer without alteration or truncation. |
95 | Visa only. Chip card with unreliable Card Verification Value (CVV) data. |
Response Code
Response Code | Exception Code | HTTP Status code | Message | Description |
---|---|---|---|---|
00 | 200 | Success | transaction successful | |
01 | InvalidRequestException | 400 | request is not valid. please check the request | request validation error |
02 | InvalidAccountException | 400 | account not found or not valid | account not found |
03 | AccountBlockedException | 400 | transaction cannot proceed because the account is ${accountStatus} | account status either FREEZE/BLOCKED |
04 | InsufficientBalanceException | 400 | not enough balance | balance not enough |
05 | CardNotFoundException | 400 | card with proxy number ${proxyNumber} is not found | not found card |
06 | CardBlockedException | 400 | card with proxy number ${proxyNumber} is ${cardStatus} | card status either LOCKED/PERMANENT_BLOCKED |
07 | CardLimitExceededException | 400 | transaction amount is exceed the limit | card transaction limit exceeded |
08 | TransactionNotPermittedException | 400 | transaction is not permitted by card holder | the incoming transaction is not permitted by card holder. eg. international transaction |
09 | FraudRejectionException | 400 | rejected by fraud system | rejected by fraud system |
10 | PostingTimeoutException | 408 | time out, please try again | timeout during posting |
11 | UnhandledException | 500 | unhandled error | unhandled error |
Attachments:
1664351752520.png (image/png)
image-20220929-081037.png (image/png)
image-20220929-081114.png (image/png)
image-20220929-082526.png (image/png)
image-20220929-082550.png (image/png)
image-20221014-014037.png (image/png)
image-20221014-014142.png (image/png)
image-20221123-102844.png (image/png)
image-20221213-091925.png (image/png)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~drawio~633132a714c6b4b2210d0808~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
Untitled Diagram-1671637427851.drawio (application/vnd.jgraph.mxfile)
Untitled Diagram-1671637427851.drawio.png (image/png)
~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
Untitled Diagram-1671637427851.drawio (application/vnd.jgraph.mxfile)
Untitled Diagram-1671637427851.drawio.png (image/png)
~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
Untitled Diagram-1671637427851.drawio (application/vnd.jgraph.mxfile)
Untitled Diagram-1671637427851.drawio.png (image/png)
~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
~Untitled Diagram-1671637427851.drawio.tmp (application/vnd.jgraph.mxfile)
Untitled Diagram-1671637427851.drawio (application/vnd.jgraph.mxfile)
Untitled Diagram-1671637427851.drawio.png (image/png)
image-20230202-061500.png (image/png)