Payfort: Invalid extra parameters "card_security_code" - payfort

Getting response code 00027 from payfort using Merchant page 2.0. This is happening when the card details are saved on the frontend.
{
"amount": "9900",
"response_code": "00027",
"signature": "",
"merchant_identifier": "",
"access_code": "",
"customer_ip": "127.0.0.1",
"language": "en",
"command": "PURCHASE",
"merchant_extra": "3",
"response_message": "Invalid extra parameters : card_security_code",
"merchant_reference": "",
"customer_email": "sufyan.khot#domain.com",
"merchant_extra1": "domain.com/en",
"merchant_extra2": "domain.com",
"currency": "AED",
"customer_name": "test test",
"status": "00"
}

Related

DocuSign API explorer - does not recognize tabs for Signature

I'm using the DocuSign API explorer to test the use of tabs for signature. I've created a Word document with a placeholder called /InternSignatureAnchor/ enter image description here
And the JSON request payload looks like this:
{
"documents": [
{
"documentBase64": "<Base64BytesHere>",
"documentId": "123456",
"fileExtension": "DOCX",
"name": "Freelance Contract"
}
],
"emailSubject": "Please Sign Contracts 3",
"recipients": {
"signers": [
{
"email": "dummy_email123#mmmm.mmm",
"name": "Dummy Recipient 1",
"recipientId": "1",
"roleName": "Internal Signatory",
"routingOrder": "1",
"tabs": {
"signHereTabs": [
{
"documentId": "123456",
"pageNumber": "1",
"tabLabel": "/InternSignatureAnchor/",
"xPosition": "0",
"yPosition": "36"
}
]
}
},
{
"email": "dummy_email321#mmmmm.mmm",
"name": "Dummy recipient 2",
"recipientId": "2",
"roleName": "External Signatory",
"routingOrder": "2"
}
]
},
"status": "sent"
}
When the signatory opens the document to sign, the "Sign" enter image description here
is not placed at the placeholder /InternSignatureAnchor/. When I use the Autoplace feature in DocuSign itself, it does work.
Anyone an idea?
Thanks in advance.
The "tagLabel" will just add a label to a tag. To use AutoTagging you'd need to use a json like below:
"tabs": {
"signHereTabs": [{
"anchorString": "Please Sign Here",
"anchorXOffset": "1",
"anchorYOffset": "0",
"anchorIgnoreIfNotPresent": "false",
"anchorUnits": "inches"
}]
}
I believe API explorer does not show the fields for auto tagging currently - so you'd need to perhaps use Postman to play around with this feature.

How to process payments with service fee being deducted in Visa Cybersource Payments API?

