### Example Signature Calculation (No Request Body) Source: https://developer.oderopay.com.tr/tr/api An example demonstrating the signature calculation process for an API request that does not include a request body. It shows the step-by-step concatenation of URL, API Key, Secret Key, and Random Key, followed by the final signature. ```text Full URL: https://api-gateway.oderopay.com.tr/onboarding/v1/sub-merchants/1 API Key: key-1 Secret Key: FooBar123! Random Key: Xa15Fp11T Concatenated String: https://api-gateway.oderopay.com.tr/onboarding/v1/sub-merchants/1key-1FooBar123!Xa15Fp11T Signature: L/F2ZAOH/AGXZPIULNHDGOFZ+D5JS1097UP6RH11VSO= ``` -------------------------------- ### Example Signature Calculation (With Request Body) Source: https://developer.oderopay.com.tr/tr/api An example illustrating the signature calculation for an API request that includes a JSON request body. It details the concatenation of the URL, API Key, Secret Key, Random Key, and the request body, leading to the final signature. ```text Full URL: https://api-gateway.oderopay.com.tr/onboarding/v1/buyers Request Body: {"email":"haluk.demir@example.com","name":"Haluk","surname":"Demir","gsmNumber":"905551111111","identityNumber":"11111111110","buyerExternalId":"0ac49f08-f2a9-4326-a4d8-f6c1b01596fb"} API Key: key-1 Secret Key: FooBar123! Random Key: Xa15Fp11T Concatenated String: https://api-gateway.oderopay.com.tr/onboarding/v1/buyerskey-1FooBar123!Xa15Fp11T{"email":"haluk.demir@example.com","name":"Haluk","surname":"Demir","gsmNumber":"905551111111","identityNumber":"11111111110","buyerExternalId":"0ac49f08-f2a9-4326-a4d8-f6c1b01596fb"} Signature: IRWQTISFBKCSM/NGZZ9XGN9PCTBXC0YSUJIBZMUZ9VS= ``` -------------------------------- ### GET /websites/developer_oderopay_tr_tr/bin Source: https://developer.oderopay.com.tr/tr/api/bin-installment/retrieve-bin Retrieves information about a card based on its BIN number. ```APIDOC ## GET /websites/developer_oderopay_tr_tr/bin ### Description Retrieves information about a card based on its BIN number. This endpoint is used to get details such as card type, association, brand, and issuing bank. ### Method GET ### Endpoint /websites/developer_oderopay_tr_tr/bin ### Parameters #### Query Parameters - **binNumber** (number) - Required - The last 6 digits of the card number for which the inquiry will be made. ### Request Example ```json { "binNumber": 123456 } ``` ### Response #### Success Response (200) - **binNumber** (string) - The last 6 digits of the card number inquired. - **cardType** (CardType) - The type of the card. Possible values are `CREDIT_CARD`, `DEBIT_CARD`, or `PREPAID_CARD`. See Card Types. - **cardAssociation** (CardAssociation) - The association of the card. Possible values are `VISA`, `MASTER_CARD`, `AMEX`, or `TROY`. See Card Associations. - **cardBrand** (string) - The brand of the card. - **bankName** (string) - The name of the issuing bank. - **bankCode** (number) - The code of the issuing bank. - **commercial** (boolean) - Indicates if the card is a commercial card. #### Response Example ```json { "binNumber": "123456", "cardType": "CREDIT_CARD", "cardAssociation": "VISA", "cardBrand": "Visa Classic", "bankName": "Sample Bank", "bankCode": 123, "commercial": false } ``` ``` -------------------------------- ### GET /tokenlink/v1/products Source: https://developer.oderopay.com.tr/tr/api/pay-by-link/search Retrieves a list of links based on the provided query parameters. Supports pagination and filtering by name, status, and token. ```APIDOC ## GET /tokenlink/v1/products ### Description This endpoint allows you to search for links using various query parameters. You can filter links by name, status, and token, and control pagination with 'page' and 'size' parameters. ### Method GET ### Endpoint /tokenlink/v1/products ### Parameters #### Query Parameters - **name** (string) - Optional - The name of the link. - **status** (Status) - Optional - The status of the link. - **token** (string) - Optional - The unique token of the link. - **page** (number) - Optional - Used for pagination. Defaults to 0. - **size** (number) - Optional - Used for pagination. Defaults to 10. ### Response #### Success Response (200) - **page** (number) - The current page number. - **size** (number) - The number of items returned in this response. - **totalSize** (number) - The total number of items available. - **items** (Link[]) - An array of Link objects. Each Link object contains the following fields: - **id** (long) - The unique ID of the link. - **status** (Status) - The status of the link (e.g., ACTIVE, PASSIVE). - **name** (string) - The name of the link. - **description** (string) - Optional - A detailed description of the link. - **price** (decimal) - Optional - The price associated with the link. - **stock** (number) - Optional - The stock quantity of the link. - **soldCount** (number) - The number of times payment has been received via the link. - **enabledInstallments** (string) - Optional - Specifies the available installments for the link (e.g., "1,2,3,6"). - **expireDate** (date) - Optional - The expiration date of the link. - **token** (string) - The unique 4-character token of the link. - **url** (string) - The URL of the link. - **qrCodeUrl** (string) - The URL for the link's QR code. #### Response Example ```json { "page": 0, "size": 10, "totalSize": 50, "items": [ { "id": 12345, "status": "ACTIVE", "name": "Example Product", "description": "This is a sample product link.", "price": 99.99, "stock": 100, "soldCount": 5, "enabledInstallments": "1,2,3", "expireDate": "2024-12-31", "token": "ABCD", "url": "https://example.com/pay/ABCD", "qrCodeUrl": "https://example.com/qr/ABCD.png" } ] } ``` ``` -------------------------------- ### GET /onboarding/v1/sub-merchants Source: https://developer.oderopay.com.tr/tr/api/entities/sub-merchant/search This endpoint is used to search for sub-merchants. It supports various query parameters for filtering the search results. ```APIDOC ## GET /onboarding/v1/sub-merchants ### Description Used to search for sub-merchants. The URL parameters for this endpoint are detailed separately. ### Method GET ### Endpoint /onboarding/v1/sub-merchants ### Query Parameters (Refer to 'Alt üye işyeri arama URL parametreleri' for specific query parameters) ### Request Example (No specific request body for GET request, parameters are passed via query string) ### Response #### Success Response (200) - **data** (object) - Contains the sub-merchant details if found. - **id** (long) - Sub-merchant ID. - **status** (Status) - Sub-merchant status. - **name** (string) - Sub-merchant name. - **email** (string) - Sub-merchant email. - **iban** (string) - Sub-merchant IBAN. - **address** (string) - Sub-merchant address. - **gsmNumber** (string) - Sub-merchant GSM number. - **taxOffice** (string) - Sub-merchant tax office. - **taxNumber** (string) - Sub-merchant tax number. - **contactName** (string) - Sub-merchant contact name. - **contactSurname** (string) - Sub-merchant contact surname. - **identityNumber** (string) - Sub-merchant identity number. - **legalCompanyTitle** (string) - Sub-merchant legal company title. - **subMerchantExternalId** (string) - Sub-merchant external ID. - **subMerchantType** (SubMerchantType) - Sub-merchant type. #### Response Example { "data": [ { "id": 12345, "status": "ACTIVE", "name": "Example Merchant", "email": "merchant@example.com", "iban": "TR123456789012345678901234", "address": "123 Main St, Anytown", "gsmNumber": "+905551234567", "taxOffice": "Ankara Vergi Dairesi", "taxNumber": "1234567890", "contactName": "John", "contactSurname": "Doe", "identityNumber": "11111111111", "legalCompanyTitle": "Example Company LLC", "subMerchantExternalId": "EXT123", "subMerchantType": "INDIVIDUAL" } ] } ``` -------------------------------- ### GET /ödeme/kırılım/iade Source: https://developer.oderopay.com.tr/tr/api/payments/search-payments Belirli bir ödeme kırılımına ait iade bilgilerini getirir. Bu bilgiler, iadenin başarılı olup olmadığını, iade edilen tutarı ve iadeyle ilgili diğer detayları içerir. ```APIDOC ## GET /ödeme/kırılım/iade ### Description Bu endpoint, ödeme kırılımına ilişkin tam ve kısmi, başarılı ya da başarısız iade bilgilerini almanızı sağlar. ### Method GET ### Endpoint /ödeme/kırılım/iade ### Parameters #### Query Parameters - **id** (long) - Required - İadeye ilişkin ÖderoPay tarafından türetilen ID - **createdDate** (date) - Required - İadenin gerçekleştiği tarih - **refundStatus** (string) - Required - bkz: İade Durumları - **refundDestinationType** (RefundDestinationType) - Required - bkz: İade Tipleri - **refundPrice** (decimal) - Required - İade edilen tutar - **refundBankPrice** (decimal) - Required - İade sonrası karta geri yatırılan - **refundWalletPrice** (decimal) - Required - İade sonrası cüzdana geri yatırılan - **conversationId** (string) - Required - İade isteğinde üye işyeri tarafından gönderilen `conversationId` değeri - **paymentType** (PaymentType) - Required - (bkz: Ödeme Tipleri) İade edilen ödemenin tahsilat tipi - **isAfterSettlement** (boolean) - Required - İadenin, kırılımın para gönderimi sonrasında gerçekleşip gerçekleşmediği - **error** (Error) - Optional - (bkz: Hata Bilgileri) İadenin başarısız olduğu durumda yer alır. Hata bilgilerini içerir ### Response #### Success Response (200) - **id** (long) - İadeye ilişkin ÖderoPay tarafından türetilen ID - **createdDate** (date) - İadenin gerçekleştiği tarih - **refundStatus** (string) - bkz: İade Durumları - **refundDestinationType** (RefundDestinationType) - bkz: İade Tipleri - **refundPrice** (decimal) - İade edilen tutar - **refundBankPrice** (decimal) - İade sonrası karta geri yatırılan - **refundWalletPrice** (decimal) - İade sonrası cüzdana geri yatırılan - **conversationId** (string) - İade isteğinde üye işyeri tarafından gönderilen `conversationId` değeri - **paymentType** (PaymentType) - (bkz: Ödeme Tipleri) İade edilen ödemenin tahsilat tipi - **isAfterSettlement** (boolean) - İadenin, kırılımın para gönderimi sonrasında gerçekleşip gerçekleşmediği - **error** (Error) - (bkz: Hata Bilgileri) İadenin başarısız olduğu durumda yer alır. Hata bilgilerini içerir #### Error Response (4xx/5xx) - **errorCode** (string) - İlgili hata için ÖderoPay API tarafından atanan `errorCode` değeri - **errorGroup** (string) - Hata grubu - **errorName** (string) - Bankadan dönen hata adı - **errorMessage** (string) - Bankadan dönen hata mesajı ### Request Example ```json { "id": 1234567890, "createdDate": "2023-10-27T10:00:00Z", "refundStatus": "SUCCESS", "refundDestinationType": "CARD", "refundPrice": 50.00, "refundBankPrice": 50.00, "refundWalletPrice": 0.00, "conversationId": "CONV-12345", "paymentType": "CREDIT_CARD", "isAfterSettlement": true } ``` ### Response Example ```json { "id": 1234567890, "createdDate": "2023-10-27T10:00:00Z", "refundStatus": "SUCCESS", "refundDestinationType": "CARD", "refundPrice": 50.00, "refundBankPrice": 50.00, "refundWalletPrice": 0.00, "conversationId": "CONV-12345", "paymentType": "CREDIT_CARD", "isAfterSettlement": true } ``` ``` -------------------------------- ### GET /onboarding/v1/buyers/:id Source: https://developer.oderopay.com.tr/tr/api/entities/buyer/retrieve Retrieves information for a specific buyer using their ID. The response includes the buyer's status, email, identity number, name, surname, phone number, and external ID. ```APIDOC ## GET /onboarding/v1/buyers/:id ### Description Retrieves detailed information about a specific buyer using their unique identifier. ### Method GET ### Endpoint /onboarding/v1/buyers/:id #### Path Parameters - **id** (long) - Required - The unique identifier of the buyer. ### Response #### Success Response (200) - **id** (long) - Required - The unique identifier of the buyer. - **status** (string) - Required - The status of the buyer. Possible values are 'ACTIVE' or 'PASSIVE'. - **email** (string) - Required - The email address of the buyer. - **identityNumber** (string) - Required - The identity number of the buyer. - **name** (string) - Required - The first name of the buyer. - **surname** (string) - Required - The last name of the buyer. - **gsmNumber** (string) - Required - The phone number of the buyer. - **buyerExternalId** (string) - Required - The external identifier of the buyer. #### Response Example ```json { "data": { "id": 12345, "status": "ACTIVE", "email": "buyer@example.com", "identityNumber": "12345678901", "name": "John", "surname": "Doe", "gsmNumber": "+905551234567", "buyerExternalId": "ext_buyer_id_123" } } ``` ``` -------------------------------- ### GET /settlement-reporting/v1/settlement-file/bounced-sub-merchant-rows Source: https://developer.oderopay.com.tr/tr/api/settlement/retrieve-bounced-sub-merchant This endpoint allows you to query sub-merchants for whom payout transactions could not be completed. You can filter the results by providing a start and end date. ```APIDOC ## GET /settlement-reporting/v1/settlement-file/bounced-sub-merchant-rows ### Description Use this endpoint to query sub-merchants who failed to receive payouts. You can specify a date range to narrow down the search. ### Method GET ### Endpoint `/settlement-reporting/v1/settlement-file/bounced-sub-merchant-rows` ### Parameters #### Query Parameters - **startDate** (string) - Required - The start date for the payout search. - **endDate** (string) - Required - The end date for the payout search. ### Response #### Success Response (200) - **size** (number) - The total number of results returned. - **items** (BouncedSubMerchantRow[]) - An array of objects containing details about sub-merchants with failed payouts. See 'Bounced Sub-Merchant Payout' for detailed field descriptions. ### Bounced Sub-Merchant Payout - **id** (long) - The identifier for the bounced payout record. - **iban** (string) - The IBAN of the sub-merchant. - **contactName** (string) - The first name of the contact person. - **contactSurname** (string) - The last name of the contact person. - **legalCompanyTitle** (string) - The legal company title of the sub-merchant. #### Response Example { "size": 10, "items": [ { "id": 12345, "iban": "TR123456789012345678901234", "contactName": "Ahmet", "contactSurname": "Yılmaz", "legalCompanyTitle": "ABC Ticaret A.Ş." } ] } ``` -------------------------------- ### POST /tokenlink/v1/products Source: https://developer.oderopay.com.tr/tr/api/pay-by-link/create Yeni bir ödeme linki oluşturmak için kullanılır. Bu endpoint, ürün detaylarını alarak benzersiz bir ödeme linki ve QR kod URL'si oluşturur. ```APIDOC ## POST /tokenlink/v1/products ### Description Bu endpoint, yeni bir ödeme linki oluşturmak için kullanılır. Ürün adı, açıklaması, fiyatı, stok bilgisi, geçerlilik süresi ve taksit seçenekleri gibi parametreler alabilir. ### Method POST ### Endpoint /tokenlink/v1/products ### Parameters #### Request Body - **name** (string) - Required - Link'e verilen isim - **description** (string) - Optional - Link'e ait detaylı açıklama. Ödeme sayfasında kullanıcıyı bilgilendirmek için kullanabilirsiniz. - **price** (decimal) - Optional - Link üzerinden alınacak ödemenin fiyatı. Gönderilmediği taktirde ödeme formunda kullanıcı fiyat girebilir. - **stock** (number) - Optional - Eğer stoklu bir ürün satıyorsanız, stok adedini gönderebilirsiniz. - **expireDate** (date) - Optional - Link'e belirli bir tarihten sonra geçersiz kılmak istiyorsanız link'e ait geçerlilik süresini gönderebilirsiniz. - **enabledInstallments** (string) - Optional - Sadece belirlediğiniz taksitler ile ödeme almak istiyorsanız bu alanı kullanabilirsiniz. Örnek; `1,2,3,6` ### Request Example ```json { "name": "Örnek Ürün", "description": "Bu ürün için özel bir ödeme linki.", "price": 100.50, "stock": 50, "expireDate": "2024-12-31", "enabledInstallments": "1,2,3,6" } ``` ### Response #### Success Response (200) - **id** (long) - Link ID değeri - **status** (Status) - Link durumunu gösteren değerdir. Aktif linkler için `ACTIVE`, pasif durumundakiler için `PASSIVE` döner. Link oluşturma işlemi sonrası oluşturulan link her zaman `ACTIVE` durumundadır. - **token** (string) - Link'e verilen, 4 karekterden oluşan eşsiz bir anahtardır. - **url** (string) - Link'e url bilgisidir. Bu link'i paylaşabilir, kullanıcılarınızdan ödeme alabilirsiniz. - **qrCodeUrl** (string) - Link'e QR kod linkidir. QR kodu okutarak ödeme linkine gidebilirsiniz. #### Response Example ```json { "id": 123456789, "status": "ACTIVE", "token": "ABCD", "url": "https://oderopay.tr/pay/ABCD", "qrCodeUrl": "https://oderopay.tr/qr/ABCD" } ``` ``` -------------------------------- ### POST /onboarding/v1/buyers Source: https://developer.oderopay.com.tr/tr/api/entities/buyer/create Endpoint and HTTP method for creating a buyer. This allows you to register new buyer accounts with their necessary details. ```APIDOC ## POST /onboarding/v1/buyers ### Description Creates a new buyer account with the provided details. ### Method POST ### Endpoint /onboarding/v1/buyers ### Parameters #### Request Body - **email** (string) - Required - Email address of the buyer. - **name** (string) - Required - First name of the buyer. - **surname** (string) - Required - Last name of the buyer. - **gsmNumber** (string) - Required - Phone number of the buyer. - **identityNumber** (string) - Required - Identity number of the buyer. - **buyerExternalId** (string) - Required - External ID of the buyer. ### Response #### Success Response (200) - **id** (long) - Required - The unique ID of the created buyer. - **status** (Status) - Required - The status of the buyer. Will be 'ACTIVE' upon creation. #### Response Example ```json { "data": { "id": 1234567890, "status": "ACTIVE" } } ``` ``` -------------------------------- ### POST /payment/v1/checkout-payments/init Source: https://developer.oderopay.com.tr/tr/api/checkout Ortak ödeme sayfası üzerinden ödeme başlatmak için kullanılır. Bu isteğin sonucunda bir ödeme token'i ve ödeme sayfasının URL'si döner. ```APIDOC ## POST /payment/v1/checkout-payments/init ### Description Ortak ödeme sayfası üzerinden ödeme başlatmak için kullanılır. Bu isteğin sonucunda bir ödeme token'i ve ödeme sayfasının URL'si döner. Ödeme formunu iframe ile göstermek için `pageUrl`'e `iframe=True` parametresi eklenebilir. ### Method POST ### Endpoint `/payment/v1/checkout-payments/init` ### Parameters #### Query Parameters - **iframe** (boolean) - Optional - Sayfanın iframe olarak gösterilmesi için kullanılır. #### Request Body - **conversationId** (string) - Optional - İstekle beraber gönderilip cevapla birlikte alınabilen, farklı istekleri ilişkilendirmek için kullanılan bir değer. - **price** (decimal) - Required - Toplam ödeme tutarı. - **paidPrice** (decimal) - Required - Komisyon ve indirimler dahil edilerek hesaplanan, müşterinin ödeyeceği toplam tahsilat tutarı. - **walletPrice** (decimal) - Optional - Alıcının cüzdanından tahsil edilecek tutar. Varsayılan: 0. - **buyerId** (long) - Optional - Ödemenin ilişkilendirildiği alıcı ID'si (ÖderoPay sistemlerindeki). - **cardUserKey** (string) - Optional - Saklı Kart Bilgileri için kullanılır. - **currency** (Currency) - Required - Para Birimi. - **paymentGroup** (PaymentGroup) - Required - Ödeme Grubu. - **callbackUrl** (string) - Required - 3D Secure ile yapılan ödemelerde bankadan dönen sonucu üye işyerine iletmek için kullanılacak adres. - **items** (PaymentItem[]) - Required - Ödemeye ilişkin kırılım bilgileri. En az bir kırılım gönderilmeli ve toplamı `price` alanına eşit olmalıdır. - **plan** (PaymentPlan) - Optional - Tekrarlı ödemelerde (SUBSCRIPTION) zorunludur. ### Request Example ```json { "conversationId": "12345", "price": 100.50, "paidPrice": 100.50, "currency": "TRY", "paymentGroup": "PRODUCT", "callbackUrl": "https://example.com/callback", "items": [ { "id": "item1", "name": "Ürün 1", "price": 50.25, "quantity": 1 }, { "id": "item2", "name": "Ürün 2", "price": 50.25, "quantity": 1 } ] } ``` ### Response #### Success Response (200) - **token** (string) - Ortak ödeme sayfası ve ödeme işlemi için oluşturulan unique uuid4 değeri. - **pageUrl** (string) - Kullanıcının gitmesi gereken sayfa adresini barındırır. - **tokenExpireDate** (localDateTime) - Ödeme sayfası tokeninin sona erme zamanı. #### Response Example ```json { "data": { "token": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "pageUrl": "https://odeme.oderopay.tr/checkout?token=a1b2c3d4-e5f6-7890-1234-567890abcdef", "tokenExpireDate": "2023-10-27T10:00:00Z" }, "status": "success" } ``` ``` -------------------------------- ### GET /payment/v1/subscription Source: https://developer.oderopay.com.tr/tr/api/subscriptions/retrieve Retrieves a list of subscriptions with pagination. ```APIDOC ## GET /payment/v1/subscription ### Description Retrieves a list of subscriptions with pagination. ### Method GET ### Endpoint /payment/v1/subscription ### Parameters #### Query Parameters - **limit** (string) - Optional - The number of subscriptions to return per page. - **pageNumber** (string) - Optional - The page number for the subscription query. #### Headers - **merchantId** (string) - Required - The merchant ID. ### Request Example ``` GET /payment/v1/subscription?pageNumber=1&limit=10 Headers: merchantId: YOUR_MERCHANT_ID ``` ### Response #### Success Response (200) - **id** (long) - Subscription ID value. - **merchantId** (long) - Merchant ID value. - **cardUserKey** (string) - The card user key of the recipient. - **cardToken** (string) - The card token of the recipient. - **price** (string) - The total subscription price. - **periodType** (string) - The subscription period. - **description** (string) - The subscription description. - **nochargeDayCount** (string) - The trial period duration. - **nextPaymentDate** (string) - The subscription renewal date. - **status** (string) - The subscription status value. - **version** (string) - The version. - **retryCount** (long) - The number of payment retries. - **retryDate** (string) - The retry payment date. #### Response Example ```json { "data": [ { "id": 12345, "merchantId": 67890, "cardUserKey": "userkey123", "cardToken": "token456", "price": "100.00", "periodType": "MONTHLY", "description": "Monthly Subscription", "nochargeDayCount": "7", "nextPaymentDate": "2024-12-31", "status": "ACTIVE", "version": "1.0", "retryCount": 0, "retryDate": null } ] } ``` ``` -------------------------------- ### POST /payment/v1/card-payments/3ds-init - Ön Provizyon (3D Secure) Source: https://developer.oderopay.com.tr/tr/api/payments/pre-auth-payments 3D Secure ile ön provizyon başlatmak için kullanılan endpoint'tir. Normal 3D Secure akışları için de geçerlidir. Son kullanıcı OTP kodu ile doğruladığında 3D Secure olarak 'PRE_AUTH' tamamlanmış olacaktır. ```APIDOC ## POST /payment/v1/card-payments/3ds-init ### Description 3D Secure ile ön provizyon işlemi, normal 3D Secure akışları için de geçerlidir. Son kullanıcı kendisine gelen OTP kodu ile doğruladığında 3D Secure olarak `PRE_AUTH` tamamlanmış olacaktır. 3D Secure `PRE_AUTH` bir işlem, önce 3D Complete servisine gelerek tamamlanmalı ve sonrasında provizyon kapama servisi kullanılmalıdır. ### Method POST ### Endpoint /payment/v1/card-payments/3ds-init ### Parameters #### Request Body - **paymentPhase** (string) - Required - Ön provizyon oluşturmak için 'PRE_AUTH' olarak ayarlanmalıdır. *Diğer parametreler normal 3D Secure ödeme isteğindeki tüm parametreler ön provizyon için de geçerlidir. Detaylar için 'Ödeme alma' servisine bakınız.* ### Request Example ```json { "paymentPhase": "PRE_AUTH", "transactionId": "3DS12345", "amount": 150.00, "currency": "TRY", "card": { "cardNumber": "1111222233334444", "expiryMonth": "11", "expiryYear": "2026", "cvc": "456" }, "threeDSecure": { "returnUrl": "https://example.com/callback" } } ``` ### Response #### Success Response (200) *Normal ödeme isteğindeki cevap ile aynıdır. Detaylar için 'Ödeme alma' servisine bakınız.* #### Response Example ```json { "status": "SUCCESS", "transactionId": "3DS12345", "preAuthId": "PA9876543210", "redirectUrl": "https://3ds.example.com/authenticate?token=..." } ``` ``` -------------------------------- ### GET /payment/v1/subscription/:status Source: https://developer.oderopay.com.tr/tr/api/subscriptions/retrieve Retrieves subscriptions filtered by their status. ```APIDOC ## GET /payment/v1/subscription/:status ### Description Retrieves subscriptions filtered by their status. ### Method GET ### Endpoint /payment/v1/subscription/:status ### Parameters #### Path Parameters - **status** (string) - Required - The subscription status to filter by (e.g., `/ACTIVE`, `/PASSIVE`). #### Query Parameters - **limit** (string) - Optional - The number of subscriptions to return per page. - **pageNumber** (string) - Optional - The page number for the subscription query. #### Headers - **merchantId** (string) - Required - The merchant ID. ### Request Example ``` GET /payment/v1/subscription/ACTIVE?pageNumber=1&limit=10 Headers: merchantId: YOUR_MERCHANT_ID ``` ### Response #### Success Response (200) - **id** (long) - Subscription ID value. - **merchantId** (long) - Merchant ID value. - **cardUserKey** (string) - The card user key of the recipient. - **cardToken** (string) - The card token of the recipient. - **price** (string) - The total subscription price. - **periodType** (string) - The subscription period. - **description** (string) - The subscription description. - **nochargeDayCount** (string) - The trial period duration. - **nextPaymentDate** (string) - The subscription renewal date. - **status** (string) - The subscription status value. - **version** (string) - The version. - **retryCount** (long) - The number of payment retries. - **retryDate** (string) - The retry payment date. #### Response Example ```json { "data": [ { "id": 12345, "merchantId": 67890, "cardUserKey": "userkey123", "cardToken": "token456", "price": "100.00", "periodType": "MONTHLY", "description": "Monthly Subscription", "nochargeDayCount": "7", "nextPaymentDate": "2024-12-31", "status": "ACTIVE", "version": "1.0", "retryCount": 0, "retryDate": null } ] } ``` ``` -------------------------------- ### POST /payment/v1/card-payments/3ds-init Source: https://developer.oderopay.com.tr/tr/api/payments/3d-payments Initiates a 3D Secure payment. This endpoint requires a callback URL to notify the merchant of the payment's success status. ```APIDOC ## POST /payment/v1/card-payments/3ds-init ### Description Initiates a 3D Secure payment. This endpoint requires a callback URL to notify the merchant of the payment's success status. The process involves three steps: initiation, verification, and completion. ### Method POST ### Endpoint /payment/v1/card-payments/3ds-init ### Parameters #### Query Parameters #### Path Parameters #### Request Body - **conversationId** (string) - Optional - A "boomerang" value that can be sent with the request and received with the response. It can be used to correlate different requests, often using the merchant's order number. - **price** (decimal) - Required - The total payment amount. The sum of product/service prices in the cart must equal this amount. - **paidPrice** (decimal) - Required - The total collection amount to be paid by the customer, calculated including commissions and discounts. If the payment is partially or fully collected from the wallet, the amount to be collected from the wallet is included in this amount. - **walletPrice** (decimal) - Optional - The amount to be collected from the customer's wallet specified by the `buyerId` parameter. It must be sent for payments that are partially or fully collected from the wallet. It can be sent as `0` for payments collected entirely from the card or when no `buyerId` is present. (Default: `0`) - **installment** (integer) - Required - The number of installments for the payment collection. Can be sent as `1` for single payment. Accepted values are `1`, `2`, `3`, `6`, `9`, and `12`. - **buyerId** (long) - Optional - The buyer ID associated with the payment. This refers to the ID value in ÖderoPay systems, not the merchant's own system ID. - **currency** (Currency) - Required - Refer to Currency Types. The currency in which the payment will be collected. - **paymentGroup** (PaymentGroup) - Required - Refer to Payment Groups. - **callbackUrl** (string) - Required* - The URL to which the bank's result will be sent to the merchant in 3D Secure payments. (See: Receiving Payments with 3D Secure) - **card** (Card) - Optional - (See: Card Information) Card information for payment collection. Not mandatory for payments collected entirely from the wallet (i.e., payments where `paidPrice` equals `walletPrice`). - **posAlias** (string) - Optional - Used for TOKENGATE payments; if filled, the payment will be made using this POS. See: Gateway Payments. - **items** (PaymentItem[]) - Required - (See: Payment Breakdown Information) Breakdown information for the payment. It is mandatory to send at least one breakdown, and the sum of the amounts of the sent breakdowns must equal the `price` field. ### Request Example ```json { "conversationId": "123456789", "price": 100.50, "paidPrice": 100.50, "walletPrice": 0, "installment": 1, "currency": "TRY", "paymentGroup": "PRODUCT", "callbackUrl": "https://merchant.com/callback", "items": [ { "name": "Product A", "price": 50.25, "paidPrice": 50.25, "walletPrice": 0, "installment": 1, "buyerId": null, "currency": "TRY", "paymentGroup": "PRODUCT", "callbackUrl": null, "card": null, "posAlias": null, "items": null }, { "name": "Product B", "price": 50.25, "paidPrice": 50.25, "walletPrice": 0, "installment": 1, "buyerId": null, "currency": "TRY", "paymentGroup": "PRODUCT", "callbackUrl": null, "card": null, "posAlias": null, "items": null } ] } ``` ### Response #### Success Response (200) - **htmlContent** (string) - Required - The HTML content of the 3D Secure form to be displayed to the user. This value is sent Base64-encoded and must be Base64 decoded by the merchant before display. #### Response Example ```json { "status": "success", "data": { "htmlContent": "PGh0bWw+PGJvZHk+VGVzdCBIVE1MICP4PC9ib2R5Pj/Pj/88L2h0bWw+" } } ``` ``` -------------------------------- ### Ödeme Kırılımı Para Gönderim Dağılımı Source: https://developer.oderopay.com.tr/tr/api/checkout Ödemeye ilişkin olarak yapılacak para gönderiminin, bir kırılım özelindeki payının üye işyeri, alt üye işyeri ve ÖderoPay arasındaki dağılımını içerir. Para dağıtımının para birimi her zaman TRY'dir. ```APIDOC ## GET /websites/developer_oderopay_tr_tr/payment_distribution ### Description Bu endpoint, ödeme kırılımı için para gönderiminin üye işyeri, alt üye işyeri ve ÖderoPay arasındaki dağılımını görüntüler. ### Method GET ### Endpoint /websites/developer_oderopay_tr_tr/payment_distribution ### Query Parameters N/A ### Request Body N/A ### Request Example N/A ### Response #### Success Response (200) - **paidPrice** (decimal) - Ödeme için tahsil edilen toplam tutarın, ilgili kırılıma düşen payı. - **currency** (Currency) - Ödeme para birimi. - **merchantPayoutAmount** (decimal) - Üye işyerine gönderilecek paranın TL cinsinden payı. - **subMerchantPayoutAmount** (decimal) - Alt üye işyerine gönderilecek paranın TL cinsinden payı. - **pfCommissionRateAmount** (decimal) - Ödemeye ilişkin alt üye işyerine gönderilecek olan paranın TL cinsinden değerinin, ilgili kırılıma düşen payı. - **pfConversionRate** (decimal) - TRY'den farklı bir para birimiyle yapılan ödemelerde ÖderoPay'in baz aldığı kur farkı oranı. TRY ödemelerde 0'dır. - **pfConversionRateAmount** (decimal) - TRY'den farklı bir para birimiyle yapılan ödemelerde ÖderoPay'in aldığı kur farkı. TRY ödemelerde 0'dır. #### Response Example { "paidPrice": 100.00, "currency": "TRY", "merchantPayoutAmount": 80.00, "subMerchantPayoutAmount": 15.00, "pfCommissionRateAmount": 5.00, "pfConversionRate": 0.00, "pfConversionRateAmount": 0.00 } ``` -------------------------------- ### GET /payment/v1/subscription/retrieve-subscription-id/:subscriptionId Source: https://developer.oderopay.com.tr/tr/api/subscriptions/retrieve Retrieves a specific subscription using its ID. ```APIDOC ## GET /payment/v1/subscription/retrieve-subscription-id/:subscriptionId ### Description Retrieves a specific subscription using its ID. ### Method GET ### Endpoint /payment/v1/subscription/retrieve-subscription-id/:subscriptionId ### Parameters #### Path Parameters - **subscriptionId** (string) - Required - The ID of the subscription to retrieve. #### Headers - **merchantId** (string) - Required - The merchant ID. ### Request Example ``` GET /payment/v1/subscription/retrieve-subscription-id/1 Headers: merchantId: YOUR_MERCHANT_ID ``` ### Response #### Success Response (200) - **id** (long) - Subscription ID value. - **merchantId** (long) - Merchant ID value. - **cardUserKey** (string) - The card user key of the recipient. - **cardToken** (string) - The card token of the recipient. - **price** (string) - The total subscription price. - **periodType** (string) - The subscription period. - **description** (string) - The subscription description. - **nochargeDayCount** (string) - The trial period duration. - **nextPaymentDate** (string) - The subscription renewal date. - **status** (string) - The subscription status value. - **version** (string) - The version. - **retryCount** (long) - The number of payment retries. - **retryDate** (string) - The retry payment date. #### Response Example ```json { "data": { "id": 1, "merchantId": 67890, "cardUserKey": "userkey123", "cardToken": "token456", "price": "100.00", "periodType": "MONTHLY", "description": "Monthly Subscription", "nochargeDayCount": "7", "nextPaymentDate": "2024-12-31", "status": "ACTIVE", "version": "1.0", "retryCount": 0, "retryDate": null } } ``` ```