POST
/
billing_templates
/
{id}
/
add_subscriber
curl --request POST \
  --url https://gate.chip-in.asia/api/v1/billing_templates/{id}/add_subscriber/ \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "client_id": "b79d3df6-2f69-4426-acee-eda049d83e18"
}'
{
  "billing_template_client": {
    "type": "<string>",
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "created_on": 1619740800,
    "updated_on": 1619740800,
    "client_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "status": "inactive",
    "subscription_billing_scheduled_on": "2020-04-30",
    "payment_method_whitelist": [
      "<string>"
    ],
    "send_invoice_on_charge_failure": true,
    "send_invoice_on_add_subscriber": false,
    "send_receipt": true
  },
  "purchase": {
    "type": "<string>",
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "created_on": 1619740800,
    "updated_on": 1619740800,
    "client": {
      "bank_account": "<string>",
      "bank_code": "<string>",
      "email": "jsmith@example.com",
      "phone": "+44 45643564564",
      "full_name": "<string>",
      "personal_code": "<string>",
      "street_address": "<string>",
      "country": "<string>",
      "city": "<string>",
      "zip_code": "<string>",
      "state": "<string>",
      "shipping_street_address": "<string>",
      "shipping_country": "<string>",
      "shipping_city": "<string>",
      "shipping_zip_code": "<string>",
      "shipping_state": "<string>",
      "cc": [
        "jsmith@example.com"
      ],
      "bcc": [
        "jsmith@example.com"
      ],
      "legal_name": "<string>",
      "brand_name": "<string>",
      "registration_number": "<string>",
      "tax_number": "<string>"
    },
    "purchase": {
      "currency": "<string>",
      "products": [
        {
          "name": "<string>",
          "quantity": 1,
          "price": 1,
          "discount": 1,
          "tax_percent": 0,
          "category": "<string>"
        }
      ],
      "total": 123,
      "language": "Default value is controlled in Company -> Brand section of merchant portal separately per each Brand used (default value, if no changes are made, is `en`). Brand to be used with corresponding Purchase/BillingTemplate specified using brand_id.",
      "notes": "<string>",
      "debt": 123,
      "subtotal_override": 123,
      "total_tax_override": 123,
      "total_discount_override": 123,
      "total_override": 123,
      "request_client_details": [],
      "timezone": "Europe/Oslo",
      "due_strict": false,
      "email_message": "<string>"
    },
    "payment": {
      "is_outgoing": false,
      "payment_type": "purchase",
      "amount": 123,
      "currency": "<string>",
      "net_amount": 123,
      "fee_amount": 123,
      "pending_amount": 123,
      "pending_unfreeze_on": 1619740800,
      "description": "<string>",
      "paid_on": 1619740800,
      "remote_paid_on": 1619740800
    },
    "issuer_details": {
      "website": "<string>",
      "legal_street_address": "<string>",
      "legal_country": "<string>",
      "legal_city": "<string>",
      "legal_zip_code": "<string>",
      "bank_accounts": [
        {
          "bank_account": "<string>",
          "bank_code": "<string>"
        }
      ],
      "legal_name": "<string>",
      "brand_name": "<string>",
      "registration_number": "<string>",
      "tax_number": "<string>"
    },
    "transaction_data": {
      "payment_method": "<string>",
      "extra": {},
      "country": "<string>",
      "attempts": [
        {
          "type": "execute",
          "successful": true,
          "payment_method": "<string>",
          "extra": {},
          "country": "<string>",
          "client_ip": "<string>",
          "processing_time": 1619740800,
          "error": {
            "code": "<string>",
            "message": "<string>"
          }
        }
      ]
    },
    "status": "created",
    "status_history": [
      {
        "status": "created",
        "timestamp": 1619740800,
        "related_object": {
          "type": "<string>",
          "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
        }
      }
    ],
    "viewed_on": 1619740800,
    "company_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "is_test": true,
    "user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "brand_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "billing_template_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "client_id": null,
    "send_receipt": false,
    "is_recurring_token": true,
    "recurring_token": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "skip_capture": false,
    "force_recurring": false,
    "reference_generated": "<string>",
    "reference": "<string>",
    "issued": "2020-04-30",
    "due": 1619740800,
    "refund_availability": "all",
    "refundable_amount": 123,
    "currency_conversion": {
      "original_currency": "<string>",
      "original_amount": 123,
      "exchange_rate": 123
    },
    "payment_method_whitelist": [
      "<string>"
    ],
    "success_redirect": "<string>",
    "failure_redirect": "<string>",
    "cancel_redirect": "<string>",
    "success_callback": "<string>",
    "creator_agent": "<string>",
    "platform": "web",
    "product": "purchases",
    "created_from_ip": "<string>",
    "invoice_url": "<string>",
    "checkout_url": "<string>",
    "direct_post_url": "<string>",
    "marked_as_paid": true,
    "order_id": "<string>"
  }
}

