Request for invoice payment

Request for invoice payment
  • After initial invoice registration its status is PREPARED. After 1st payment request invoice status will be changed to IN_PROGRESS. It is possible to re-try payment using the same payment request (in case of failure, e.g. insufficient funds). Input data depends on current invoice processing step.
  • Method: POST, URL: /invoice/{invoice_ref}
Card data submission request parameters:
Field Usage Description
mpi_callback_url
Return URL after 3D-Secure (MPI) authentication to merchant website.
Invoice_ref will be added automatically to the url.
cardholder M
Cardholder name. Supported conditions:

• Apostrophe (') for names like "Gareth O'Hare"
• Minus for double names like "Alexandru-Cristian"
• Dot (.) for honorific prefixes like "MR.", "MRS.", "MISS.", "MS.", "DR.", "THE."
• Dot (.) for initials like "Jimmy L. Morgan", "J.P. Teron"
• Length of name max 30 symbols, min 3 symbols

+Latvian and Russian symbols

Pattern:
"${cardholder.name.regex:^[ A-Za-z" + // ASCII
"'-." + // Special
"\\u0410-\\u044F\\u0451\\u0401" + // Russian
"\\u0100\\u0101\\u0112\\u0113\\u012A\\u012B\\u014C\\u014D\\u016A\\u016B\\u010C\\u010D\\" +
"u0122\\u0123\\u0136\\u0137\\u013B\\u013C\\u0145\\u0146\\u0156\\u0157\\u0160\\u0161\\u017D\\u017E" + // Latvian
"]{3,30}$}"
pan M card number
cvc M security code (3 digits for VISA and MC, 4 for Amex)
expiry M Expiration date, format MMYY
  • Fields for signature calculation: <invoice_ref><X-Shop-Name><X-Nonce><ShopPassword>
Card data submission request example
  {
    "cardholder": "John Smith",
    "pan": "4111111111111111",
    "cvc": "123",
    "expiry": "1220",
    "mpi_callback_url": "https://merchantsite.example.com/mpi_callback"
  }
          
MPI response data submission request parameters
All these parameters will be available in POST request to the mpi_callback_url after customer's 3D-Secure authentication against his card issuing institution/bank. Merchant should pass these fields back to BilderlingsPay to continue any 3D-Secure enrolled card transaction (for MPI-enabled merchant).
  • Method: POST , URL: /invoice/mpi
  • Field
  • Usage
  • Description
  • mdErrorMsg
  • M
  • MPI status ("Authenticated" in case of success)
  • mdStatus
  • M
  • Overall authentication status (number, from 0 to 8, 1 in case of success)
  • eci
  • M
  • Electronic Commerce Indicator (Visa/MC value)
  • version
  • M
  • MPI protocol version (2.0)
  • veresEnrolledStatus
  • M
  • Validation Enrollment status (Y or N)
  • iReqCode
  • M
  • Code indicating the problem identified in the message
  • vendorCode
  • M
  • MPI vendor code (usually empty line)
  • sID
  • M
  • Request session ID (usually "1")
  • PAResSyntaxOK
  • M
  • Payer Authentication response syntax check status
  • cavv
  • M
  • Cardholder Authentication Verification Value (ID by VISA)
  • xid
  • M
  • Upstream provider transaction ID
  • cavvAlgorithm
  • M
  • Algorithm ID used by VISA
  • merchantID
  • M
  • Upstream provider merchant ID
  • iReqDetail
  • M
  • May provide supporting detail, such as the specific data elements that caused the Invalid Request Code
  • PAResVerified
  • M
  • Payer Authentication response verification mark
  • txstatus
  • M
  • MPI verification transaction completeness flag (Y or N)
  • MD
  • M
  • Merchant Data field passed across the MPI requests
  • paresTxStatus
  • M
  • Payer Authentication transaction Status flag (Y or N)
  • digest
  • M
  • All previous field signature
  • No signature calculation needed, MPI digest will provide required authentication.
MPI response data submission request example
  • Method: POST , URL: /invoice/mpi
Request object:
{
  "mdErrorMsg": "Authenticated",
  "mdStatus": "1",
  "eci": "05",
  "version": "2.0",
  "veresEnrolledStatus": "Y",
  "iReqCode": "",
  "vendorCode": "",
  "sID": "1",
  "PAResSyntaxOK": "true",
  "cavv": "AAABCAIFIQAAAAAFEQUhAAAAAAA=",
  "xid": "E54r1c6KEBgNx8BAWUypDtguv3g=",
  "cavvAlgorithm": "2",
  "merchantID": "3401602",
  "iReqDetail": "",
  "PAResVerified": "true",
  "txstatus": "Y",
  "MD": "OIMf0I42NDW_128NSaAoAEB5g4fefaRbkk8vSk5IRb2b9a5Vs9VRgjfF5faeqjoslQ==",
  "paresTxStatus": "Y",
  "digest": "Ntn94VRLvYLGF2fazEFt5PkoU="
}