Hello, I am trying an API, this is Create Multi Reverse Funds Transaction and I am trying to use the code that they offer but I am having problems because when I run it with node js it gives me an error because it asks me for this: mleKeyId, mlePublicKeyPath, mlePrivateKeyPath, cert this asks me in a file called funds_trasfer_api.js that connects to the multireversefundstransfer_test.js i mean this
Hi @cynthia-ops,
Please provide the information below for further investigation.
1. End Point
2. Request Header
3. Request Body
4. Response Header (include the x-correlation-id)
5. Response Body
Using SoapUI, you can find the x-correlation-id in the Raw Tab of the response header.
Hi @cynthia-ops,
If the error is fixed please let me know and I'll take you off my contact list.
No, the error has not yet been solved and I'm running the files from the console directly with node js. I have another question, I noticed that they have an API called click to pay that I would like to work with, but when I click to start the project, it sends me to the page main where you add the APIs and I look for the click to pay one and it doesn't appear
Hi @cynthia-ops,
To get started with Click to Pay, please refer to How Click to Pay Works and refer to the section that suits your use case as a Merchant or PSP here: https://developer.visa.com/capabilities/visa-secure-remote-commerce/docs
Hi @cynthia-ops,
You can get your mleKeyId, mlePublicKeyPath, and mlePrivateKeyPath from your project app dashboard. Refer to sample screenshots.
Screenshot Image - Project App Dashboard > Credentials
Screenshot Image - MLE
Hello, I already solved the redentials. In your test data, this code comes
'use strict';
var api = require('../src/funds_transfer_api').funds_transfer_api;
var internalConfig = process.env.CONFIG_FILE;
var assert = require('assert');
var mocha = require('mocha');
var describe = mocha.describe;
var it = mocha.it;
if(internalConfig==null){
internalConfig = "credentials.json";
}
var StatusCode="";
var authCredentials = require('../' + internalConfig);
var funds_transfer_api = new api(authCredentials);
// path invoked is '/visadirect/fundstransfer/v1/pushfundstransactions';
it('pushfunds Api Execution', (done) => {
funds_transfer_api.pushfunds(getParameters())
.then(function (result) {
// Put your custom logic here
console.log('\nResponse: ' + JSON.stringify(result.response));
console.log('\nResponse Status: ' + JSON.stringify(result.response.statusCode));
StatusCode= JSON.stringify(result.response.statusCode);
console.log('\n--------------- Above product is Visa Direct ---------------');
console.log('\n--------------- API is Funds Transfer Api ---------------');
console.log('\n--------------- EndPoint is pushfunds ---------------');
console.log('\n\n');
done();
})
.catch(function (error) {
console.log('\nResponse: ' + JSON.stringify(error.response));
console.log('\nResponse Status: ' + JSON.stringify(error.response.statusCode));
StatusCode= JSON.stringify(error.response.statusCode);
console.log('\n--------------- Above product is Visa Direct ---------------');
console.log('\n--------------- API is Funds Transfer Api ---------------');
console.log('\n--------------- EndPoint is pushfunds ---------------');
console.log('\n\n');
done();
});
}).timeout(10000);
it('pushfunds StatusCode', function(){
// assert.equal(-1, [1,2,3].indexOf(4));
assert.equal(StatusCode.startsWith(2),true);
});
function getParameters() {
var parameters = {
"Accept": "application/json",
"Content-Type": "application/json"
};
parameters.payload = {
"businessApplicationId": "AA",
"transactionIdentifier": "381228649430015",
"cardAcceptor": {
"idCode": "CA-IDCode-77765",
address: {
"county": "San Mateo",
"country": "USA",
"state": "CA",
"zipCode": "94404"
},
"terminalId": "TID-9999",
"name": "Visa Inc. USA-Foster City"
},
"senderAddress": "901 Metro Center Blvd",
"sourceOfFundsCode": "05",
"recipientName": "rohan",
"senderName": "Mohammed Qasim",
"senderStateCode": "CA",
"merchantCategoryCode": "6012",
"acquirerCountryCode": "840",
"senderReference": "",
"recipientPrimaryAccountNumber": "4957030420210496",
"retrievalReferenceNumber": "412770451018",
"senderAccountNumber": "4653459515756154",
"transactionCurrencyCode": "USD",
"acquiringBin": "408999",
"pointOfServiceData": {
"posConditionCode": "00",
"panEntryMode": "90",
"motoECIIndicator": "0"
},
"senderCity": "Foster City",
"amount": "124.05",
"systemsTraceAuditNumber": "451018",
"senderCountryCode": "124"
};
parameters.payload.localTransactionDateTime = Date.now();
return parameters;
}
when running it in console it gives me this error
PS C:\Users\cuchu\Downloads\visa\visa_direct\funds_transfer_api\test> npx mocha pushfunds_test.js
API Push Funds
(node:22360) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
encryption error
1) pushfunds Api Execution
2) pushfunds StatusCode
0 passing (10s)
2 failed
1) Push Funds API
pushfunds API Execution:
Error: Timeout of 10000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (C:\Users\cuchu\Downloads\visa\visa_direct\funds_transfer_api\test\pushfunds_test.js)
at listOnTimeout (node:internal/timers:569:17)
at process.processTimers (node:internal/timers:512:7)
2) Push Funds API
pushfunds StatusCode:
AssertionError [ERR_ASSERTION]: false == true
+ expected - actual
-false
+true
at Context.<anonymous> (pushfunds_test.js:37:16)
at process.processImmediate (node:internal/timers:476:21) will you have the solution?
Hi @cynthia-ops,
Try changing your "localTransactionDateTime": to the time shown in the Response Header and see if that works. See my successful sample request/response payload below and try your test again.
End Point https://sandbox.api.visa.com/visadirect/fundstransfer/v1/pushfundstransactions
Method POST
Request
{
"amount": "124.05",
"localTransactionDateTime": "2023-08-29T20:23:33",
"senderAddress": "901 Metro Center Blvd",
"pointOfServiceData": {
"panEntryMode": "90",
"posConditionCode": "00",
"motoECIIndicator": "0"
},
"recipientPrimaryAccountNumber": "4957030420210496",
"colombiaNationalServiceData": {
"addValueTaxReturn": "10.00",
"taxAmountConsumption": "10.00",
"nationalNetReimbursementFeeBaseAmount": "20.00",
"addValueTaxAmount": "10.00",
"nationalNetMiscAmount": "10.00",
"countryCodeNationalService": "170",
"nationalChargebackReason": "11",
"emvTransactionIndicator": "1",
"nationalNetMiscAmountType": "A",
"nationalReimbursementFee": "20.00",
"costTransactionIndicator": "0"
},
"cardAcceptor": {
"address": {
"country": "USA",
"zipCode": "94404",
"county": "San Mateo",
"state": "CA"
},
"idCode": "CA-IDCode-77765",
"name": "Visa Inc. USA-Foster City",
"terminalId": "TID-9999"
},
"senderReference": "",
"transactionIdentifier": "381228649430015",
"acquirerCountryCode": "840",
"acquiringBin": "408999",
"retrievalReferenceNumber": "412770451018",
"senderCity": "Foster City",
"senderStateCode": "CA",
"systemsTraceAuditNumber": "451018",
"senderName": "Mohammed Qasim",
"businessApplicationId": "AA",
"settlementServiceIndicator": "9",
"merchantCategoryCode": "6012",
"transactionCurrencyCode": "USD",
"recipientName": "rohan",
"senderCountryCode": "124",
"sourceOfFundsCode": "05",
"senderAccountNumber": "4653459515756154"
}
Response
{
"transmissionDateTime": "2023-08-29T20:26:25.000Z",
"settlementFlags": {
"settlementServiceFlag": "9",
"givUpdatedFlag": "false",
"settlementResponsibilityFlag": "true",
"givPreviouslyUpdatedFlag": "true"
},
"transactionIdentifier": 381228649430015,
"actionCode": "65",
"responseCode": "5"
}
Response Header
Status Code: 200
Server : nginx
Date : Tue, 29 Aug 2023 20:26:25 GMT
Content-Type : application/json;charset=UTF-8
Content-Length : 273
Connection : keep-alive
X-SERVED-BY : -8675d7f8-9m8
X-CORRELATION-ID : 1693340785_247_914830345_-8675d7f8-9m8_VDP_WS
X-APP-STATUS : 200
Content-Language : en-US
Cache-Control : no-cache, no-store, must-revalidate
X-Frame-Options : SAMEORIGIN
X-XSS-Protection : 0
X-Content-Type-Options : nosniff
Strict-Transport-Security : max-age=31536000;includeSubdomains
Pragma : no-cache
Expires : -1
Content-Security-Policy-Report-Only : default-src 'self' https://*.v.me https://*.visa.com;script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.visa.com https://*.v.me;img-src 'self' https://*.v.me https://*.visa.com https://*.unica.com https://ad.doubleclick.net;style-src 'self' 'unsafe-inline' https://*.visa.com;object-src https://*.v.me https://*.visa.com data:;report-uri /logging/logCSPReport;
X-Content-Security-Policy-Report-Only : default-src 'self' https://*.v.me https://*.visa.com;script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.visa.com https://*.v.me;img-src 'self' https://*.v.me https://*.visa.com https://*.unica.com https://ad.doubleclick.net;style-src 'self' 'unsafe-inline' https://*.visa.com;object-src https://*.v.me https://*.visa.com data:;report-uri /logging/logCSPReport;
X-WebKit-CSP-Report-Only : default-src 'self' https://*.v.me https://*.visa.com;script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.visa.com https://*.v.me;img-src 'self' https://*.v.me https://*.visa.com https://*.unica.com https://ad.doubleclick.net;style-src 'self' 'unsafe-inline' https://*.visa.com;object-src https://*.v.me https://*.visa.com data:;report-uri /logging/logCSPReport;
X-XSS-Protection : 1; mode=block
X-Content-Type-Options : nosniff
Strict-Transport-Security : max-age=31536000;includeSubdomains;always
Hi @cynthia-ops,
Please share your result with us. If the error is fixed, please let us know.
Hi @cynthia-ops,
I haven't heard from you so I'll take you off my contact list. Please reach out to us at the community if you need further assistance.