# 2. Tekrarlı Düzenle

## Tekrarlı Ödeme Düzenle

<mark style="color:orange;">`PUT`</mark> `{{Base Adres}}/api/paywall/recurring`

{% hint style="info" %}
Önemli: **Tekrarlı Ödeme Düzenleme** servisini kullanabilmeniz için 'Header' alanında '**apikeypublic**' ve '**apiclientpublic**' parametrelerini göndermeniz gerekmektedir.\
\
[<mark style="color:green;">**PaymentAPI Adresi**</mark>](https://developer.paywall.one/ortam)
{% endhint %}

<table><thead><tr><th width="162">Parametre</th><th width="79">Tip</th><th width="107">Zorunlu</th><th width="403">Açıklama</th></tr></thead><tbody><tr><td>apikeypublic</td><td>string</td><td>Evet</td><td>Üye işyeri panelinden temin etmiş olduğunuz Public Key.</td></tr><tr><td>apiclientpublic</td><td>string</td><td>Evet</td><td>Üye işyeri panelinden temin etmiş olduğunuz Public Client.</td></tr></tbody></table>

#### Servise gönderilmesi gereken parametreler şu şekildedir :

<table><thead><tr><th width="296">Parametre</th><th width="112">Tip</th><th width="118">Zorunlu</th><th width="336">Açıklama</th></tr></thead><tbody><tr><td>SubscriptionMerchantCode</td><td>string</td><td>Evet</td><td>Tekrarlı ödemeye ait sizin tarafınızdan verilen tekil takip numarası.<br><br><mark style="color:blue;">Oluşturma esnasında kullandığınız ile aynı olmalıdır</mark></td></tr><tr><td>SubscriptionType</td><td>int</td><td>Evet</td><td>Üyelik tipi. Şimdilik sadece 1 desteklenmektedir<br><br><a href="../sistem-verileri"><mark style="color:red;">Sistem verilerinden takip edebilirsiniz</mark></a></td></tr><tr><td>CurrencyId</td><td>int</td><td>Evet</td><td>Para birimi</td></tr><tr><td>Amount</td><td>decimal</td><td>Evet</td><td>Tekrarlı ödeme tutarı. Her seferinde karttan çekilecek tutar</td></tr><tr><td>CallbackUrl</td><td>string</td><td>Evet</td><td>Ödeme sonuçlarının POST atılacak adres<br><br>bkz. <a href="../sistem-verileri/tekrarli-odeme"><strong>Post Body</strong></a></td></tr><tr><td>HasTrial</td><td>bool</td><td>Evet</td><td>Üyeliğe uygulanan bir deneme süresi var mı?</td></tr><tr><td>TrialDay</td><td>int</td><td>Evet</td><td>Üyeliğe uygulanan deneme süresinin günü. Ödeme aylık periyotta 02/07 'de oluşturulduysa ve 10 gün deneme süresi varsa ilk ödeme 12/08 'de alınıyor olacak.</td></tr><tr><td>RecurringPeriodType</td><td>int</td><td>Evet</td><td>Ödemenin tekrarlanacağı periyot tipi<br><br><a href="../sistem-verileri"><mark style="color:red;">Sistem verilerinden takip edebilirsiniz</mark></a></td></tr><tr><td>FailAttempt</td><td>int</td><td>Evet</td><td>Ödemenin başarısız olması durumunda tekrar deneme adedi. <mark style="color:red;">Max: 5</mark></td></tr><tr><td>FailAttemptPendingHour</td><td>int</td><td>Evet</td><td>Başarısız ödeme tekrarlarının arasında Paywall'un bekleyeceği saat dilimi. <mark style="color:red;">Max: 24</mark></td></tr><tr><td><strong>Items</strong>:Type</td><td>int</td><td>Evet</td><td>Ödemeye konu olan satışın tipi<br><br><a href="../sistem-verileri"><mark style="color:red;">Sistem verilerinden takip edebilirsiniz</mark></a></td></tr><tr><td><strong>Items</strong>:Name</td><td>string</td><td>Evet</td><td>Ödemeye konu olan satışın adı</td></tr><tr><td><strong>Items</strong>:Amount</td><td>decimal</td><td>Evet</td><td>Ödemeye konu olan satışın tutarı <br><br><mark style="color:red;">Items nesnesi bir array'dir ve girilen item'lerin Amount bilgisi toplam tutara eşit olmalıdır</mark></td></tr><tr><td>ApplyForPendingJob</td><td>bool</td><td>Hayır</td><td>Uygulanan değişiklik, bekleyen ödemelere de etki etsin mi? Örnek: 1000TL olan üyeliği 1500TL yaptığında alınması bekleyen 1000TL'lik işlem de güncellensin mi?</td></tr></tbody></table>

**Servise gönderilecek örnek&#x20;**<mark style="color:green;">**JSON**</mark>**&#x20;ve&#x20;**<mark style="color:green;">**örnek kodlar**</mark>**&#x20;aşağıdaki gibidir.**

{% tabs %}
{% tab title="JSON" %}
{% code lineNumbers="true" %}

```json5
{
    "SubscriptionMerchantCode": "65FSDOMBNA59DA5ASGHD",
    "SubscriptionType": 1,
    "CurrencyId": 2,
    "Amount": 12,
    "CallbackUrl": "https://webhook.site/8d70cb8e-fe1b-478b-8ee3-823870549ef2",
    "HasTrial": true,
    "TrialDay": 1,
    "RecurringPeriodType": 4,
    "FailAttempt": 1,
    "FailAttemptPendingHour": 2,
    // Items parametresi için bir değişiklik yoksa oluşturma
    // anında göndediğiniz ile aynı olmalıdır
    "Items": [
        {
            "Type": 1,
            "Name": "Gold Package",
            "Amount": 12
        }
    ],
    "ApplyForPendingJob": false
}
```

{% endcode %}
{% endtab %}

{% tab title="C#" %}

```csharp
// Soon
```

{% endtab %}

{% tab title="GO" %}

```go
// Soon
```

{% endtab %}

{% tab title="Java" %}

```java
// Soon
```

{% endtab %}

{% tab title="PHP" %}

```php
// Soon
```

{% endtab %}

{% tab title="Python" %}

```python
// Soon
```

{% endtab %}

{% tab title="Ruby" %}

```ruby
// Soon
```

{% endtab %}

{% tab title="TypeScript" %}

```typescript
// Soon
```

{% endtab %}

{% tab title="Curl" %}

```sh
// Soon
```

{% endtab %}
{% endtabs %}

Servisten dönen parametreler şu şekildedir:

<table><thead><tr><th width="189">Parametre</th><th width="100.33333333333331">Tip</th><th>Açıklama</th></tr></thead><tbody><tr><td>ErrorCode</td><td>int</td><td>Hata kodu. İşlem başarılı ise '0' değerini döner.</td></tr><tr><td>Result</td><td>bool</td><td>True ya da false değeri döner. İşlem başarılı iste 'true' değerini döner.</td></tr><tr><td>Message</td><td>string</td><td>İşlem hatalıysa, bu hataya dair belirtilen mesajdır</td></tr><tr><td>Body</td><td>nesne</td><td><em>Detay dönmemektedir</em></td></tr></tbody></table>

{% tabs %}
{% tab title="JSON" %}
{% code lineNumbers="true" %}

```json
{
    "ErrorCode": 0,
    "Result": true,
    "Message": "",
    "Body": null
}
```

{% endcode %}
{% endtab %}
{% endtabs %}
