1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-12-01 12:24:28 +01:00

improved tests and bug fixes

This commit is contained in:
Sylvain 2018-12-11 17:27:25 +01:00
parent ad69b647f7
commit f2eaf4e4e1
8 changed files with 1976 additions and 740 deletions

View File

@ -32,8 +32,12 @@ class API::SubscriptionsController < API::ApiController
free_days = params[:subscription][:free] || false free_days = params[:subscription][:free] || false
if Subscriptions::Subscribe.new(@subscription.user_id) res = Subscriptions::Subscribe.new(@subscription.user_id)
.extend_subscription(@subscription, subscription_update_params[:expired_at], free_days) .extend_subscription(@subscription, subscription_update_params[:expired_at], free_days)
if res.is_a?(Subscription)
@subscription = res
render status: :created
elsif res
render status: :ok render status: :ok
else else
render status: :unprocessable_entity render status: :unprocessable_entity

View File

@ -12,17 +12,17 @@ class Reservation < ActiveRecord::Base
has_many :tickets has_many :tickets
accepts_nested_attributes_for :tickets, allow_destroy: false accepts_nested_attributes_for :tickets, allow_destroy: false
has_one :invoice, -> {where(type: nil)}, as: :invoiced, dependent: :destroy has_one :invoice, -> { where(type: nil) }, as: :invoiced, dependent: :destroy
validates_presence_of :reservable_id, :reservable_type validates_presence_of :reservable_id, :reservable_type
validate :machine_not_already_reserved, if: -> { self.reservable.is_a?(Machine) } validate :machine_not_already_reserved, if: -> { reservable.is_a?(Machine) }
validate :training_not_fully_reserved, if: -> { self.reservable.is_a?(Training) } validate :training_not_fully_reserved, if: -> { reservable.is_a?(Training) }
attr_accessor :card_token, :plan_id, :subscription attr_accessor :card_token, :plan_id, :subscription
after_commit :notify_member_create_reservation, on: :create after_commit :notify_member_create_reservation, on: :create
after_commit :notify_admin_member_create_reservation, on: :create after_commit :notify_admin_member_create_reservation, on: :create
after_save :update_event_nb_free_places, if: Proc.new { |reservation| reservation.reservable_type == 'Event' } after_save :update_event_nb_free_places, if: proc { |reservation| reservation.reservable_type == 'Event' }
after_create :debit_user_wallet after_create :debit_user_wallet
## ##
@ -161,7 +161,7 @@ class Reservation < ActiveRecord::Base
ii_amount = index < users_credits_manager.free_hours_count ? 0 : base_amount ii_amount = index < users_credits_manager.free_hours_count ? 0 : base_amount
end end
ii_amount = 0 if slot.offered and on_site # if it's a local payment and slot is offered free ii_amount = 0 if slot.offered && on_site # if it's a local payment and slot is offered free
unless on_site # if it's local payment then do not create Stripe::InvoiceItem unless on_site # if it's local payment then do not create Stripe::InvoiceItem
ii = Stripe::InvoiceItem.create( ii = Stripe::InvoiceItem.create(
@ -188,33 +188,30 @@ class Reservation < ActiveRecord::Base
# === Coupon === # === Coupon ===
unless coupon_code.nil? unless coupon_code.nil?
@coupon = Coupon.find_by(code: coupon_code) @coupon = Coupon.find_by(code: coupon_code)
if not @coupon.nil? and @coupon.status(user.id) == 'active' raise InvalidCouponError if @coupon.nil? || @coupon.status(user.id) != 'active'
total = get_cart_total
discount = 0 total = get_cart_total
if @coupon.type == 'percent_off'
discount = (total * @coupon.percent_off / 100).to_i
elsif @coupon.type == 'amount_off'
discount = @coupon.amount_off
else
raise InvalidCouponError
end
unless on_site discount = if @coupon.type == 'percent_off'
invoice_items << Stripe::InvoiceItem.create( (total * @coupon.percent_off / 100).to_i
customer: user.stp_customer_id, elsif @coupon.type == 'amount_off'
amount: -discount, @coupon.amount_off
currency: Rails.application.secrets.stripe_currency, else
description: "coupon #{@coupon.code}" raise InvalidCouponError
) end
end
else unless on_site
raise InvalidCouponError invoice_items << Stripe::InvoiceItem.create(
customer: user.stp_customer_id,
amount: -discount,
currency: Rails.application.secrets.stripe_currency,
description: "coupon #{@coupon.code}"
)
end end
end end
@wallet_amount_debit = get_wallet_amount_debit @wallet_amount_debit = get_wallet_amount_debit
if @wallet_amount_debit != 0 and !on_site if @wallet_amount_debit != 0 && !on_site
invoice_items << Stripe::InvoiceItem.create( invoice_items << Stripe::InvoiceItem.create(
customer: user.stp_customer_id, customer: user.stp_customer_id,
amount: -@wallet_amount_debit.to_i, amount: -@wallet_amount_debit.to_i,

View File

@ -25,7 +25,7 @@ module Subscriptions
) )
if new_sub.save if new_sub.save
new_sub.user.generate_subscription_invoice new_sub.user.generate_subscription_invoice
return true return new_sub
end end
false false
end end

View File

@ -1,8 +1,8 @@
json.title notification.notification_type json.title notification.notification_type
json.description _t('.your_subscription_PLAN_has_been_extended_FREE_until_DATE_html', json.description _t('.your_subscription_PLAN_has_been_extended_FREE_until_DATE_html',
{ {
PLAN: notification.attached_object.plan.name, PLAN: notification.attached_object.plan.name,
FREE: notification.get_meta_data(:free_days).to_s, FREE: notification.get_meta_data(:free_days).to_s,
DATE: I18n.l(notification.attached_object.expired_at.to_date) DATE: I18n.l(notification.attached_object.expired_at.to_date)
}) # messageFormat }) # messageFormat
json.url notification_url(notification, format: :json) json.url notification_url(notification, format: :json)

View File

@ -12,14 +12,14 @@ module Credits
# First, we create a new credit # First, we create a new credit
post '/api/credits', post '/api/credits',
{ {
credit: { credit: {
creditable_id: 4, creditable_id: 4,
creditable_type: 'Training', creditable_type: 'Training',
plan_id: '1', plan_id: '1',
} }
}.to_json, }.to_json,
default_headers default_headers
# Check response format & status # Check response format & status
assert_equal 201, response.status, response.body assert_equal 201, response.status, response.body
@ -37,11 +37,11 @@ module Credits
test 'create a existing credit' do test 'create a existing credit' do
post '/api/credits', post '/api/credits',
{ {
credit: { credit: {
creditable_id: 4, creditable_id: 4,
creditable_type: 'Training', creditable_type: 'Training',
plan_id: '2', plan_id: '2'
} }
}.to_json, }.to_json,
default_headers default_headers

View File

@ -33,6 +33,11 @@ class Subscriptions::RenewAsAdminTest < ActionDispatch::IntegrationTest
assert_not_nil user.subscription.plan, "user's subscribed plan was not found" assert_not_nil user.subscription.plan, "user's subscribed plan was not found"
assert_equal plan.id, user.subscription.plan_id, "user's plan does not match" assert_equal plan.id, user.subscription.plan_id, "user's plan does not match"
# Check the expiration date
assert_equal (user.subscription.created_at + plan.interval_count.send(plan.interval)).iso8601,
subscription[:expired_at],
'subscription expiration date does not match'
# Check that the training credits were set correctly # Check that the training credits were set correctly
assert_empty user.training_credits, 'training credits were not reset' assert_empty user.training_credits, 'training credits were not reset'
assert_equal user.subscription.plan.training_credit_nb, plan.training_credit_nb, 'trainings credits were not allocated' assert_equal user.subscription.plan.training_credit_nb, plan.training_credit_nb, 'trainings credits were not allocated'
@ -60,7 +65,7 @@ class Subscriptions::RenewAsAdminTest < ActionDispatch::IntegrationTest
test 'admin successfully offer free days' do test 'admin successfully offer free days' do
user = User.find_by(username: 'pdurand') user = User.find_by(username: 'pdurand')
subscription = user.subscription subscription = user.subscription.clone
new_date = (1.month.from_now - 4.days).utc new_date = (1.month.from_now - 4.days).utc
VCR.use_cassette('subscriptions_admin_offer_free_days') do VCR.use_cassette('subscriptions_admin_offer_free_days') do
@ -90,6 +95,44 @@ class Subscriptions::RenewAsAdminTest < ActionDispatch::IntegrationTest
attached_object_id: subscription[:id] attached_object_id: subscription[:id]
) )
assert_not_nil notification, 'user notification was not created' assert_not_nil notification, 'user notification was not created'
assert_not_nil notification.get_meta_data(:free_days),
"notification didn't says to the user that her extent was for free"
assert_equal user.id, notification.receiver_id, 'wrong user notified'
end
test 'admin successfully extends a subscription' do
user = User.find_by(username: 'pdurand')
subscription = user.subscription.clone
new_date = (1.month.from_now - 4.days).utc
VCR.use_cassette('subscriptions_admin_extends_subscription') do
put "/api/subscriptions/#{subscription.id}",
{
subscription: {
expired_at: new_date.strftime('%Y-%m-%d %H:%M:%S.%9N Z')
}
}.to_json, default_headers
end
# Check response format & status
assert_equal 201, response.status, response.body
assert_equal Mime::JSON, response.content_type
# Check that the subscribed plan is still the same
res_subscription = json_response(response.body)
assert_equal subscription.plan_id, res_subscription[:plan_id], 'subscribed plan does not match'
# Check that the subscription is new
assert_not_equal subscription.id, res_subscription[:id], 'subscription id has not changed'
assert_dates_equal new_date, res_subscription[:expired_at], 'subscription end date does not match'
# Check notification was sent to the user
notification = Notification.find_by(
notification_type_id: NotificationType.find_by_name('notify_member_subscribed_plan'),
attached_object_type: 'Subscription',
attached_object_id: subscription[:id]
)
assert_not_nil notification, 'user notification was not created'
assert_equal user.id, notification.receiver_id, 'wrong user notified' assert_equal user.id, notification.receiver_id, 'wrong user notified'
end end

View File

@ -8,6 +8,7 @@ class Subscriptions::RenewAsUserTest < ActionDispatch::IntegrationTest
test 'user successfully renew a subscription after it has ended' do test 'user successfully renew a subscription after it has ended' do
plan = Plan.find_by(group_id: @user.group.id, type: 'Plan', base_name: 'Mensuel') plan = Plan.find_by(group_id: @user.group.id, type: 'Plan', base_name: 'Mensuel')
stripe_subscription = nil
VCR.use_cassette('subscriptions_user_renew_success', erb: true) do VCR.use_cassette('subscriptions_user_renew_success', erb: true) do
post '/api/subscriptions', post '/api/subscriptions',
@ -18,6 +19,7 @@ class Subscriptions::RenewAsUserTest < ActionDispatch::IntegrationTest
card_token: stripe_card_token card_token: stripe_card_token
} }
}.to_json, default_headers }.to_json, default_headers
stripe_subscription = Stripe::Customer.retrieve(@user.stp_customer_id).subscriptions.retrieve(@user.subscription.stp_subscription_id)
end end
# Check response format & status # Check response format & status
@ -30,8 +32,14 @@ class Subscriptions::RenewAsUserTest < ActionDispatch::IntegrationTest
# Check that the user has the correct subscription # Check that the user has the correct subscription
assert_not_nil @user.subscription, "user's subscription was not found" assert_not_nil @user.subscription, "user's subscription was not found"
# Check the expiration date
assert (@user.subscription.expired_at > DateTime.now), assert (@user.subscription.expired_at > DateTime.now),
"user's subscription expiration was not updated ... VCR cassettes may be outdated, please check the gitlab wiki" "user's subscription expiration was not updated ... VCR cassettes may be outdated, please check the gitlab wiki"
assert_equal @user.subscription.expired_at.iso8601,
Time.at(stripe_subscription.current_period_end).iso8601,
'subscription expiration date does not match'
assert_in_delta 5, assert_in_delta 5,
(DateTime.now.to_i - @user.subscription.updated_at.to_i), (DateTime.now.to_i - @user.subscription.updated_at.to_i),
10, 10,

