2. Initiate 3D Model

When you send a request to the Paywall 3D Model payment service, if the request is successful, a Paywall payment link is returned in the response. You should open this link in your application. The li

POST {{Base Adres}}/api/paywall/payment/start3dmodel

Important: In order to use the 3D Model Initiation service, you must send the ‘apikeypublic’ and ‘apiclientpublic’ parameters in the Header field. PaymentAPI Address

Sample JSON and example codes to be sent to the service are as follows.

Parameter
Type
Compulsory
Description

apikeypublic

string

Yes

The Public Key obtained from the merchant panel.

apiclientpublic

string

Yes

The Public Client obtained from the merchant panel.

Paywall Request Payload

{
    "PaymentDetail": {
        "Amount": 1.00,
        "MerchantUniqueCode": "22123222256226225",
        "TrackingCode": "TrackingCode1",
        "Half3D": false,
        "MerchantSuccessBackUrl": "https://domain.com/callback",
        "MerchantFailBackUrl": "https://domain.com/callback",
        "ClientIP": "0.0.0.0",
        "CurrencyId": 1,
        "Installment": 1,
        "ChannelId": 0,
        "TagId": 0,
        "EndOfTheDay": 1,
        "RegionId": 1,
        "ProviderBased": false,
        "ProviderKey": "providerkey",
        "PosBased": false,
        "PosId": 0,
        "MarketPlace": {
            "BasketAmount": 1.00
        },
        "PayRouteByPass": false,
        "PayRouteType": 0,
        "RouteGroupKey": "route-003"
    },
    "Card":{
        "OwnerName":"Iyzico Kartı",
        "Number":"5528790000000008",
        "ExpireMonth":"12",
        "ExpireYear":"2030",
        "Cvv":"123",
        "ForceCvv": false, // Sadece kayıtlı kartlar için
        "UniqueCode":"",
        "TempCardToken": "",
        "Partner": { // Nullable
            "PartnerBased": false,
            "PartnerIdentity": ""
        },
        "CardSave": {
            "Nickname": "Kredi kartım",
            "RelationalId1": "userid19283746",
            "RelationalId2": "",
            "RelationalId3": "",
            "Save": true
        }
    },
    "Customer":{
        "FullName":"FullName",
        "Phone":"5336662211",
        "Email":"[email protected]",
        "Country":"Country",
        "City":"City",
        "Address":"Address",
        "IdentityNumber":"IdentityNumber",
        "TaxNumber":"TaxNumber"
        "DeviceFingerprint": "FingerPrint",
        "UserAgent": "UserAgent",
        "UserRegisteredAt": "2026-01-13T12:00:00",
        "Location": {
            "Country": "Turkey",
            "City": "Istanbul",
            "Region": "europe",
            "Lat": "41.07",
            "Lon": "29.00"
        }
    },
    "Products":[{
        "ProductId": "ProductId",
        "ProductName": "ProductName",
        "ProductCategory": "ProductCategory",
        "ProductDescription": "ProductDescription",
        "ProductAmount": 1.0,
        "MemberId": 0,
        "MemberCustomCommission": false,
        "MemberCommission": 0,
        "MemberEarningCalculated": false,
        "MemberEarning": 0
    }],
    "UseFraudParameters": false, 
    "FraudParameters":{     
        "BypassFraud": false,        
        "OverrideActualParameters": false,
        "DeviceFingerprint": "test-FRD",
        "Amount": 101,       
        "ClientIP": "1.1.1.1",        
        "CountryCode": "TR-FRD",        
        "UserAgent": "UserAgent-FRD",        
        "Email": "[email protected]",        
        "Phone": "5435435454-FRD",
        "UserRegisteredAt": "2026-01-13T12:00:00",
        "Location": {
            "Country": "Turkey",
            "City": "Istanbul",
            "Region": "europe",
            "Lat": "41.07",
            "Lon": "29.00"
        }
    }
}

Main Directory: PaymentDetail

Parameter
Type
Compulsory
Description

Amount

decimal

Yes

Payment basket amount.

MerchantUniqueCode

string

Yes

