TicketUserServices

<back to all web services

BorgunTest3DSaveCardRequest

Requires Authentication
Requires the role:AdminRequires the permission:ReadData
The following routes are available for this service:
POST/borgunTest3D/SaveCardTest 3D - Save Card Enrollment Step
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BorgunMPIEnrollmentACSField:
    name: Optional[str] = None
    values: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BorgunTest3DSaveCardResponse:
    status_code: Optional[int] = None
    message: Optional[str] = None
    success: Optional[bool] = None
    challenge_required: Optional[bool] = None
    session_id: Optional[str] = None
    redirect_to_a_c_s_form: Optional[str] = None
    redirect_to_a_c_s_data: Optional[List[BorgunMPIEnrollmentACSField]] = None
    enrollment_status: Optional[str] = None
    mpi_token: Optional[str] = None
    forced_path: Optional[str] = None
    forced_j_s_o_n_request: Optional[str] = None
    json_request: Optional[str] = None
    json_response: Optional[str] = None
    request_path: Optional[str] = None
    request_sent: Optional[str] = None
    request_received: Optional[str] = None
    token: Optional[str] = None
    virtual_card_number: Optional[str] = None
    card_already_exists: Optional[bool] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BorgunVerifyCardRequest:
    check_amount: Optional[int] = None
    currency: Optional[str] = None
    cvc: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BorgunMetadata:
    payload: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BorgunTokenMultiRequest:
    pan: Optional[str] = None
    exp_month: Optional[str] = None
    exp_year: Optional[str] = None
    verify_card: Optional[BorgunVerifyCardRequest] = None
    metadata: Optional[BorgunMetadata] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BorgunTest3DSaveCardRequest:
    request: Optional[BorgunTokenMultiRequest] = None
    pan: Optional[str] = None
    exp_month: Optional[str] = None
    exp_year: Optional[str] = None
    cvc: Optional[str] = None
    phone_verification_number: Optional[str] = None
    device_id: Optional[str] = None
    term_u_r_l: Optional[str] = None
    forced_path: Optional[str] = None
    forced_j_s_o_n_request: Optional[str] = None
    skip_borgun_call: Optional[bool] = None

Python BorgunTest3DSaveCardRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /borgunTest3D/SaveCard HTTP/1.1 
Host: stubbur-app.azurewebsites.net 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	request: 
	{
		pan: String,
		expMonth: String,
		expYear: String,
		verifyCard: 
		{
			checkAmount: 0,
			currency: String,
			cvc: String
		},
		metadata: 
		{
			payload: String
		}
	},
	pan: String,
	expMonth: String,
	expYear: String,
	cvc: String,
	phoneVerificationNumber: String,
	deviceId: String,
	termURL: String,
	forcedPath: String,
	forcedJSONRequest: String,
	skipBorgunCall: False
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	statusCode: 0,
	message: String,
	success: False,
	challengeRequired: False,
	sessionId: String,
	redirectToACSForm: String,
	redirectToACSData: 
	[
		{
			name: String,
			values: String
		}
	],
	enrollmentStatus: String,
	mpiToken: String,
	forcedPath: String,
	forcedJSONRequest: String,
	jsonRequest: String,
	jsonResponse: String,
	requestPath: String,
	requestSent: String,
	requestReceived: String,
	token: String,
	virtualCardNumber: String,
	cardAlreadyExists: False
}