> For the complete documentation index, see [llms.txt](https://docs.morpara.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.morpara.com/api-dokumantasyonu/entegrasyon/embeddedpaymentform.md).

# Gömülü Ödeme Formu

MorPOS **Gömülü Ödeme  Formu (Embedded Payment Form) ile** kart bilgileri MorPOS'un güvenli arayüzü üzerinden alınır.

***

### Endpoint

```http
POST /v1/EmbeddedPayment/CreatePaymentForm
```

***

### Headers

| Anahtar        | Tür    | Açıklama                                 | Örnek                   |
| -------------- | ------ | ---------------------------------------- | ----------------------- |
| x-ClientID     | String | API istemcisi için benzersiz tanımlayıcı | sizin-istemci-id’niz    |
| x-ClientSecret | String | API istemcisi için gizli anahtar         | sizin-gizli-anahtarınız |
| x-GrantType    | String | Kullanılan erişim token türü             | client\_credentials     |
| x-Scope        | String | API kapsamı                              | pf\_write, pf\_read     |
| x-Timestamp    | String | İstek zaman damgası (ISO 8601)           | 2024-12-17T12:34:56Z    |

***

### Request Body

| Alan                                | Zorunlu | Tür     | Açıklama                                | Örnek                          |
| ----------------------------------- | ------- | ------- | --------------------------------------- | ------------------------------ |
| merchantId                          | ✅       | String  | Üye işyeri için benzersiz kimlik        | 100000000000004                |
| returnUrl                           | ✅       | URL     | Başarılı işlem sonrası yönlendirme URL  | <https://www.ornek.com/basari> |
| failUrl                             | ✅       | URL     | Başarısız işlem sonrası yönlendirme URL | <https://www.ornek.com/hata>   |
| paymentMethod                       | ✅       | String  | Ödeme yöntemi                           | EMBEDDEDPAYMENT                |
| paymentInstrumentType               | ✅       | String  | Ödeme aracı türü                        | CARD                           |
| language                            | ✅       | String  | İşlem dili                              | en                             |
| conversationId                      | ✅       | String  | Takip için benzersiz kimlik             | MP20240305001                  |
| sign                                | ✅       | String  | İsteğin dijital imzası                  | ABC123...                      |
| transactionDetails.transactionType  | ✅       | String  | İşlem türü                              | SALE                           |
| transactionDetails.installmentCount | ✅       | Integer | Taksit sayısı (0 = tek çekim)           | 0                              |
| transactionDetails.amount           | ✅       | Decimal | İşlem tutarı                            | 1.00                           |
| transactionDetails.currencyCode     | ✅       | Integer | Para birimi kodu (TRY = 949)            | 949                            |
| transactionDetails.vftFlag          | ❌       | Boolean | VFT kullanım durumu                     | false                          |
| extraParameter.pFSubMerchantId      | ❌       | String  | Alt üye işyeri kimliği                  | 12345                          |

***

### Örnek Request

```json
{
  "merchantId": "100000000000004",
  "returnUrl": "https://www.ornek.com/basari",
  "failUrl": "https://www.ornek.com/hata",
  "paymentMethod": "EMBEDDEDPAYMENT",
  "paymentInstrumentType": "CARD",
  "language": "en",
  "conversationId": "MSD2024030500000000115",
  "sign": "AAVWY3RZKJVVCEAD8LDQB4KWJL4QX/IQQRGQ3XIWAAG=",
  "transactionDetails": {
    "transactionType": "SALE",
    "installmentCount": 0,
    "amount": "1.00",
    "currencyCode": "949",
    "vftFlag": false
  },
  "extraParameter": {
    "pFSubMerchantId": "12345"
  }
}
```

### Örnek Response

```json
{
    "code": "B0000",
    "message": "SUCCESS",
    "conversationId": "MSD28729399188493475",
    "paymentFormContent": "                    <div id='finagopay-container'>jscode</div>                    <script  src='https://finagopay-pf-ui-merchant.prp.morpara.com/embedded/finagopayPayment.js'></script>                       <script>                                                let isPaymentStarted = false;                        const paymentDateTime = new Date('2026-01-27 10:28:40');                         const now = new Date();                        const timePassed = paymentDateTime -now;                        const expireTime = Math.max(0, timePassed);                        function postRedirect(url, dataObj) {                            let form = document.createElement('form');                            form.method = 'POST';                            form.action = url;                            for (const key in dataObj) {                                if (dataObj.hasOwnProperty(key)) {                                    let input = document.createElement('input');                                    input.type = 'hidden';                                    input.name = key;                                    input.value = dataObj[key];                                    form.appendChild(input);                                }                            }                            document.body.appendChild(form);                            form.submit();                        }                        let finagopayPayment = new FinagopayPayment({                            container: '#finagopay-container',                    baseUrl:'https://finagopay-pf-api-gateway.prp.morpara.com/v1/EmbeddedPayment',                            clientSecret:'MjEyYTFmYzA4NTVhMWNiNDA1YzllNjM3Mzk3NDBjNzVmYjZmMDJlODI5NWU1ZmQ4ZTZhMmY1ZTA5NGFhYjZiYw==',                            clientId:'cx+eQAPE6JJAaJrGDDl2',                            timestamp:'20260127101840',                            merchantId:'5000000017',                            amount:'1.00',                            conversationId:'YBS28729399188493475',                            language:'en',                            onSuccess: function(payload) {                                                                isPaymentStarted = true;                                let request = {                                    RequestData: 'usZND1SEut9/Il3R2FwU/cIhDzw3NZpFfLEjfymUUj/qEnxBt0PqJk7WJmWrLT9u9GLpCnRQAzcMbPFIUu+ZM4fE9ngZxxrzp36C1tfo98plQux5NjjyV58uOIg02jeBDSxSD4borOvyanfV0+LhTy2lbhvJgVGJCVsOOw7GE+g4sWQZshwQ9piSjAgUu/zZUHkP/rHWSMP08C9XAtrgmdzrkayOZLyxI7mg3REHQlVI6Zjocz4pMbwVuduSUprt8VfvCxu8rZWeDEeG6DOga8+fUkGQL8RTVFSVgGUNwrXlApAQwtaNMteYef/0Kd7QMb0c2y+rqT9yUmQePJvQuZNXPRKXEGcMtKC/0XtSXM2D4Es4X9uTRGNP3MWDpNG502yI25mIkjcfI2UDOO2iVPZPWFnN5F0BuQSWfCV49eBTGemkrOmSLN/C3ubyLrvkAvB1WokeTi/h9cTuQnluPsVazXw7z8kWM6lyl6/kGTq+l5Ai+FgrCOIdNJABt7bs9ctD9CtUChiuLpBKIOsHT01QQ55/Uz5xgnMwqOM1uCne71BLrp1+Pc6+Xa6+y/F+7A4yEBlD1kKV98ro3e3T4MqiVL9KiTIhH1GWeGKUZ4Obeela6Wz6JNiVEHuJqW1suPXoNvQ5kp7ylmwztRZC080nffntk7w7CT+BdBv7an/IkmYyGvIkcsye38qmHi/jsKyUNrc40PGvg0uoz00+BA==æe6yK94u/Z3ye4r2frkolqQ==',                                    PaymentPageTransactionGuid:'vJGv1A+C9HJ1F6EAGdp2mEd8ltt0U7+VM565KqQptB4=æUm3LGMAvV21tZ1ySvXzjfQ==',                                    CardToken: payload.token                                };                                fetch('https://finagopay-pf-api-gateway.prp.morpara.com/v1/EmbeddedPayment/processPayment', {                                    method: 'POST',                                    headers: {                                        'Content-Type': 'application/json',                                        'X-ClientSecret': 'MjEyYTFmYzA4NTVhMWNiNDA1YzllNjM3Mzk3NDBjNzVmYjZmMDJlODI5NWU1ZmQ4ZTZhMmY1ZTA5NGFhYjZiYw==' ,                                        'X-ClientId': 'cx+eQAPE6JJAaJrGDDl2' ,                                        'X-GrantType': 'client_credentials' ,                                        'X-Scope': 'pf_write pf_read',                                         'X-Timestamp': '20260127101840',                                     },                                    body: JSON.stringify(request)                                })                               .then(response => response.json())                               .then(data => {                                    if (data.use3d)                                        {                                        if (data.htmlForm) {                                            const decodedHtmlContent = atob(data.htmlForm);                                            document.open();                                            document.write(decodedHtmlContent);                                            document.close();                                         }                                         else {                                                postRedirect(data.failUrl, {Code: 'R0099',Message: '3D Secure doğrulama için gerekli HTML içeriği alınamadı'});                                             }                                        }                                    else                                        {                                            let targetUrl = (data.code === 'B0000') ? data.returnUrl : data.failUrl;                                            postRedirect(targetUrl, data);                                        }                                                                 })                               .catch(error => {                                         postRedirect('{baseUrl}/fail-response', { error: error.message || 'Bilinmeyen hata'});                                });                            }                        });                     setTimeout(() => {                           if (!isPaymentStarted) {                                const container = document.querySelector('#finagopay-container');                                if (container) {                                    container.innerHTML = '<p>Ödeme süresi sona erdi. Lütfen tekrar deneyin.</p>';                                }                            }                        }, expireTime);                                       </script>",
    "paymentFormExpireTime": "2026-01-27T10:28:40.4442155+03:00",
    "returnUrl": "https://www.ornek.com/basari",
    "failUrl": "https://www.ornek.com/basarisiz"
}
```

***

### İşleyiş Notları

* Kart bilgileri **merchant sistemine iletilmez**
* Kart verileri ödeme sağlayıcının **gömülü (embedded) ödeme arayüzü** üzerinden toplanır
* PCI-DSS kapsamı önemli ölçüde azaltılır
* İşlem sonucuna göre kullanıcı `returnUrl` veya `failUrl` adresine yönlendirilir