It must be the same value as the MerchantUniqueCode sent in the payment initiation request. This code is a unique value assigned by your side for the transaction. It is used to uniquely identify and track a payment in all operations such as cancel, refund, and payment inquiry. Length: 250 characters

TrackingCode

string

No

It can be used as a secondary tracking number for the payment on your side. You can send any additional information that needs to be associated with the MerchantUniqueCode parameter under this field.

Important note: It is not unique and can be provided multiple times. If uniqueness is required, it must be managed on your side.

MerchantSuccessBackUrl

string

Yes

The URL to which the 3D screen will be redirected via FormPost for a successful transaction. Length: 250 characters See: İncele

MerchantFailBackUrl

string

Yes

The URL to which the 3D screen will be redirected via FormPost for a failed transaction. Length: 250 characters See: Review

CurrencyId

int

Yes

Currency See: Review

Installment

int

Yes

Installment information; send 1 for a single payment.

Half3D

bool

No

This parameter enables you to finalize your payments with a custom call. If you send the Half3D parameter as true, the payment will remain in the bank’s authorization (provision) until you complete the payment with a finalization request.

ClientIP

string

Yes

IP address of the party performing the transaction (customer/user/member, etc.). Length: 15 characters

TagId

int?

No

Used when you want to apply tagging to your payments.

ChannelId

int?

No

Used when you want to differentiate the channels through which your payments are sent to Paywall.

EndOfTheDay

int?

No

End-of-day value. If you want your payment to be processed only through providers that support “Next Day” settlement, you must send this parameter with a value. See: Review

RegionId

short?

No

This parameter allows you to specify which country’s providers should process your payment. If not specified, your payment will be processed as "Global".

ProviderBased

bool

No

Used when you decide on your side which provider should process the payment.

ProviderKey

string

Yes/No

The provider key through which you want the payment to be processed. See: List

PosBased

bool

No

Used when you determine on your side which provider should process the payment.

PosId

int

Yes/No

The connection ID of the provider through which you want the payment to be processed. It is available in the connected providers list obtained from the Paywall panel.

PayRouteByPass

bool

No

Indicates whether the PayRoute configuration set in the Paywall panel should be bypassed. With this parameter, you can override the default setting and change the routing type for a specific payment.

PayRouteType

short

Yes/No

If the PayRouteByPass parameter is sent as true, the PayRouteType parameter must also be provided. You can specify the routing type for the payment using this parameter. See: PayRoute Types

RouteGroupKey

string

Yes/No

If a RouteGroup is configured for PayRoute in the Paywall panel, or if PayRoute is bypassed for the payment and PayRouteType is set to RouteGroup, you must specify with this parameter which RouteGroup the payment will be processed under.

MarketPlace > BasketAmount

decimal

No

Used within the scope of a marketplace.

Main Directory: Card

Parameter
Type
Compolsory
Description

OwnerName

string

Yes/No

Full name of the cardholder from whom the payment will be taken. Length: 150 characters

Number

string

Yes/No

Card number from which the payment will be taken. Length: 20 characters

ExpireMonth

string

Yes/No

Expiration month of the card from which the payment will be taken.

ExpireYear

string

Yes/No

Expiration year of the card from which the payment will be taken.

Cvv

string

Yes/No

Security code (CVV) of the card from which the payment will be taken.

ForceCvv

bool

No

Used only for stored cards. With this parameter, you can also collect the CVV from your users for stored cards and send it within the payment request.

If you do not send this parameter as true for stored cards, Paywall will ignore all parameters except the UniqueCode parameter.

UniqueCode

string

Yes/No

Identity information of the stored card. It is returned by Paywall during the save and listing processes.

TempCardToken

string

Yes/No

Parameter to be used when you want to receive a payment using a temporarily stored card (Client-Side Tokenization).

Partner? > PartnerBased

bool?

Yes/No

Parameter to be used when you structure cards on a partner-based model.

Partner? > PartnerIdentity

string

Yes/No

When you structure cards on a partner-based model, this is your company’s partner identification in Paywall. You can obtain this information from the Paywall panel.

CardSave? > Save

bool

Yes/No

During the payment, if you want the card to be saved upon a successful transaction, this parameter should be sent as true. When sent as true, the other parameters under the CardSave object will be taken into account.

