Skip to content

Commit 4b8b94d

Browse files
authored
Merge pull request #719 from recurly/v3-v2021-02-25-15594137202
Generated Latest Changes for v2021-02-25
2 parents 72495ae + d13c2ba commit 4b8b94d

File tree

3 files changed

+195
-15
lines changed

3 files changed

+195
-15
lines changed

openapi/api.yaml

Lines changed: 128 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2793,6 +2793,97 @@ paths:
27932793
schema:
27942794
"$ref": "#/components/schemas/Error"
27952795
x-code-samples: []
2796+
"/accounts/{account_id}/billing_infos/{billing_info_id}/verify":
2797+
post:
2798+
tags:
2799+
- billing_infos
2800+
operationId: verify_billing_infos
2801+
summary: Verify a billing information's credit card
2802+
parameters:
2803+
- "$ref": "#/components/parameters/account_id"
2804+
- "$ref": "#/components/parameters/billing_info_id"
2805+
requestBody:
2806+
content:
2807+
application/json:
2808+
schema:
2809+
"$ref": "#/components/schemas/BillingInfoVerify"
2810+
required: false
2811+
responses:
2812+
'200':
2813+
description: Transaction information from verify.
2814+
content:
2815+
application/json:
2816+
schema:
2817+
"$ref": "#/components/schemas/Transaction"
2818+
'404':
2819+
description: Billing information not found, or incorrect site or account
2820+
ID.
2821+
content:
2822+
application/json:
2823+
schema:
2824+
"$ref": "#/components/schemas/Error"
2825+
default:
2826+
description: Unexpected error.
2827+
content:
2828+
application/json:
2829+
schema:
2830+
"$ref": "#/components/schemas/Error"
2831+
'422':
2832+
description: Invalid billing information, or error running the verification
2833+
transaction.
2834+
content:
2835+
application/json:
2836+
schema:
2837+
"$ref": "#/components/schemas/ErrorMayHaveTransaction"
2838+
x-code-samples: []
2839+
"/accounts/{account_id}/billing_infos/{billing_info_id}/verify_cvv":
2840+
post:
2841+
tags:
2842+
- billing_infos
2843+
operationId: verify_billing_infos_cvv
2844+
summary: Verify a billing information's credit card cvv
2845+
parameters:
2846+
- "$ref": "#/components/parameters/account_id"
2847+
- "$ref": "#/components/parameters/billing_info_id"
2848+
requestBody:
2849+
content:
2850+
application/json:
2851+
schema:
2852+
"$ref": "#/components/schemas/BillingInfoVerifyCVV"
2853+
responses:
2854+
'200':
2855+
description: Transaction information from verify.
2856+
content:
2857+
application/json:
2858+
schema:
2859+
"$ref": "#/components/schemas/Transaction"
2860+
'404':
2861+
description: Billing information not found, or incorrect site or account
2862+
ID.
2863+
content:
2864+
application/json:
2865+
schema:
2866+
"$ref": "#/components/schemas/Error"
2867+
default:
2868+
description: Unexpected error.
2869+
content:
2870+
application/json:
2871+
schema:
2872+
"$ref": "#/components/schemas/Error"
2873+
'422':
2874+
description: Invalid billing information, or error running the verification
2875+
transaction.
2876+
content:
2877+
application/json:
2878+
schema:
2879+
"$ref": "#/components/schemas/ErrorMayHaveTransaction"
2880+
'429':
2881+
description: Too many CVV verification attempts.
2882+
content:
2883+
application/json:
2884+
schema:
2885+
"$ref": "#/components/schemas/Error"
2886+
x-code-samples: []
27962887
"/accounts/{account_id}/coupon_redemptions":
27972888
get:
27982889
tags:
@@ -10830,7 +10921,7 @@ paths:
1083010921
}
1083110922
- lang: Go
1083210923
source: "planReq := &recurly.PlanCreate{\n\tCode: &planCode,\n\tName: recurly.String(\"Monthly
10833-
Coffee Subscription\"),\n\tCurrencies: []recurly.PlanPricingCreate{\n\t\t{\n\t\t\tCurrency:
10924+
Coffee Subscription\"),\n\tCurrencies: &[]recurly.PlanPricingCreate{\n\t\t{\n\t\t\tCurrency:
1083410925
\ recurly.String(\"USD\"),\n\t\t\tUnitAmount: recurly.Float(10000),\n\t\t},\n\t},\n}\n\nplan,
1083510926
err := client.CreatePlan(planReq)\nif e, ok := err.(*recurly.Error); ok
1083610927
{\n\tif e.Type == recurly.ErrorTypeValidation {\n\t\tfmt.Printf(\"Failed
@@ -11499,7 +11590,7 @@ paths:
1149911590
}
1150011591
- lang: Go
1150111592
source: "addOnReq := &recurly.AddOnCreate{\n\tCode: &addOnCode,\n\tName: recurly.String(\"Fresh
11502-
beans shipped monthly\"),\n\tCurrencies: []recurly.AddOnPricingCreate{\n\t\t{\n\t\t\tCurrency:
11593+
beans shipped monthly\"),\n\tCurrencies: &[]recurly.AddOnPricingCreate{\n\t\t{\n\t\t\tCurrency:
1150311594
\ recurly.String(\"USD\"),\n\t\t\tUnitAmount: recurly.Float(10),\n\t\t},\n\t},\n}\n\nplanAddOn,
1150411595
err := client.CreatePlanAddOn(planID, addOnReq)\nif e, ok := err.(*recurly.Error);
1150511596
ok {\n\tif e.Type == recurly.ErrorTypeValidation {\n\t\tfmt.Printf(\"Failed
@@ -15274,7 +15365,7 @@ paths:
1527415365
- lang: Go
1527515366
source: "purchaseReq := &recurly.PurchaseCreate{\n\tCurrency: recurly.String(\"USD\"),\n\tAccount:
1527615367
&recurly.AccountPurchase{\n\t\tCode: recurly.String(accountCode),\n\t},\n\tSubscriptions:
15277-
[]recurly.SubscriptionPurchase{\n\t\t{\n\t\t\tPlanCode: recurly.String(planCode),\n\t\t\tNextBillDate:
15368+
&[]recurly.SubscriptionPurchase{\n\t\t{\n\t\t\tPlanCode: recurly.String(planCode),\n\t\t\tNextBillDate:
1527815369
recurly.Time(time.Date(2078, time.November, 10, 23, 0, 0, 0, time.UTC)),\n\t\t},\n\t},\n\tShipping:
1527915370
&recurly.ShippingPurchase{\n\t\tAddressId: recurly.String(shippingAddressID),\n\t},\n}\n\ncollection,
1528015371
err := client.CreatePurchase(purchaseReq)\nif e, ok := err.(*recurly.Error);
@@ -15508,7 +15599,7 @@ paths:
1550815599
- lang: Go
1550915600
source: "purchaseReq := &recurly.PurchaseCreate{\n\tCurrency: recurly.String(\"USD\"),\n\tAccount:
1551015601
&recurly.AccountPurchase{\n\t\tCode: recurly.String(account.Code),\n\t},\n\tSubscriptions:
15511-
[]recurly.SubscriptionPurchase{\n\t\t{\n\t\t\tPlanCode: recurly.String(plan.Code),\n\t\t\tNextBillDate:
15602+
&[]recurly.SubscriptionPurchase{\n\t\t{\n\t\t\tPlanCode: recurly.String(plan.Code),\n\t\t\tNextBillDate:
1551215603
recurly.Time(time.Date(2078, time.November, 10, 23, 0, 0, 0, time.UTC)),\n\t\t},\n\t},\n\tShipping:
1551315604
&recurly.ShippingPurchase{\n\t\tAddressId: recurly.String(shippingAddressID),\n\t},\n}\ncollection,
1551415605
err := client.PreviewPurchase(purchaseReq)\nif e, ok := err.(*recurly.Error);
@@ -15776,12 +15867,12 @@ paths:
1577615867
var_dump($e);
1577715868
}
1577815869
- lang: Go
15779-
source: "purchaseReq := &recurly.PurchaseCreate{\n\tCurrency: recurly.String(\"EUR\"),\n\tAccount:
15870+
source: "purchaseReq := &recurly.PurchaseCreate{\n\tCurrency: recurly.String(\"USD\"),\n\tAccount:
1578015871
&recurly.AccountPurchase{\n\t\tCode: recurly.String(accountCode),\n\t\tEmail:
1578115872
recurly.String(\"[email protected]\"),\n\t\tBillingInfo: &recurly.BillingInfoCreate{\n\t\t\tFirstName:
1578215873
\ recurly.String(\"Benjamin\"),\n\t\t\tLastName: recurly.String(\"Du
1578315874
Monde\"),\n\t\t\tOnlineBankingPaymentType: recurly.String(\"ideal\"),\n\t\t},\n\t},\n\tLineItems:
15784-
[]recurly.LineItemCreate{\n\t\t{\n\t\t\tCurrency: recurly.String(\"EUR\"),\n\t\t\tUnitAmount:
15875+
&[]recurly.LineItemCreate{\n\t\t{\n\t\t\tCurrency: recurly.String(\"USD\"),\n\t\t\tUnitAmount:
1578515876
recurly.Float(1000),\n\t\t\tType: recurly.String(\"charge\"),\n\t\t},\n\t},\n}\ncollection,
1578615877
err := client.CreatePendingPurchase(purchaseReq)\nif e, ok := err.(*recurly.Error);
1578715878
ok {\n\tif e.Type == recurly.ErrorTypeValidation {\n\t\tfmt.Printf(\"Failed
@@ -18896,6 +18987,8 @@ components:
1889618987
amazon_billing_agreement_id:
1889718988
type: string
1889818989
title: Amazon billing agreement ID
18990+
description: Only supported on Amazon V1. For Amazon V2, use token_id with
18991+
Recurly.js.
1889918992
paypal_billing_agreement_id:
1890018993
type: string
1890118994
title: PayPal billing agreement ID
@@ -18999,12 +19092,27 @@ components:
1899919092
type: string
1900019093
description: An identifier for a specific payment gateway.
1900119094
maxLength: 13
19095+
three_d_secure_action_result_token_id:
19096+
type: string
19097+
description: A token generated by Recurly.js after completing a 3-D Secure
19098+
device fingerprinting or authentication challenge.
1900219099
BillingInfoVerifyCVV:
1900319100
type: object
1900419101
properties:
1900519102
verification_value:
1900619103
type: string
1900719104
description: Unique security code for a credit card.
19105+
gateway_code:
19106+
type: string
19107+
description: An identifier for a specific payment gateway.
19108+
maxLength: 13
19109+
three_d_secure_action_result_token_id:
19110+
type: string
19111+
description: A token generated by Recurly.js after completing a 3-D Secure
19112+
device fingerprinting or authentication challenge.
19113+
token_id:
19114+
type: string
19115+
description: A token [generated by Recurly.js](https://recurly.com/developers/reference/recurly-js/#getting-a-token).
1900819116
Coupon:
1900919117
type: object
1901019118
properties:
@@ -20315,6 +20423,11 @@ components:
2031520423
title: Subtotal
2031620424
description: The summation of charges and credits, before discounts and
2031720425
taxes.
20426+
subtotal_after_discount:
20427+
type: number
20428+
format: float
20429+
title: Subtotal After Discount
20430+
description: The summation of charges and credits, after discounts applied.
2031820431
tax:
2031920432
type: number
2032020433
format: float
@@ -20958,7 +21071,7 @@ components:
2095821071
type: number
2095921072
format: float
2096021073
title: Total after discounts and taxes
20961-
description: "`(quantity * unit_amount) - (discount + tax)`"
21074+
description: "`(quantity * unit_amount) - discount + tax`"
2096221075
description:
2096321076
type: string
2096421077
title: Description
@@ -21327,12 +21440,12 @@ components:
2132721440
origin:
2132821441
title: Origin
2132921442
description: Origin `external_gift_card` is allowed if the Gift Cards feature
21330-
is enabled on your site and `type` is `credit`. Set this value in order
21331-
to track gift card credits from external gift cards (like InComm). It
21332-
also skips billing information requirements. Origin `prepayment` is only
21333-
allowed if `type` is `charge` and `tax_exempt` is left blank or set to
21334-
true. This origin creates a charge and opposite credit on the account
21335-
to be used for future invoices.
21443+
is enabled on your site, `type` is `credit` and `tax_exempt` is `true`
21444+
if you are using taxes. Set this value in order to track gift card credits
21445+
from external gift cards (like InComm). It also skips billing information
21446+
requirements. Origin `prepayment` is only allowed if `type` is `charge`
21447+
and `tax_exempt` is left blank or set to true. This origin creates a
21448+
charge and opposite credit on the account to be used for future invoices.
2133621449
"$ref": "#/components/schemas/LineItemCreateOriginEnum"
2133721450
custom_fields:
2133821451
"$ref": "#/components/schemas/CustomFields"
@@ -24152,7 +24265,8 @@ components:
2415224265
description: Represents the billing cycle where a ramp interval starts.
2415324266
default: 1
2415424267
unit_amount:
24155-
type: integer
24268+
type: number
24269+
format: float
2415624270
description: Represents the price for the ramp interval.
2415724271
SubscriptionRampIntervalResponse:
2415824272
type: object

recurly/client.py

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -647,6 +647,69 @@ def remove_a_billing_info(self, account_id, billing_info_id, **options):
647647
)
648648
return self._make_request("DELETE", path, None, **options)
649649

650+
def verify_billing_infos(self, account_id, billing_info_id, **options):
651+
"""Verify a billing information's credit card
652+
653+
Parameters
654+
----------
655+
656+
account_id : str
657+
Account ID or code. For ID no prefix is used e.g. `e28zov4fw0v2`. For code use prefix `code-`, e.g. `code-bob`.
658+
billing_info_id : str
659+
Billing Info ID. Can ONLY be used for sites utilizing the Wallet feature.
660+
661+
Keyword Arguments
662+
-----------------
663+
664+
headers : dict
665+
Extra HTTP headers to send with the request.
666+
params : dict
667+
Query Parameters.
668+
params.body : BillingInfoVerify
669+
The body of the request.
670+
671+
Returns
672+
-------
673+
674+
Transaction
675+
Transaction information from verify.
676+
"""
677+
body = options.pop("body", None)
678+
path = self._interpolate_path(
679+
"/accounts/%s/billing_infos/%s/verify", account_id, billing_info_id
680+
)
681+
return self._make_request("POST", path, body, **options)
682+
683+
def verify_billing_infos_cvv(self, account_id, billing_info_id, body, **options):
684+
"""Verify a billing information's credit card cvv
685+
686+
Parameters
687+
----------
688+
689+
account_id : str
690+
Account ID or code. For ID no prefix is used e.g. `e28zov4fw0v2`. For code use prefix `code-`, e.g. `code-bob`.
691+
billing_info_id : str
692+
Billing Info ID. Can ONLY be used for sites utilizing the Wallet feature.
693+
body : dict
694+
The request body. It should follow the schema of BillingInfoVerifyCVV.
695+
696+
Keyword Arguments
697+
-----------------
698+
699+
headers : dict
700+
Extra HTTP headers to send with the request.
701+
702+
Returns
703+
-------
704+
705+
Transaction
706+
Transaction information from verify.
707+
"""
708+
path = self._interpolate_path(
709+
"/accounts/%s/billing_infos/%s/verify_cvv", account_id, billing_info_id
710+
)
711+
return self._make_request("POST", path, body, **options)
712+
650713
def list_account_coupon_redemptions(self, account_id, **options):
651714
"""List the coupon redemptions for an account
652715

recurly/resources.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1602,6 +1602,8 @@ class Invoice(Resource):
16021602
If the invoice is charging or refunding for one or more subscriptions, these are their IDs.
16031603
subtotal : float
16041604
The summation of charges and credits, before discounts and taxes.
1605+
subtotal_after_discount : float
1606+
The summation of charges and credits, after discounts applied.
16051607
tax : float
16061608
The total tax on this invoice.
16071609
tax_info : TaxInfo
@@ -1660,6 +1662,7 @@ class Invoice(Resource):
16601662
"state": str,
16611663
"subscription_ids": list,
16621664
"subtotal": float,
1665+
"subtotal_after_discount": float,
16631666
"tax": float,
16641667
"tax_info": "TaxInfo",
16651668
"terms_and_conditions": str,
@@ -1805,7 +1808,7 @@ class LineItem(Resource):
18051808
add_on_id : str
18061809
If the line item is a charge or credit for an add-on this is its ID.
18071810
amount : float
1808-
`(quantity * unit_amount) - (discount + tax)`
1811+
`(quantity * unit_amount) - discount + tax`
18091812
avalara_service_type : int
18101813
Used by Avalara for Communications taxes. The transaction type in combination with the service type describe how the line item is taxed. Refer to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types) for more available t/s types.
18111814
avalara_transaction_type : int

0 commit comments

Comments
 (0)