Use this request with a BillingTemplate having is_subscription == true. Two scenarios are possible:

• If subscription_charge_period_end == true and/or subscription_trial_periods > 0 (first billing should happen after 1 or more billing periods, not today), the request will create a BillingTemplateClient and start trial/schedule billing for it (as required by subscription settings). Successful response will be of form {billing_template_client: <BillingTemplateClient object created>, purchase: null}: no Purchase is created, BillingTemplateClient.status is active immediately.

• If subscription_charge_period_end == false and subscription_trial_periods == 0 (first billing should occur today), the request will create a BillingTemplateClient with status == pending and create a Purchase. When such a Purchase is paid, the respective BillingTemplateClient will have its’ subscription activated (starting from the day of payment), with its status changing to active. Successful response will be of form {billing_template_client: <BillingTemplateClient object created>, purchase: <Purchase object created>}: you should redirect your client to purchase.checkout_url for him to pay immediately (as you do with POST /purchases/).

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
string
required

Object ID (UUID)

Body

application/json

Connects a Client object to a BillingTemplate having is_subscription = true to store information about a single subscriber.

You will be able to pause an individual subscription client's cycle by PATCH-ing its' status field to the value of subscription_paused.

client_id
string
required

ID of the Client object to add to the BillingTemplate. Read-only after the BillingTemplateClient has been created. Note that the same Client can be added to a BillingTemplate several times.

status
enum<string>
default:inactive

For subscriptions, you can edit (PATCH /billing_templates/{id}/clients/{id}/) this status between active and subscription_paused values to pause the client's subscription. Paused subscriptions run as normal, except for purchases not being created and invoices sent for them. It means that if you pause a BillingTemplateClient's monthly subscription cycle a day before the billing date, the next day the invoice will not be issued; but, if you unpause the client a day after the planned billing would have taken place, the planned billing in a month (minus one day) will happen as usual.

Read-only if the BillingTemplateClient is in inactive (internal status not managed through public API) or pending (see documentation for POST /billing_templates/{id}/add_subscriber/) statuses.

Available options:
pending,
inactive,
active,
subscription_paused
payment_method_whitelist
string[]

An optional whitelist of payment methods availble for purchases generated for this BillingTemplateClient. Copied 1:1 to Purchase.payment_method_whitelist field on created Purchases (see its description).

Payment method name as returned by GET /payment_methods/.

send_invoice_on_charge_failure
boolean
default:true

Sends invoice when subscription charge fails if this is true

send_invoice_on_add_subscriber
boolean
default:false

Sends invoice when POST /billing_templates/{id}/add_subscriber/ is called if this is true

send_receipt
boolean
default:true

Sends receipt when subscription charge succeeds if this is true

Response

200
application/json
OK
billing_template_client
object

Connects a Client object to a BillingTemplate having is_subscription = true to store information about a single subscriber.

You will be able to pause an individual subscription client's cycle by PATCH-ing its' status field to the value of subscription_paused.

purchase
object

Nullable in POST /billing_templates/{id}/add_subscriber/ response.