I have an app that I would like to add payment processing similar to Amazon payment processing into it where sub-merchants get paid by customers with service fee being deducted, I can see in https://developer.visa.com/capabilities/cybersource/reference#cybersource__cybs_payments_v2__v2__process_a_payment the following request body but there is no field in request body to specify a service fee:
{
"clientReferenceInformation": {
"code": "TC588171_3"
},
"processingInformation": {
"commerceIndicator": "internet"
},
"aggregatorInformation": {
"subMerchant": {
"cardAcceptorID": "1234567890",
"country": "US",
"phoneNumber": "650-432-0000",
"address1": "900 Metro Center",
"postalCode": "94404-2775",
"locality": "Foster City",
"name": "Visa Inc",
"administrativeArea": "CA",
"region": "PEN",
"email": "test#cybs.com"
},
"name": "V-Internatio",
"aggregatorID": "123456789"
},
"orderInformation": {
"billTo": {
"country": "US",
"lastName": "VDP",
"address2": "Address 2",
"address1": "201 S. Division St.",
"postalCode": "48104-2201",
"locality": "Ann Arbor",
"administrativeArea": "MI",
"firstName": "RTS",
"phoneNumber": "999999999",
"district": "MI",
"buildingNumber": "123",
"company": "Visa",
"email": "test#cybs.com"
},
"amountDetails": {
"totalAmount": "102.21",
"currency": "USD"
}
},
"paymentInformation": {
"card": {
"expirationYear": "2031",
"number": "5555555555554444",
"securityCode": "123",
"expirationMonth": "12",
"type": "002"
}
}
}
Is there a way or a workaround to get a service fee deducted?
Service fees go in the orderInformation block. Like this:
"orderInformation": {
"amountDetails": {
"totalAmount": "102.21",
"currency": "USD",
"serviceFeeAmount": "3.00"
},
There are a few prerequisites to using service fees. One of which you must be using First Data as your processor. For more details check this documentation.

Problem creating new account using docusign API

When I try to create a new account using the API I am getting this error:
{ "error": "internal_server_error", "error_description": "No site id
was found for region: None", "reference_id":
"e2ff6d67-119e-4b04-9325-512047e5baf5" }
My payload is:
{ "accounts": [ {
"address": {
"street_address": "santendar",
"locality": "santendar",
"region": "spanish area",
"country": "ESP",
"postal_code": "34567",
"phone": "12345"
},
"admin_user": {
"email_address": "abhistar002#gmail.com",
"first_name": "test",
"last_name": "team",
"job_title": "somejob"
},
"name": "testAccount",
"plan_id": "**********************",
"website": "example.com",
"reseller_id": "***********",
"customer_id": "************",
"paid_seats": "2"
} ] }
Which worked before. I have created many accounts using this API structure.
Any suggestions how to resolve this issue?
IF you look at this https://developers.docusign.com/esign-rest-api/reference/Accounts/Accounts/create you'll see that the Address part of your call is a bit different and should look like this:
"address": {
"street1": "sample string 1",
"street2": "sample string 2",
"city": "sample string 3",
"state": "sample string 4",
"zip": "sample string 5",
"phone": "sample string 6",
"fax": "sample string 7",
"country": "sample string 8"
}

Add Account (POST) Endpoint No Longer Working in new Yodlee API

OVERVIEW
I am not sure what happened, as I have not touched my code that interacts with the Add Account endpoint in Yodlee (POST /{cobrandName}/v1/providers/{providerId}), but it has become broken (it was working as of Thursday). I am now getting this reply:
{ errorCode: 'Y400',
errorMessage: 'Null argument specified',
referenceCode: 'RB_134ae91e-4c80-4ad5-aac5-243ca428421d' }
DETAILS
I have the appropriate route params inserted into this POST /{cobrandName}/v1/providers/{providerId} and am passing a stringified JSON object as the request body (per the documentation) that looks like this:
{
"provider": [{
"id": 492,
"name": "Fidelity Investments",
"loginUrl": "https://login.fidelity.com/ftgw/Fas/Fidelity/RtlCust/Login/Init?AuthRedU",
"baseUrl": "http://www.fidelity.com/",
"favicon": "https://moneycenter.ydlstatic.com/fastlink/appscenter/siteImage.fastlink.do?access_type=APPS_CENTER_PRODUCTION&siteId=492&imageType=FAVICON",
"logo": "https://moneycenter.ydlstatic.com/fastlink/appscenter/siteImage.fastlink.do?access_type=APPS_CENTER_PRODUCTION&siteId=492&imageType=LOGO",
"status": "Supported",
"mfaType": "Multiple levels of strong authentication.",
"oAuthSite": false,
"lastModified": "2016-03-31T10:39:36Z",
"forgetPasswordUrl": "http://personal.fidelity.com/accounts/services/content/pinchange.shtml.tvsr",
"containerNames": ["tax", "investment"],
"loginForm": {
"id": 172,
"forgetPasswordURL": "http://personal.fidelity.com/accounts/services/content/pinchange.shtml.tvsr",
"formType": "login",
"row": [{
"id": 4140,
"label": "Username",
"form": "0001",
"fieldRowChoice": "0001",
"field": [{
"id": 358,
"name": "LOGIN",
"maxLength": 15,
"type": "text",
"value": "07ceb28fc8b71dc3e08126e0169022419c114e02cbca7fcfb2e11b939d805c898310d0741bcc0a76943227a38c02e66fd5a5fb132a3c0fb4c663102b9e0947c99953f15fa051ac95fdf9a3ee7d461d33ff11482a3cf973ccd3c2aba6d494deb6ddd1d0dfc89ee0bfa991bf24e19d07bd9f066bbde4fd74ed88f3808ab7420f1430b1ead362a32dd26d5b077f263c83469c37a3c8816b7eaa243f9f89dc4ad4e023642ba1aa651d4b371f613d37619279d90187d11bbd4404896d18605c028bd55461c6e11b47a8aad8ea93d483db7c1211728c9b1222a86811a106077ae5525c75f427520d52478e48f22f6ae11a21bcb42e772befa2e83570c4b4d7c3a54619",
"isOptional": false,
"valueEditable": true
}]
}, {
"id": 4139,
"label": "Password",
"form": "0001",
"fieldRowChoice": "0002",
"field": [{
"id": 357,
"name": "PASSWORD",
"maxLength": 20,
"type": "password",
"value": "285968df9ddf385b2da03d7247533dd0f7dbf6d951c0a6a92bad7701868d4941bcdfe7a41167f3bb0a47cb5ae22557444f83a641318c1985035c6e2c7e7e11a4e71ac52965ad26845ee64a13a2a61c07945870b7c009aba673e01b074fc047e9b08c20cbde0cb36a6068a9d07b4cad7a777f8f6654dd8436527d6017e3a81af68f1dbbfabc52a93a2f8423b342b243316248cebb549bed7433f77a90aae4a3c1c892a725872f77a369407741be98715b39039b547f735e92748ddd5d389c4de3082684c1f5f5b1917ceb34348010866ce6cb649d6e4dac4c45d85c4a729c67fb643c34e704278f3a15626bbe73cddf69cfe5df8bcdd5682415afe952585da800",
"isOptional": false,
"valueEditable": true
}]
}]
}
}]
}
The form values are encrypted via PKI as per the documentation, using the key provided by the appropriate API endpoint, and I have both a cobrand session token and a yodlee user session token in the authentication headers ('Authorization': 'cobSession={appToken}, userSession={token}'). I was previously receiving back the expected 'refresh info' response using the same exact structure and process. I'm trying to understand what the 'null argument' referenced in the error is.

add tracking to mandrill send-template

My mandrill keeps saying my message is not opened when I call messages/info.json despite I have added tracking.
here is my request:
{
"key": "mykey",
"template_name": "message",
"template_content": {},
"message": {
"html": null,
"text": null,
"subject": "test",
"from_email": "info#test.io",
"from_name": "test",
"to": [
{
"email": "rob.proesmans#test.be",
"name": "rob",
"type": "to"
}
],
"headers": null,
"important": null,
"track_opens": true,
"track_clicks": true,
etc..
my mandrill response when i call /messages/info.json
{
"ts": 1455290984,
"_id": "3e5877fc43044841ab505f999b4a5b00",
"state": "sent",
"subject": "test",
"email": "rob.proesmans#redtree.be",
"tags": {},
"opens": 0,
"clicks": 0,
"smtp_events": [
{
"ts": 1455290986,
"type": "sent",
"diag": "250 2.0.0 OK 5E/A9-30218-21AFDB65",
"source_ip": "198.2.134.26",
"destination_ip": "94.143.184.119",
"size": 23062
}
],
"resends": {},
"sender": "info#redtree.io",
"template": "pocmessage",
"opens_detail": {},
"clicks_detail": {}
}
After 5minutes.. still no result after opening the mail..
What am i doing wrong?
Thank you
I takes around 2 hours till Mandrill knows when your mail is opened.