View File

@ -33,7 +33,7 @@ http_interactions:
Server: Server:
- nginx - nginx
Date: Date:
- Tue, 11 Dec 2018 14:02:59 GMT - Tue, 11 Dec 2018 15:29:19 GMT
Content-Type: Content-Type:
- application/json - application/json
Content-Length: Content-Length:
@ -53,7 +53,7 @@ http_interactions:
Cache-Control: Cache-Control:
- no-cache, no-store - no-cache, no-store
Request-Id: Request-Id:
- req_oK8ExZLyURVh5j - req_wScFYeIB9A36LG
Stripe-Version: Stripe-Version:
- '2015-10-16' - '2015-10-16'
Strict-Transport-Security: Strict-Transport-Security:
@ -62,10 +62,10 @@ http_interactions:
encoding: UTF-8 encoding: UTF-8
string: | string: |
{ {
"id": "tok_1DgBp92sOmf47Nz9egeX4aXo", "id": "tok_1DgDAh2sOmf47Nz9zx73trkr",
"object": "token", "object": "token",
"card": { "card": {
"id": "card_1DgBp92sOmf47Nz9RNvlwx8S", "id": "card_1DgDAh2sOmf47Nz9jxDWEvnO",
"object": "card", "object": "card",
"address_city": null, "address_city": null,
"address_country": null, "address_country": null,
@ -90,13 +90,13 @@ http_interactions:
"tokenization_method": null "tokenization_method": null
}, },
"client_ip": "92.157.28.112", "client_ip": "92.157.28.112",
"created": 1544536979, "created": 1544542159,
"livemode": false, "livemode": false,
"type": "card", "type": "card",
"used": false "used": false
} }
http_version: http_version:
recorded_at: Tue, 11 Dec 2018 14:02:59 GMT recorded_at: Tue, 11 Dec 2018 15:29:19 GMT
- request: - request:
method: get method: get
uri: https://api.stripe.com/v1/customers/cus_8E2ys9zDZgetWX uri: https://api.stripe.com/v1/customers/cus_8E2ys9zDZgetWX
@ -128,11 +128,11 @@ http_interactions:
Server: Server:
- nginx - nginx
Date: Date:
- Tue, 11 Dec 2018 14:03:00 GMT - Tue, 11 Dec 2018 15:29:20 GMT
Content-Type: Content-Type:
- application/json - application/json
Content-Length: Content-Length:
- '10388' - '16310'
Connection: Connection:
- keep-alive - keep-alive
Access-Control-Allow-Credentials: Access-Control-Allow-Credentials:
@ -148,7 +148,7 @@ http_interactions:
Cache-Control: Cache-Control:
- no-cache, no-store - no-cache, no-store
Request-Id: Request-Id:
- req_oiiBCO0jNBQCNg - req_8EWmgCLlALNEkq
Stripe-Version: Stripe-Version:
- '2015-10-16' - '2015-10-16'
Strict-Transport-Security: Strict-Transport-Security:
@ -162,7 +162,7 @@ http_interactions:
"account_balance": 0, "account_balance": 0,
"created": 1460026822, "created": 1460026822,
"currency": "usd", "currency": "usd",
"default_source": "card_1Dfps22sOmf47Nz99LtrBTfC", "default_source": "card_1DgCTx2sOmf47Nz9rpH1o5DR",
"delinquent": false, "delinquent": false,
"description": "Lucile Seguin", "description": "Lucile Seguin",
"discount": null, "discount": null,
@ -176,7 +176,7 @@ http_interactions:
"object": "list", "object": "list",
"data": [ "data": [
{ {
"id": "card_1Dfps22sOmf47Nz99LtrBTfC", "id": "card_1DgCTx2sOmf47Nz9rpH1o5DR",
"object": "card", "object": "card",
"address_city": null, "address_city": null,
"address_country": null, "address_country": null,
@ -210,16 +210,16 @@ http_interactions:
"object": "list", "object": "list",
"data": [ "data": [
{ {
"id": "sub_E864buS6hivDwg", "id": "sub_E8TQfnN1GdMBd0",
"object": "subscription", "object": "subscription",
"application_fee_percent": null, "application_fee_percent": null,
"billing": "charge_automatically", "billing": "charge_automatically",
"billing_cycle_anchor": 1544452592, "billing_cycle_anchor": 1544539511,
"cancel_at_period_end": true, "cancel_at_period_end": true,
"canceled_at": 1544452597, "canceled_at": 1544539516,
"created": 1544452592, "created": 1544539511,
"current_period_end": 1547130992, "current_period_end": 1547217911,
"current_period_start": 1544452592, "current_period_start": 1544539511,
"customer": "cus_8E2ys9zDZgetWX", "customer": "cus_8E2ys9zDZgetWX",
"days_until_due": null, "days_until_due": null,
"default_source": null, "default_source": null,
@ -229,9 +229,9 @@ http_interactions:
"object": "list", "object": "list",
"data": [ "data": [
{ {
"id": "si_E864fXEFlCkbRR", "id": "si_E8TQcF8covaIwa",
"object": "subscription_item", "object": "subscription_item",
"created": 1544452592, "created": 1544539511,
"metadata": { "metadata": {
}, },
"plan": { "plan": {
@ -259,12 +259,12 @@ http_interactions:
"usage_type": "licensed" "usage_type": "licensed"
}, },
"quantity": 1, "quantity": 1,
"subscription": "sub_E864buS6hivDwg" "subscription": "sub_E8TQfnN1GdMBd0"
} }
], ],
"has_more": false, "has_more": false,
"total_count": 1, "total_count": 1,
"url": "/v1/subscription_items?subscription=sub_E864buS6hivDwg" "url": "/v1/subscription_items?subscription=sub_E8TQfnN1GdMBd0"
}, },
"livemode": false, "livemode": false,
"metadata": { "metadata": {
@ -294,644 +294,20 @@ http_interactions:
"usage_type": "licensed" "usage_type": "licensed"
}, },
"quantity": 1, "quantity": 1,
"start": 1544452592, "start": 1544539511,
"status": "active", "status": "active",
"tax_percent": null, "tax_percent": null,
"trial_end": null, "trial_end": null,
"trial_start": null "trial_start": null
}, },
{
"id": "sub_E84hFvNBlPia7R",
"object": "subscription",
"application_fee_percent": null,
"billing": "charge_automatically",
"billing_cycle_anchor": 1544447514,
"cancel_at_period_end": false,
"canceled_at": null,
"created": 1544447514,
"current_period_end": 1547125914,
"current_period_start": 1544447514,
"customer": "cus_8E2ys9zDZgetWX",
"days_until_due": null,
"default_source": null,
"discount": null,
"ended_at": null,
"items": {
"object": "list",
"data": [
{
"id": "si_E84hhZgnjOkD73",
"object": "subscription_item",
"created": 1544447515,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"subscription": "sub_E84hFvNBlPia7R"
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/subscription_items?subscription=sub_E84hFvNBlPia7R"
},
"livemode": false,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"start": 1544447514,
"status": "active",
"tax_percent": null,
"trial_end": null,
"trial_start": null
},
{
"id": "sub_E38nTN5QSSC53T",
"object": "subscription",
"application_fee_percent": null,
"billing": "charge_automatically",
"billing_cycle_anchor": 1543309532,
"cancel_at_period_end": true,
"canceled_at": 1543309537,
"created": 1543309532,
"current_period_end": 1545901532,
"current_period_start": 1543309532,
"customer": "cus_8E2ys9zDZgetWX",
"days_until_due": null,
"default_source": null,
"discount": null,
"ended_at": null,
"items": {
"object": "list",
"data": [
{
"id": "si_E38nQ0v6q1jFhp",
"object": "subscription_item",
"created": 1543309533,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"subscription": "sub_E38nTN5QSSC53T"
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/subscription_items?subscription=sub_E38nTN5QSSC53T"
},
"livemode": false,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"start": 1543309532,
"status": "active",
"tax_percent": null,
"trial_end": null,
"trial_start": null
}
],
"has_more": false,
"total_count": 3,
"url": "/v1/customers/cus_8E2ys9zDZgetWX/subscriptions"
},
"tax_info": null,
"tax_info_verification": null
}
http_version:
recorded_at: Tue, 11 Dec 2018 14:03:00 GMT
- request:
method: post
uri: https://api.stripe.com/v1/customers/cus_8E2ys9zDZgetWX/subscriptions
body:
encoding: UTF-8
string: plan=mensuel-standard-month-20160404171519&source=tok_1DgBp92sOmf47Nz9egeX4aXo
headers:
Accept:
- "*/*; q=0.5, application/xml"
Accept-Encoding:
- gzip, deflate
User-Agent:
- Stripe/v1 RubyBindings/1.30.2
Authorization:
- Bearer sk_test_testfaketestfaketestfake
Content-Type:
- application/x-www-form-urlencoded
Stripe-Version:
- '2015-10-16'
X-Stripe-Client-User-Agent:
- '{"bindings_version":"1.30.2","lang":"ruby","lang_version":"2.3.6 p384 (2017-12-14)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
version 4.19.8-arch1-1-ARCH (builduser@heftig-1129) (gcc version 8.2.1 20181127
(GCC)) #1 SMP PREEMPT Sat Dec 8 13:49:11 UTC 2018","hostname":"Sylvain-desktop"}'
Content-Length:
- '78'
response:
status:
code: 200
message: OK
headers:
Server:
- nginx
Date:
- Tue, 11 Dec 2018 14:03:02 GMT
Content-Type:
- application/json
Content-Length:
- '2409'
Connection:
- keep-alive
Access-Control-Allow-Credentials:
- 'true'
Access-Control-Allow-Methods:
- GET, POST, HEAD, OPTIONS, DELETE
Access-Control-Allow-Origin:
- "*"
Access-Control-Expose-Headers:
- Request-Id, Stripe-Manage-Version, X-Stripe-External-Auth-Required, X-Stripe-Privileged-Session-Required
Access-Control-Max-Age:
- '300'
Cache-Control:
- no-cache, no-store
Request-Id:
- req_lUw2phHQJc2o6E
Stripe-Version:
- '2015-10-16'
Strict-Transport-Security:
- max-age=31556926; includeSubDomains; preload
body:
encoding: UTF-8
string: |
{
"id": "sub_E8SkGkxWBPYxq4",
"object": "subscription",
"application_fee_percent": null,
"billing": "charge_automatically",
"billing_cycle_anchor": 1544536981,
"cancel_at_period_end": false,
"canceled_at": null,
"created": 1544536981,
"current_period_end": 1547215381,
"current_period_start": 1544536981,
"customer": "cus_8E2ys9zDZgetWX",
"days_until_due": null,
"default_source": null,
"discount": null,
"ended_at": null,
"items": {
"object": "list",
"data": [
{
"id": "si_E8Skkn572vP54b",
"object": "subscription_item",
"created": 1544536981,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"subscription": "sub_E8SkGkxWBPYxq4"
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/subscription_items?subscription=sub_E8SkGkxWBPYxq4"
},
"livemode": false,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"start": 1544536981,
"status": "active",
"tax_percent": null,
"trial_end": null,
"trial_start": null
}
http_version:
recorded_at: Tue, 11 Dec 2018 14:03:02 GMT
- request:
method: get
uri: https://api.stripe.com/v1/invoices?customer=cus_8E2ys9zDZgetWX&limit=1
body:
encoding: US-ASCII
string: ''
headers:
Accept:
- "*/*; q=0.5, application/xml"
Accept-Encoding:
- gzip, deflate
User-Agent:
- Stripe/v1 RubyBindings/1.30.2
Authorization:
- Bearer sk_test_testfaketestfaketestfake
Content-Type:
- application/x-www-form-urlencoded
Stripe-Version:
- '2015-10-16'
X-Stripe-Client-User-Agent:
- '{"bindings_version":"1.30.2","lang":"ruby","lang_version":"2.3.6 p384 (2017-12-14)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
version 4.19.8-arch1-1-ARCH (builduser@heftig-1129) (gcc version 8.2.1 20181127
(GCC)) #1 SMP PREEMPT Sat Dec 8 13:49:11 UTC 2018","hostname":"Sylvain-desktop"}'
response:
status:
code: 200
message: OK
headers:
Server:
- nginx
Date:
- Tue, 11 Dec 2018 14:03:03 GMT
Content-Type:
- application/json
Content-Length:
- '3162'
Connection:
- keep-alive
Access-Control-Allow-Credentials:
- 'true'
Access-Control-Allow-Methods:
- GET, POST, HEAD, OPTIONS, DELETE
Access-Control-Allow-Origin:
- "*"
Access-Control-Expose-Headers:
- Request-Id, Stripe-Manage-Version, X-Stripe-External-Auth-Required, X-Stripe-Privileged-Session-Required
Access-Control-Max-Age:
- '300'
Cache-Control:
- no-cache, no-store
Request-Id:
- req_kEiuT5JpYrHrBA
Stripe-Version:
- '2015-10-16'
Strict-Transport-Security:
- max-age=31556926; includeSubDomains; preload
body:
encoding: UTF-8
string: |
{
"object": "list",
"data": [
{
"id": "in_1DgBpB2sOmf47Nz9ucNyuvJy",
"object": "invoice",
"amount_due": 3000,
"amount_paid": 3000,
"amount_remaining": 0,
"application_fee": null,
"attempt_count": 1,
"attempted": true,
"auto_advance": false,
"billing": "charge_automatically",
"billing_reason": "subscription_update",
"charge": "ch_1DgBpB2sOmf47Nz98BGLYWLe",
"closed": true,
"currency": "usd",
"customer": "cus_8E2ys9zDZgetWX",
"date": 1544536981,
"default_source": null,
"description": null,
"discount": null,
"due_date": null,
"ending_balance": 0,
"finalized_at": 1544536981,
"forgiven": false,
"hosted_invoice_url": "https://pay.stripe.com/invoice/invst_vDFXXYvBlsfxXaylDEicf9MgF6",
"invoice_pdf": "https://pay.stripe.com/invoice/invst_vDFXXYvBlsfxXaylDEicf9MgF6/pdf",
"lines": {
"object": "list",
"data": [
{
"id": "sub_E8SkGkxWBPYxq4",
"object": "line_item",
"amount": 3000,
"currency": "usd",
"description": null,
"discountable": true,
"livemode": false,
"metadata": {
},
"period": {
"end": 1547215381,
"start": 1544536981
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"proration": false,
"quantity": 1,
"subscription": null,
"subscription_item": "si_E8Skkn572vP54b",
"type": "subscription"
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/invoices/in_1DgBpB2sOmf47Nz9ucNyuvJy/lines"
},
"livemode": false,
"metadata": {
},
"next_payment_attempt": null,
"number": "BCC32B8-0017",
"paid": true,
"payment_intent": null,
"period_end": 1544536981,
"period_start": 1544536981,
"receipt_number": null,
"starting_balance": 0,
"statement_descriptor": null,
"status": "paid",
"subscription": "sub_E8SkGkxWBPYxq4",
"subtotal": 3000,
"tax": 0,
"tax_percent": null,
"total": 3000,
"webhooks_delivered_at": 1544536982
}
],
"has_more": true,
"url": "/v1/invoices"
}
http_version:
recorded_at: Tue, 11 Dec 2018 14:03:03 GMT
- request:
method: get
uri: https://api.stripe.com/v1/customers/cus_8E2ys9zDZgetWX
body:
encoding: US-ASCII
string: ''
headers:
Accept:
- "*/*; q=0.5, application/xml"
Accept-Encoding:
- gzip, deflate
User-Agent:
- Stripe/v1 RubyBindings/1.30.2
Authorization:
- Bearer sk_test_testfaketestfaketestfake
Content-Type:
- application/x-www-form-urlencoded
Stripe-Version:
- '2015-10-16'
X-Stripe-Client-User-Agent:
- '{"bindings_version":"1.30.2","lang":"ruby","lang_version":"2.3.6 p384 (2017-12-14)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
version 4.19.8-arch1-1-ARCH (builduser@heftig-1129) (gcc version 8.2.1 20181127
(GCC)) #1 SMP PREEMPT Sat Dec 8 13:49:11 UTC 2018","hostname":"Sylvain-desktop"}'
response:
status:
code: 200
message: OK
headers:
Server:
- nginx
Date:
- Tue, 11 Dec 2018 14:03:04 GMT
Content-Type:
- application/json
Content-Length:
- '13344'
Connection:
- keep-alive
Access-Control-Allow-Credentials:
- 'true'
Access-Control-Allow-Methods:
- GET, POST, HEAD, OPTIONS, DELETE
Access-Control-Allow-Origin:
- "*"
Access-Control-Expose-Headers:
- Request-Id, Stripe-Manage-Version, X-Stripe-External-Auth-Required, X-Stripe-Privileged-Session-Required
Access-Control-Max-Age:
- '300'
Cache-Control:
- no-cache, no-store
Request-Id:
- req_Yobv5EVCgC1wEh
Stripe-Version:
- '2015-10-16'
Strict-Transport-Security:
- max-age=31556926; includeSubDomains; preload
body:
encoding: UTF-8
string: |
{
"id": "cus_8E2ys9zDZgetWX",
"object": "customer",
"account_balance": 0,
"created": 1460026822,
"currency": "usd",
"default_source": "card_1DgBp92sOmf47Nz9RNvlwx8S",
"delinquent": false,
"description": "Lucile Seguin",
"discount": null,
"email": "lucile.seguin@live.fr",
"invoice_prefix": "BCC32B8",
"livemode": false,
"metadata": {
},
"shipping": null,
"sources": {
"object": "list",
"data": [
{
"id": "card_1DgBp92sOmf47Nz9RNvlwx8S",
"object": "card",
"address_city": null,
"address_country": null,
"address_line1": null,
"address_line1_check": null,
"address_line2": null,
"address_state": null,
"address_zip": null,
"address_zip_check": null,
"brand": "Visa",
"country": "US",
"customer": "cus_8E2ys9zDZgetWX",
"cvc_check": "pass",
"dynamic_last4": null,
"exp_month": 4,
"exp_year": 2019,
"fingerprint": "o52jybR7bnmNn6AT",
"funding": "credit",
"last4": "4242",
"metadata": {
},
"name": null,
"tokenization_method": null
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/customers/cus_8E2ys9zDZgetWX/sources"
},
"subscriptions": {
"object": "list",
"data": [
{ {
"id": "sub_E8SkGkxWBPYxq4", "id": "sub_E8SkGkxWBPYxq4",
"object": "subscription", "object": "subscription",
"application_fee_percent": null, "application_fee_percent": null,
"billing": "charge_automatically", "billing": "charge_automatically",
"billing_cycle_anchor": 1544536981, "billing_cycle_anchor": 1544536981,
"cancel_at_period_end": false, "cancel_at_period_end": true,
"canceled_at": null, "canceled_at": 1544536986,
"created": 1544536981, "created": 1544536981,
"current_period_end": 1547215381, "current_period_end": 1547215381,
"current_period_start": 1544536981, "current_period_start": 1544536981,
@ -1290,20 +666,20 @@ http_interactions:
} }
], ],
"has_more": false, "has_more": false,
"total_count": 4, "total_count": 5,
"url": "/v1/customers/cus_8E2ys9zDZgetWX/subscriptions" "url": "/v1/customers/cus_8E2ys9zDZgetWX/subscriptions"
}, },
"tax_info": null, "tax_info": null,
"tax_info_verification": null "tax_info_verification": null
} }
http_version: http_version:
recorded_at: Tue, 11 Dec 2018 14:03:04 GMT recorded_at: Tue, 11 Dec 2018 15:29:20 GMT
- request: - request:
method: get method: post
uri: https://api.stripe.com/v1/customers/cus_8E2ys9zDZgetWX/subscriptions/sub_E8SkGkxWBPYxq4 uri: https://api.stripe.com/v1/customers/cus_8E2ys9zDZgetWX/subscriptions
body: body:
encoding: US-ASCII encoding: UTF-8
string: '' string: plan=mensuel-standard-month-20160404171519&source=tok_1DgDAh2sOmf47Nz9zx73trkr
headers: headers:
Accept: Accept:
- "*/*; q=0.5, application/xml" - "*/*; q=0.5, application/xml"
@ -1321,6 +697,8 @@ http_interactions:
- '{"bindings_version":"1.30.2","lang":"ruby","lang_version":"2.3.6 p384 (2017-12-14)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux - '{"bindings_version":"1.30.2","lang":"ruby","lang_version":"2.3.6 p384 (2017-12-14)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
version 4.19.8-arch1-1-ARCH (builduser@heftig-1129) (gcc version 8.2.1 20181127 version 4.19.8-arch1-1-ARCH (builduser@heftig-1129) (gcc version 8.2.1 20181127
(GCC)) #1 SMP PREEMPT Sat Dec 8 13:49:11 UTC 2018","hostname":"Sylvain-desktop"}' (GCC)) #1 SMP PREEMPT Sat Dec 8 13:49:11 UTC 2018","hostname":"Sylvain-desktop"}'
Content-Length:
- '78'
response: response:
status: status:
code: 200 code: 200
@ -1329,7 +707,7 @@ http_interactions:
Server: Server:
- nginx - nginx
Date: Date:
- Tue, 11 Dec 2018 14:03:05 GMT - Tue, 11 Dec 2018 15:29:22 GMT
Content-Type: Content-Type:
- application/json - application/json
Content-Length: Content-Length:
@ -1349,7 +727,7 @@ http_interactions:
Cache-Control: Cache-Control:
- no-cache, no-store - no-cache, no-store
Request-Id: Request-Id:
- req_qMys6hWUIGGyWx - req_5an49z8Itrg1wS
Stripe-Version: Stripe-Version:
- '2015-10-16' - '2015-10-16'
Strict-Transport-Security: Strict-Transport-Security:
@ -1358,16 +736,16 @@ http_interactions:
encoding: UTF-8 encoding: UTF-8
string: | string: |
{ {
"id": "sub_E8SkGkxWBPYxq4", "id": "sub_E8U986dZhAepEP",
"object": "subscription", "object": "subscription",
"application_fee_percent": null, "application_fee_percent": null,
"billing": "charge_automatically", "billing": "charge_automatically",
"billing_cycle_anchor": 1544536981, "billing_cycle_anchor": 1544542161,
"cancel_at_period_end": false, "cancel_at_period_end": false,
"canceled_at": null, "canceled_at": null,
"created": 1544536981, "created": 1544542161,
"current_period_end": 1547215381, "current_period_end": 1547220561,
"current_period_start": 1544536981, "current_period_start": 1544542161,
"customer": "cus_8E2ys9zDZgetWX", "customer": "cus_8E2ys9zDZgetWX",
"days_until_due": null, "days_until_due": null,
"default_source": null, "default_source": null,
@ -1377,9 +755,9 @@ http_interactions:
"object": "list", "object": "list",
"data": [ "data": [
{ {
"id": "si_E8Skkn572vP54b", "id": "si_E8U9JH2h5zb9D8",
"object": "subscription_item", "object": "subscription_item",
"created": 1544536981, "created": 1544542161,
"metadata": { "metadata": {
}, },
"plan": { "plan": {
@ -1407,12 +785,12 @@ http_interactions:
"usage_type": "licensed" "usage_type": "licensed"
}, },
"quantity": 1, "quantity": 1,
"subscription": "sub_E8SkGkxWBPYxq4" "subscription": "sub_E8U986dZhAepEP"
} }
], ],
"has_more": false, "has_more": false,
"total_count": 1, "total_count": 1,
"url": "/v1/subscription_items?subscription=sub_E8SkGkxWBPYxq4" "url": "/v1/subscription_items?subscription=sub_E8U986dZhAepEP"
}, },
"livemode": false, "livemode": false,
"metadata": { "metadata": {
@ -1442,17 +820,17 @@ http_interactions:
"usage_type": "licensed" "usage_type": "licensed"
}, },
"quantity": 1, "quantity": 1,
"start": 1544536981, "start": 1544542161,
"status": "active", "status": "active",
"tax_percent": null, "tax_percent": null,
"trial_end": null, "trial_end": null,
"trial_start": null "trial_start": null
} }
http_version: http_version:
recorded_at: Tue, 11 Dec 2018 14:03:05 GMT recorded_at: Tue, 11 Dec 2018 15:29:22 GMT
- request: - request:
method: delete method: get
uri: https://api.stripe.com/v1/customers/cus_8E2ys9zDZgetWX/subscriptions/sub_E8SkGkxWBPYxq4?at_period_end=true uri: https://api.stripe.com/v1/invoices?customer=cus_8E2ys9zDZgetWX&limit=1
body: body:
encoding: US-ASCII encoding: US-ASCII
string: '' string: ''
@ -1481,11 +859,11 @@ http_interactions:
Server: Server:
- nginx - nginx
Date: Date:
- Tue, 11 Dec 2018 14:03:06 GMT - Tue, 11 Dec 2018 15:29:23 GMT
Content-Type: Content-Type:
- application/json - application/json
Content-Length: Content-Length:
- '2414' - '3162'
Connection: Connection:
- keep-alive - keep-alive
Access-Control-Allow-Credentials: Access-Control-Allow-Credentials:
@ -1501,7 +879,7 @@ http_interactions:
Cache-Control: Cache-Control:
- no-cache, no-store - no-cache, no-store
Request-Id: Request-Id:
- req_aMVRGbb1I1oN24 - req_MN5bbRqjJOIKeq
Stripe-Version: Stripe-Version:
- '2015-10-16' - '2015-10-16'
Strict-Transport-Security: Strict-Transport-Security:
@ -1510,28 +888,282 @@ http_interactions:
encoding: UTF-8 encoding: UTF-8
string: | string: |
{ {
"id": "sub_E8SkGkxWBPYxq4", "object": "list",
"object": "subscription", "data": [
"application_fee_percent": null, {
"billing": "charge_automatically", "id": "in_1DgDAj2sOmf47Nz9rjxakQnI",
"billing_cycle_anchor": 1544536981, "object": "invoice",
"cancel_at_period_end": true, "amount_due": 3000,
"canceled_at": 1544536986, "amount_paid": 3000,
"created": 1544536981, "amount_remaining": 0,
"current_period_end": 1547215381, "application_fee": null,
"current_period_start": 1544536981, "attempt_count": 1,
"customer": "cus_8E2ys9zDZgetWX", "attempted": true,
"days_until_due": null, "auto_advance": false,
"default_source": null, "billing": "charge_automatically",
"billing_reason": "subscription_update",
"charge": "ch_1DgDAj2sOmf47Nz9brVR8ScB",
"closed": true,
"currency": "usd",
"customer": "cus_8E2ys9zDZgetWX",
"date": 1544542161,
"default_source": null,
"description": null,
"discount": null,
"due_date": null,
"ending_balance": 0,
"finalized_at": 1544542161,
"forgiven": false,
"hosted_invoice_url": "https://pay.stripe.com/invoice/invst_WfNOWkHSDWMzrGIiEgu34HbhGA",
"invoice_pdf": "https://pay.stripe.com/invoice/invst_WfNOWkHSDWMzrGIiEgu34HbhGA/pdf",
"lines": {
"object": "list",
"data": [
{
"id": "sub_E8U986dZhAepEP",
"object": "line_item",
"amount": 3000,
"currency": "usd",
"description": null,
"discountable": true,
"livemode": false,
"metadata": {
},
"period": {
"end": 1547220561,
"start": 1544542161
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"proration": false,
"quantity": 1,
"subscription": null,
"subscription_item": "si_E8U9JH2h5zb9D8",
"type": "subscription"
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/invoices/in_1DgDAj2sOmf47Nz9rjxakQnI/lines"
},
"livemode": false,
"metadata": {
},
"next_payment_attempt": null,
"number": "BCC32B8-0019",
"paid": true,
"payment_intent": null,
"period_end": 1544542161,
"period_start": 1544542161,
"receipt_number": null,
"starting_balance": 0,
"statement_descriptor": null,
"status": "paid",
"subscription": "sub_E8U986dZhAepEP",
"subtotal": 3000,
"tax": 0,
"tax_percent": null,
"total": 3000,
"webhooks_delivered_at": 1544542162
}
],
"has_more": true,
"url": "/v1/invoices"
}
http_version:
recorded_at: Tue, 11 Dec 2018 15:29:23 GMT
- request:
method: get
uri: https://api.stripe.com/v1/customers/cus_8E2ys9zDZgetWX
body:
encoding: US-ASCII
string: ''
headers:
Accept:
- "*/*; q=0.5, application/xml"
Accept-Encoding:
- gzip, deflate
User-Agent:
- Stripe/v1 RubyBindings/1.30.2
Authorization:
- Bearer sk_test_testfaketestfaketestfake
Content-Type:
- application/x-www-form-urlencoded
Stripe-Version:
- '2015-10-16'
X-Stripe-Client-User-Agent:
- '{"bindings_version":"1.30.2","lang":"ruby","lang_version":"2.3.6 p384 (2017-12-14)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
version 4.19.8-arch1-1-ARCH (builduser@heftig-1129) (gcc version 8.2.1 20181127
(GCC)) #1 SMP PREEMPT Sat Dec 8 13:49:11 UTC 2018","hostname":"Sylvain-desktop"}'
response:
status:
code: 200
message: OK
headers:
Server:
- nginx
Date:
- Tue, 11 Dec 2018 15:29:24 GMT
Content-Type:
- application/json
Content-Length:
- '19266'
Connection:
- keep-alive
Access-Control-Allow-Credentials:
- 'true'
Access-Control-Allow-Methods:
- GET, POST, HEAD, OPTIONS, DELETE
Access-Control-Allow-Origin:
- "*"
Access-Control-Expose-Headers:
- Request-Id, Stripe-Manage-Version, X-Stripe-External-Auth-Required, X-Stripe-Privileged-Session-Required
Access-Control-Max-Age:
- '300'
Cache-Control:
- no-cache, no-store
Request-Id:
- req_8rtX91lldEg0to
Stripe-Version:
- '2015-10-16'
Strict-Transport-Security:
- max-age=31556926; includeSubDomains; preload
body:
encoding: UTF-8
string: |
{
"id": "cus_8E2ys9zDZgetWX",
"object": "customer",
"account_balance": 0,
"created": 1460026822,
"currency": "usd",
"default_source": "card_1DgDAh2sOmf47Nz9jxDWEvnO",
"delinquent": false,
"description": "Lucile Seguin",
"discount": null, "discount": null,
"ended_at": null, "email": "lucile.seguin@live.fr",
"items": { "invoice_prefix": "BCC32B8",
"livemode": false,
"metadata": {
},
"shipping": null,
"sources": {
"object": "list", "object": "list",
"data": [ "data": [
{ {
"id": "si_E8Skkn572vP54b", "id": "card_1DgDAh2sOmf47Nz9jxDWEvnO",
"object": "subscription_item", "object": "card",
"created": 1544536981, "address_city": null,
"address_country": null,
"address_line1": null,
"address_line1_check": null,
"address_line2": null,
"address_state": null,
"address_zip": null,
"address_zip_check": null,
"brand": "Visa",
"country": "US",
"customer": "cus_8E2ys9zDZgetWX",
"cvc_check": "pass",
"dynamic_last4": null,
"exp_month": 4,
"exp_year": 2019,
"fingerprint": "o52jybR7bnmNn6AT",
"funding": "credit",
"last4": "4242",
"metadata": {
},
"name": null,
"tokenization_method": null
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/customers/cus_8E2ys9zDZgetWX/sources"
},
"subscriptions": {
"object": "list",
"data": [
{
"id": "sub_E8U986dZhAepEP",
"object": "subscription",
"application_fee_percent": null,
"billing": "charge_automatically",
"billing_cycle_anchor": 1544542161,
"cancel_at_period_end": false,
"canceled_at": null,
"created": 1544542161,
"current_period_end": 1547220561,
"current_period_start": 1544542161,
"customer": "cus_8E2ys9zDZgetWX",
"days_until_due": null,
"default_source": null,
"discount": null,
"ended_at": null,
"items": {
"object": "list",
"data": [
{
"id": "si_E8U9JH2h5zb9D8",
"object": "subscription_item",
"created": 1544542161,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"subscription": "sub_E8U986dZhAepEP"
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/subscription_items?subscription=sub_E8U986dZhAepEP"
},
"livemode": false,
"metadata": { "metadata": {
}, },
"plan": { "plan": {
@ -1559,12 +1191,592 @@ http_interactions:
"usage_type": "licensed" "usage_type": "licensed"
}, },
"quantity": 1, "quantity": 1,
"subscription": "sub_E8SkGkxWBPYxq4" "start": 1544542161,
"status": "active",
"tax_percent": null,
"trial_end": null,
"trial_start": null
},
{
"id": "sub_E8TQfnN1GdMBd0",
"object": "subscription",
"application_fee_percent": null,
"billing": "charge_automatically",
"billing_cycle_anchor": 1544539511,
"cancel_at_period_end": true,
"canceled_at": 1544539516,
"created": 1544539511,
"current_period_end": 1547217911,
"current_period_start": 1544539511,
"customer": "cus_8E2ys9zDZgetWX",
"days_until_due": null,
"default_source": null,
"discount": null,
"ended_at": null,
"items": {
"object": "list",
"data": [
{
"id": "si_E8TQcF8covaIwa",
"object": "subscription_item",
"created": 1544539511,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"subscription": "sub_E8TQfnN1GdMBd0"
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/subscription_items?subscription=sub_E8TQfnN1GdMBd0"
},
"livemode": false,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"start": 1544539511,
"status": "active",
"tax_percent": null,
"trial_end": null,
"trial_start": null
},
{
"id": "sub_E8SkGkxWBPYxq4",
"object": "subscription",
"application_fee_percent": null,
"billing": "charge_automatically",
"billing_cycle_anchor": 1544536981,
"cancel_at_period_end": true,
"canceled_at": 1544536986,
"created": 1544536981,
"current_period_end": 1547215381,
"current_period_start": 1544536981,
"customer": "cus_8E2ys9zDZgetWX",
"days_until_due": null,
"default_source": null,
"discount": null,
"ended_at": null,
"items": {
"object": "list",
"data": [
{
"id": "si_E8Skkn572vP54b",
"object": "subscription_item",
"created": 1544536981,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"subscription": "sub_E8SkGkxWBPYxq4"
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/subscription_items?subscription=sub_E8SkGkxWBPYxq4"
},
"livemode": false,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"start": 1544536981,
"status": "active",
"tax_percent": null,
"trial_end": null,
"trial_start": null
},
{
"id": "sub_E864buS6hivDwg",
"object": "subscription",
"application_fee_percent": null,
"billing": "charge_automatically",
"billing_cycle_anchor": 1544452592,
"cancel_at_period_end": true,
"canceled_at": 1544452597,
"created": 1544452592,
"current_period_end": 1547130992,
"current_period_start": 1544452592,
"customer": "cus_8E2ys9zDZgetWX",
"days_until_due": null,
"default_source": null,
"discount": null,
"ended_at": null,
"items": {
"object": "list",
"data": [
{
"id": "si_E864fXEFlCkbRR",
"object": "subscription_item",
"created": 1544452592,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"subscription": "sub_E864buS6hivDwg"
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/subscription_items?subscription=sub_E864buS6hivDwg"
},
"livemode": false,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"start": 1544452592,
"status": "active",
"tax_percent": null,
"trial_end": null,
"trial_start": null
},
{
"id": "sub_E84hFvNBlPia7R",
"object": "subscription",
"application_fee_percent": null,
"billing": "charge_automatically",
"billing_cycle_anchor": 1544447514,
"cancel_at_period_end": false,
"canceled_at": null,
"created": 1544447514,
"current_period_end": 1547125914,
"current_period_start": 1544447514,
"customer": "cus_8E2ys9zDZgetWX",
"days_until_due": null,
"default_source": null,
"discount": null,
"ended_at": null,
"items": {
"object": "list",
"data": [
{
"id": "si_E84hhZgnjOkD73",
"object": "subscription_item",
"created": 1544447515,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"subscription": "sub_E84hFvNBlPia7R"
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/subscription_items?subscription=sub_E84hFvNBlPia7R"
},
"livemode": false,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"start": 1544447514,
"status": "active",
"tax_percent": null,
"trial_end": null,
"trial_start": null
},
{
"id": "sub_E38nTN5QSSC53T",
"object": "subscription",
"application_fee_percent": null,
"billing": "charge_automatically",
"billing_cycle_anchor": 1543309532,
"cancel_at_period_end": true,
"canceled_at": 1543309537,
"created": 1543309532,
"current_period_end": 1545901532,
"current_period_start": 1543309532,
"customer": "cus_8E2ys9zDZgetWX",
"days_until_due": null,
"default_source": null,
"discount": null,
"ended_at": null,
"items": {
"object": "list",
"data": [
{
"id": "si_E38nQ0v6q1jFhp",
"object": "subscription_item",
"created": 1543309533,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"subscription": "sub_E38nTN5QSSC53T"
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/subscription_items?subscription=sub_E38nTN5QSSC53T"
},
"livemode": false,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"start": 1543309532,
"status": "active",
"tax_percent": null,
"trial_end": null,
"trial_start": null
}
],
"has_more": false,
"total_count": 6,
"url": "/v1/customers/cus_8E2ys9zDZgetWX/subscriptions"
},
"tax_info": null,
"tax_info_verification": null
}
http_version:
recorded_at: Tue, 11 Dec 2018 15:29:25 GMT
- request:
method: get
uri: https://api.stripe.com/v1/customers/cus_8E2ys9zDZgetWX/subscriptions/sub_E8U986dZhAepEP
body:
encoding: US-ASCII
string: ''
headers:
Accept:
- "*/*; q=0.5, application/xml"
Accept-Encoding:
- gzip, deflate
User-Agent:
- Stripe/v1 RubyBindings/1.30.2
Authorization:
- Bearer sk_test_testfaketestfaketestfake
Content-Type:
- application/x-www-form-urlencoded
Stripe-Version:
- '2015-10-16'
X-Stripe-Client-User-Agent:
- '{"bindings_version":"1.30.2","lang":"ruby","lang_version":"2.3.6 p384 (2017-12-14)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
version 4.19.8-arch1-1-ARCH (builduser@heftig-1129) (gcc version 8.2.1 20181127
(GCC)) #1 SMP PREEMPT Sat Dec 8 13:49:11 UTC 2018","hostname":"Sylvain-desktop"}'
response:
status:
code: 200
message: OK
headers:
Server:
- nginx
Date:
- Tue, 11 Dec 2018 15:29:25 GMT
Content-Type:
- application/json
Content-Length:
- '2409'
Connection:
- keep-alive
Access-Control-Allow-Credentials:
- 'true'
Access-Control-Allow-Methods:
- GET, POST, HEAD, OPTIONS, DELETE
Access-Control-Allow-Origin:
- "*"
Access-Control-Expose-Headers:
- Request-Id, Stripe-Manage-Version, X-Stripe-External-Auth-Required, X-Stripe-Privileged-Session-Required
Access-Control-Max-Age:
- '300'
Cache-Control:
- no-cache, no-store
Request-Id:
- req_sVE7oYCQpk4Ewq
Stripe-Version:
- '2015-10-16'
Strict-Transport-Security:
- max-age=31556926; includeSubDomains; preload
body:
encoding: UTF-8
string: |
{
"id": "sub_E8U986dZhAepEP",
"object": "subscription",
"application_fee_percent": null,
"billing": "charge_automatically",
"billing_cycle_anchor": 1544542161,
"cancel_at_period_end": false,
"canceled_at": null,
"created": 1544542161,
"current_period_end": 1547220561,
"current_period_start": 1544542161,
"customer": "cus_8E2ys9zDZgetWX",
"days_until_due": null,
"default_source": null,
"discount": null,
"ended_at": null,
"items": {
"object": "list",
"data": [
{
"id": "si_E8U9JH2h5zb9D8",
"object": "subscription_item",
"created": 1544542161,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"subscription": "sub_E8U986dZhAepEP"
} }
], ],
"has_more": false, "has_more": false,
"total_count": 1, "total_count": 1,
"url": "/v1/subscription_items?subscription=sub_E8SkGkxWBPYxq4" "url": "/v1/subscription_items?subscription=sub_E8U986dZhAepEP"
}, },
"livemode": false, "livemode": false,
"metadata": { "metadata": {
@ -1594,12 +1806,984 @@ http_interactions:
"usage_type": "licensed" "usage_type": "licensed"
}, },
"quantity": 1, "quantity": 1,
"start": 1544536981, "start": 1544542161,
"status": "active", "status": "active",
"tax_percent": null, "tax_percent": null,
"trial_end": null, "trial_end": null,
"trial_start": null "trial_start": null
} }
http_version: http_version:
recorded_at: Tue, 11 Dec 2018 14:03:06 GMT recorded_at: Tue, 11 Dec 2018 15:29:25 GMT
- request:
method: delete
uri: https://api.stripe.com/v1/customers/cus_8E2ys9zDZgetWX/subscriptions/sub_E8U986dZhAepEP?at_period_end=true
body:
encoding: US-ASCII
string: ''
headers:
Accept:
- "*/*; q=0.5, application/xml"
Accept-Encoding:
- gzip, deflate
User-Agent:
- Stripe/v1 RubyBindings/1.30.2
Authorization:
- Bearer sk_test_testfaketestfaketestfake
Content-Type:
- application/x-www-form-urlencoded
Stripe-Version:
- '2015-10-16'
X-Stripe-Client-User-Agent:
- '{"bindings_version":"1.30.2","lang":"ruby","lang_version":"2.3.6 p384 (2017-12-14)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
version 4.19.8-arch1-1-ARCH (builduser@heftig-1129) (gcc version 8.2.1 20181127
(GCC)) #1 SMP PREEMPT Sat Dec 8 13:49:11 UTC 2018","hostname":"Sylvain-desktop"}'
response:
status:
code: 200
message: OK
headers:
Server:
- nginx
Date:
- Tue, 11 Dec 2018 15:29:27 GMT
Content-Type:
- application/json
Content-Length:
- '2414'
Connection:
- keep-alive
Access-Control-Allow-Credentials:
- 'true'
Access-Control-Allow-Methods:
- GET, POST, HEAD, OPTIONS, DELETE
Access-Control-Allow-Origin:
- "*"
Access-Control-Expose-Headers:
- Request-Id, Stripe-Manage-Version, X-Stripe-External-Auth-Required, X-Stripe-Privileged-Session-Required
Access-Control-Max-Age:
- '300'
Cache-Control:
- no-cache, no-store
Request-Id:
- req_PxuWuGO6CHJTks
Stripe-Version:
- '2015-10-16'
Strict-Transport-Security:
- max-age=31556926; includeSubDomains; preload
body:
encoding: UTF-8
string: |
{
"id": "sub_E8U986dZhAepEP",
"object": "subscription",
"application_fee_percent": null,
"billing": "charge_automatically",
"billing_cycle_anchor": 1544542161,
"cancel_at_period_end": true,
"canceled_at": 1544542166,
"created": 1544542161,
"current_period_end": 1547220561,
"current_period_start": 1544542161,
"customer": "cus_8E2ys9zDZgetWX",
"days_until_due": null,
"default_source": null,
"discount": null,
"ended_at": null,
"items": {
"object": "list",
"data": [
{
"id": "si_E8U9JH2h5zb9D8",
"object": "subscription_item",
"created": 1544542161,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"subscription": "sub_E8U986dZhAepEP"
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/subscription_items?subscription=sub_E8U986dZhAepEP"
},
"livemode": false,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"start": 1544542161,
"status": "active",
"tax_percent": null,
"trial_end": null,
"trial_start": null
}
http_version:
recorded_at: Tue, 11 Dec 2018 15:29:27 GMT
- request:
method: get
uri: https://api.stripe.com/v1/customers/cus_8E2ys9zDZgetWX
body:
encoding: US-ASCII
string: ''
headers:
Accept:
- "*/*; q=0.5, application/xml"
Accept-Encoding:
- gzip, deflate
User-Agent:
- Stripe/v1 RubyBindings/1.30.2
Authorization:
- Bearer sk_test_testfaketestfaketestfake
Content-Type:
- application/x-www-form-urlencoded
Stripe-Version:
- '2015-10-16'
X-Stripe-Client-User-Agent:
- '{"bindings_version":"1.30.2","lang":"ruby","lang_version":"2.3.6 p384 (2017-12-14)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
version 4.19.8-arch1-1-ARCH (builduser@heftig-1129) (gcc version 8.2.1 20181127
(GCC)) #1 SMP PREEMPT Sat Dec 8 13:49:11 UTC 2018","hostname":"Sylvain-desktop"}'
response:
status:
code: 200
message: OK
headers:
Server:
- nginx
Date:
- Tue, 11 Dec 2018 15:29:28 GMT
Content-Type:
- application/json
Content-Length:
- '19271'
Connection:
- keep-alive
Access-Control-Allow-Credentials:
- 'true'
Access-Control-Allow-Methods:
- GET, POST, HEAD, OPTIONS, DELETE
Access-Control-Allow-Origin:
- "*"
Access-Control-Expose-Headers:
- Request-Id, Stripe-Manage-Version, X-Stripe-External-Auth-Required, X-Stripe-Privileged-Session-Required
Access-Control-Max-Age:
- '300'
Cache-Control:
- no-cache, no-store
Request-Id:
- req_w6FWdroefKqM8k
Stripe-Version:
- '2015-10-16'
Strict-Transport-Security:
- max-age=31556926; includeSubDomains; preload
body:
encoding: UTF-8
string: |
{
"id": "cus_8E2ys9zDZgetWX",
"object": "customer",
"account_balance": 0,
"created": 1460026822,
"currency": "usd",
"default_source": "card_1DgDAh2sOmf47Nz9jxDWEvnO",
"delinquent": false,
"description": "Lucile Seguin",
"discount": null,
"email": "lucile.seguin@live.fr",
"invoice_prefix": "BCC32B8",
"livemode": false,
"metadata": {
},
"shipping": null,
"sources": {
"object": "list",
"data": [
{
"id": "card_1DgDAh2sOmf47Nz9jxDWEvnO",
"object": "card",
"address_city": null,
"address_country": null,
"address_line1": null,
"address_line1_check": null,
"address_line2": null,
"address_state": null,
"address_zip": null,
"address_zip_check": null,
"brand": "Visa",
"country": "US",
"customer": "cus_8E2ys9zDZgetWX",
"cvc_check": "pass",
"dynamic_last4": null,
"exp_month": 4,
"exp_year": 2019,
"fingerprint": "o52jybR7bnmNn6AT",
"funding": "credit",
"last4": "4242",
"metadata": {
},
"name": null,
"tokenization_method": null
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/customers/cus_8E2ys9zDZgetWX/sources"
},
"subscriptions": {
"object": "list",
"data": [
{
"id": "sub_E8U986dZhAepEP",
"object": "subscription",
"application_fee_percent": null,
"billing": "charge_automatically",
"billing_cycle_anchor": 1544542161,
"cancel_at_period_end": true,
"canceled_at": 1544542166,
"created": 1544542161,
"current_period_end": 1547220561,
"current_period_start": 1544542161,
"customer": "cus_8E2ys9zDZgetWX",
"days_until_due": null,
"default_source": null,
"discount": null,
"ended_at": null,
"items": {
"object": "list",
"data": [
{
"id": "si_E8U9JH2h5zb9D8",
"object": "subscription_item",
"created": 1544542161,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"subscription": "sub_E8U986dZhAepEP"
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/subscription_items?subscription=sub_E8U986dZhAepEP"
},
"livemode": false,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"start": 1544542161,
"status": "active",
"tax_percent": null,
"trial_end": null,
"trial_start": null
},
{
"id": "sub_E8TQfnN1GdMBd0",
"object": "subscription",
"application_fee_percent": null,
"billing": "charge_automatically",
"billing_cycle_anchor": 1544539511,
"cancel_at_period_end": true,
"canceled_at": 1544539516,
"created": 1544539511,
"current_period_end": 1547217911,
"current_period_start": 1544539511,
"customer": "cus_8E2ys9zDZgetWX",
"days_until_due": null,
"default_source": null,
"discount": null,
"ended_at": null,
"items": {
"object": "list",
"data": [
{
"id": "si_E8TQcF8covaIwa",
"object": "subscription_item",
"created": 1544539511,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"subscription": "sub_E8TQfnN1GdMBd0"
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/subscription_items?subscription=sub_E8TQfnN1GdMBd0"
},
"livemode": false,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"start": 1544539511,
"status": "active",
"tax_percent": null,
"trial_end": null,
"trial_start": null
},
{
"id": "sub_E8SkGkxWBPYxq4",
"object": "subscription",
"application_fee_percent": null,
"billing": "charge_automatically",
"billing_cycle_anchor": 1544536981,
"cancel_at_period_end": true,
"canceled_at": 1544536986,
"created": 1544536981,
"current_period_end": 1547215381,
"current_period_start": 1544536981,
"customer": "cus_8E2ys9zDZgetWX",
"days_until_due": null,
"default_source": null,
"discount": null,
"ended_at": null,
"items": {
"object": "list",
"data": [
{
"id": "si_E8Skkn572vP54b",
"object": "subscription_item",
"created": 1544536981,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"subscription": "sub_E8SkGkxWBPYxq4"
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/subscription_items?subscription=sub_E8SkGkxWBPYxq4"
},
"livemode": false,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"start": 1544536981,
"status": "active",
"tax_percent": null,
"trial_end": null,
"trial_start": null
},
{
"id": "sub_E864buS6hivDwg",
"object": "subscription",
"application_fee_percent": null,
"billing": "charge_automatically",
"billing_cycle_anchor": 1544452592,
"cancel_at_period_end": true,
"canceled_at": 1544452597,
"created": 1544452592,
"current_period_end": 1547130992,
"current_period_start": 1544452592,
"customer": "cus_8E2ys9zDZgetWX",
"days_until_due": null,
"default_source": null,
"discount": null,
"ended_at": null,
"items": {
"object": "list",
"data": [
{
"id": "si_E864fXEFlCkbRR",
"object": "subscription_item",
"created": 1544452592,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"subscription": "sub_E864buS6hivDwg"
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/subscription_items?subscription=sub_E864buS6hivDwg"
},
"livemode": false,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"start": 1544452592,
"status": "active",
"tax_percent": null,
"trial_end": null,
"trial_start": null
},
{
"id": "sub_E84hFvNBlPia7R",
"object": "subscription",
"application_fee_percent": null,
"billing": "charge_automatically",
"billing_cycle_anchor": 1544447514,
"cancel_at_period_end": false,
"canceled_at": null,
"created": 1544447514,
"current_period_end": 1547125914,
"current_period_start": 1544447514,
"customer": "cus_8E2ys9zDZgetWX",
"days_until_due": null,
"default_source": null,
"discount": null,
"ended_at": null,
"items": {
"object": "list",
"data": [
{
"id": "si_E84hhZgnjOkD73",
"object": "subscription_item",
"created": 1544447515,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"subscription": "sub_E84hFvNBlPia7R"
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/subscription_items?subscription=sub_E84hFvNBlPia7R"
},
"livemode": false,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"start": 1544447514,
"status": "active",
"tax_percent": null,
"trial_end": null,
"trial_start": null
},
{
"id": "sub_E38nTN5QSSC53T",
"object": "subscription",
"application_fee_percent": null,
"billing": "charge_automatically",
"billing_cycle_anchor": 1543309532,
"cancel_at_period_end": true,
"canceled_at": 1543309537,
"created": 1543309532,
"current_period_end": 1545901532,
"current_period_start": 1543309532,
"customer": "cus_8E2ys9zDZgetWX",
"days_until_due": null,
"default_source": null,
"discount": null,
"ended_at": null,
"items": {
"object": "list",
"data": [
{
"id": "si_E38nQ0v6q1jFhp",
"object": "subscription_item",
"created": 1543309533,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"subscription": "sub_E38nTN5QSSC53T"
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/subscription_items?subscription=sub_E38nTN5QSSC53T"
},
"livemode": false,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"start": 1543309532,
"status": "active",
"tax_percent": null,
"trial_end": null,
"trial_start": null
}
],
"has_more": false,
"total_count": 6,
"url": "/v1/customers/cus_8E2ys9zDZgetWX/subscriptions"
},
"tax_info": null,
"tax_info_verification": null
}
http_version:
recorded_at: Tue, 11 Dec 2018 15:29:28 GMT
- request:
method: get
uri: https://api.stripe.com/v1/customers/cus_8E2ys9zDZgetWX/subscriptions/sub_E8U986dZhAepEP
body:
encoding: US-ASCII
string: ''
headers:
Accept:
- "*/*; q=0.5, application/xml"
Accept-Encoding:
- gzip, deflate
User-Agent:
- Stripe/v1 RubyBindings/1.30.2
Authorization:
- Bearer sk_test_testfaketestfaketestfake
Content-Type:
- application/x-www-form-urlencoded
Stripe-Version:
- '2015-10-16'
X-Stripe-Client-User-Agent:
- '{"bindings_version":"1.30.2","lang":"ruby","lang_version":"2.3.6 p384 (2017-12-14)","platform":"x86_64-linux","engine":"ruby","publisher":"stripe","uname":"Linux
version 4.19.8-arch1-1-ARCH (builduser@heftig-1129) (gcc version 8.2.1 20181127
(GCC)) #1 SMP PREEMPT Sat Dec 8 13:49:11 UTC 2018","hostname":"Sylvain-desktop"}'
response:
status:
code: 200
message: OK
headers:
Server:
- nginx
Date:
- Tue, 11 Dec 2018 15:29:29 GMT
Content-Type:
- application/json
Content-Length:
- '2414'
Connection:
- keep-alive
Access-Control-Allow-Credentials:
- 'true'
Access-Control-Allow-Methods:
- GET, POST, HEAD, OPTIONS, DELETE
Access-Control-Allow-Origin:
- "*"
Access-Control-Expose-Headers:
- Request-Id, Stripe-Manage-Version, X-Stripe-External-Auth-Required, X-Stripe-Privileged-Session-Required
Access-Control-Max-Age:
- '300'
Cache-Control:
- no-cache, no-store
Request-Id:
- req_78uefNrbDq98k9
Stripe-Version:
- '2015-10-16'
Strict-Transport-Security:
- max-age=31556926; includeSubDomains; preload
body:
encoding: UTF-8
string: |
{
"id": "sub_E8U986dZhAepEP",
"object": "subscription",
"application_fee_percent": null,
"billing": "charge_automatically",
"billing_cycle_anchor": 1544542161,
"cancel_at_period_end": true,
"canceled_at": 1544542166,
"created": 1544542161,
"current_period_end": 1547220561,
"current_period_start": 1544542161,
"customer": "cus_8E2ys9zDZgetWX",
"days_until_due": null,
"default_source": null,
"discount": null,
"ended_at": null,
"items": {
"object": "list",
"data": [
{
"id": "si_E8U9JH2h5zb9D8",
"object": "subscription_item",
"created": 1544542161,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"subscription": "sub_E8U986dZhAepEP"
}
],
"has_more": false,
"total_count": 1,
"url": "/v1/subscription_items?subscription=sub_E8U986dZhAepEP"
},
"livemode": false,
"metadata": {
},
"plan": {
"id": "mensuel-standard-month-20160404171519",
"object": "plan",
"active": true,
"aggregate_usage": null,
"amount": 3000,
"billing_scheme": "per_unit",
"created": 1459782921,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {
},
"name": "Mensuel - standard, association - month",
"nickname": null,
"product": "prod_BV0emghsuiUJDn",
"statement_descriptor": null,
"tiers": null,
"tiers_mode": null,
"transform_usage": null,
"trial_period_days": null,
"usage_type": "licensed"
},
"quantity": 1,
"start": 1544542161,
"status": "active",
"tax_percent": null,
"trial_end": null,
"trial_start": null
}
http_version:
recorded_at: Tue, 11 Dec 2018 15:29:29 GMT
recorded_with: VCR 3.0.1 recorded_with: VCR 3.0.1