CardSave? > Nickname

string

Yes/No

Alias name of the card.

CardSave? > RelationalId1

string

Yes/No

Association value of the card.

CardSave? > RelationalId2

string

Yes/No

Secondary (hierarchical/tree-structured) association value of the card.

CardSave? > RelationalId3

string

Yes/No

Third (hierarchical/tree-structured) association value of the card.

Main Directory: Customer

Parameter
Type
Compolsory
Description

FullName

string

Yes

First name of the recipient on the merchant side.

Phone

string

Yes

GSM (mobile phone) number of the recipient on the merchant side.

Email

string

Yes

Email address of the recipient on the merchant side.

Country

string

Yes

Country information of the recipient on the merchant side.

City

string

Yes

City information of the recipient on the merchant side.

Address

string

Yes

Registered address of the recipient on the merchant side.

IdentityNumber

string

No

Identification number (TCKN) of the recipient on the merchant side.

TaxNumber

string

No

Tax identification number of the recipient on the merchant side.

DeviceFingerprint

string

No

Device fingerprint information of the recipient on the merchant side.

UserAgent

string

No

User agent information currently used by the recipient on the merchant side.

UserRegisteredAt

datetime

No

The user's registration date in your system.

Location

Location

No

The object containing the user’s location information.

Main Directory: Product<Array>

Parameter
Type
Compolsory
Description

ProductId

string

Yes

Product ID

ProductName

string

Yes

Product name

ProductCategory

string

Yes

Product category

ProductDescription

string

Yes

Product description.

ProductAmount

decimal

Yes

Product price information.

MemberId

int?

Yes/No

Required for the Marketplace model. It must be filled with the MemberId information of the sub-merchant in the Paywall system.

MemberEarningCalculated

bool?

Yes/No

Within the scope of the marketplace, if you calculate the sub-merchant’s earnings, you must send this parameter as true.

MemberEarning

decimal?

Yes/No

Within the scope of the marketplace, if you calculate the sub-merchant’s earnings, you must send the earning amount to Paywall using this parameter.

MemberCustomCommission

bool

Yes/No

Within the scope of the marketplace, this parameter is used if you want to define a commission for the sub-merchant for this specific sale.

MemberCommission

decimal?

Yes/No

Within the scope of the marketplace, if you want to define a commission for the sub-merchant for this specific sale, this parameter is used to send the commission amount.

Main Directory: Location

Country

string

No

The user’s country information.

City

string

No

The user’s city information.

Region

string

No

The user’s region information.

Lat

string

No

The latitude of the user’s location on the map.

Lon

string

No

The longitude of the user’s location on the map.

Main Directory: FraudParameters

For the parameters in the FraudParameters directory to be valid for fraud checks, the UserFraudParameters field in the Main Directory must be sent as true. Otherwise, fraud checks will be performed using the information in PaymentDetail.

Parameter
Type
Compolsory
Description

BypassFraud

string

Yes

If sent as true, it allows previously configured fraud checks to be bypassed.

OverrideActualParameters

string

Yes

If sent as true, the process will continue and be recorded using the parameters under "FraudParameters" instead of those under "PaymentDetail" for fraud checks.

DeviceFingerprint

string

No

Device fingerprint information to be used in fraud checks.

Amount

string

No

Amount information to be used in fraud checks.

ClientIP

string

No

Customer IP information to be used in fraud checks.

CountryCode

string

No

Country code information to be used in fraud checks.

UserAgent

string

No

List of UserAgents to be used in fraud checks.

Email

string

No

Email address information to be used in fraud checks.

Phone

string

No

Phone number information to be used in fraud checks.

UserRegisteredAt

datetime

No

The user's registration date in your system.

Location

Location

No

The object containing the user’s location information.

Paywall Response

Parameter
Type
Description

ErrorCode

int

Error code. Returns “0” if the operation is successful.

Result

bool

Returns a true or false value. Returns “true” if the operation is successful.

Message

string

If the operation fails, this is the message describing the error; it provides language support based on the locale parameter.

Body

object

If the operation fails, this is the code associated with the error.

Last updated