Class: Stripe::Source

Inherits:
APIResource show all
Extended by:
Gem::Deprecate, APIOperations::Create, APIOperations::NestedResource
Includes:
APIOperations::Save
Defined in:
lib/stripe/resources/source.rb

Overview

‘Source` objects allow you to accept a variety of payment methods. They represent a customer’s payment instrument, and can be used with the Stripe API just like a ‘Card` object: once chargeable, they can be charged, or can be attached to customers.

Stripe doesn’t recommend using the deprecated [Sources API](stripe.com/docs/api/sources). We recommend that you adopt the [PaymentMethods API](stripe.com/docs/api/payment_methods). This newer API provides access to our latest features and payment method types.

Related guides: [Sources API](stripe.com/docs/sources) and [Sources & Customers](stripe.com/docs/sources/customers).

Defined Under Namespace

Classes: AchCreditTransfer, AchDebit, AcssDebit, Alipay, AuBecsDebit, Bancontact, Card, CardPresent, CodeVerification, CreateParams, Eps, Giropay, Ideal, Klarna, Multibanco, Owner, P24, Paypal, Receiver, Redirect, RetrieveParams, SepaCreditTransfer, SepaDebit, Sofort, SourceOrder, ThreeDSecure, UpdateParams, VerifyParams, Wechat

Constant Summary collapse

OBJECT_NAME =
"source"

Constants inherited from StripeObject

Stripe::StripeObject::RESERVED_FIELD_NAMES

Instance Attribute Summary collapse

Attributes inherited from APIResource

#save_with_parent

Attributes inherited from StripeObject

#last_response

Class Method Summary collapse

Instance Method Summary collapse

Methods included from APIOperations::Create

create

Methods included from APIOperations::NestedResource

nested_resource_class_methods

Methods included from APIOperations::Save

included, #save

Methods inherited from APIResource

class_name, custom_method, #refresh, #request_stripe_object, resource_url, #resource_url, retrieve, save_nested_resource

Methods included from APIOperations::Request

included

Methods inherited from StripeObject

#==, #[], #[]=, additive_object_param, additive_object_param?, #as_json, construct_from, #deleted?, #dirty!, #each, #eql?, #hash, #initialize, #inspect, #keys, #marshal_dump, #marshal_load, protected_fields, #serialize_params, #to_hash, #to_json, #to_s, #update_attributes, #values

Constructor Details

This class inherits a constructor from Stripe::StripeObject

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Stripe::StripeObject

Instance Attribute Details

#ach_credit_transferObject (readonly)

Attribute for field ach_credit_transfer



1186
1187
1188
# File 'lib/stripe/resources/source.rb', line 1186

def ach_credit_transfer
  @ach_credit_transfer
end

#ach_debitObject (readonly)

Attribute for field ach_debit



1188
1189
1190
# File 'lib/stripe/resources/source.rb', line 1188

def ach_debit
  @ach_debit
end

#acss_debitObject (readonly)

Attribute for field acss_debit



1190
1191
1192
# File 'lib/stripe/resources/source.rb', line 1190

def acss_debit
  @acss_debit
end

#alipayObject (readonly)

Attribute for field alipay



1192
1193
1194
# File 'lib/stripe/resources/source.rb', line 1192

def alipay
  @alipay
end

#allow_redisplayObject (readonly)

This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to “unspecified”.



1194
1195
1196
# File 'lib/stripe/resources/source.rb', line 1194

def allow_redisplay
  @allow_redisplay
end

#amountObject (readonly)

A positive integer in the smallest currency unit (that is, 100 cents for $1.00, or 1 for ¥1, Japanese Yen being a zero-decimal currency) representing the total amount associated with the source. This is the amount for which the source will be chargeable once ready. Required for ‘single_use` sources.



1196
1197
1198
# File 'lib/stripe/resources/source.rb', line 1196

def amount
  @amount
end

#au_becs_debitObject (readonly)

Attribute for field au_becs_debit



1198
1199
1200
# File 'lib/stripe/resources/source.rb', line 1198

def au_becs_debit
  @au_becs_debit
end

#bancontactObject (readonly)

Attribute for field bancontact



1200
1201
1202
# File 'lib/stripe/resources/source.rb', line 1200

def bancontact
  @bancontact
end

#cardObject (readonly)

Attribute for field card



1202
1203
1204
# File 'lib/stripe/resources/source.rb', line 1202

def card
  @card
end

#card_presentObject (readonly)

Attribute for field card_present



1204
1205
1206
# File 'lib/stripe/resources/source.rb', line 1204

def card_present
  @card_present
end

#client_secretObject (readonly)

The client secret of the source. Used for client-side retrieval using a publishable key.



1206
1207
1208
# File 'lib/stripe/resources/source.rb', line 1206

def client_secret
  @client_secret
end

#code_verificationObject (readonly)

Attribute for field code_verification



1208
1209
1210
# File 'lib/stripe/resources/source.rb', line 1208

def code_verification
  @code_verification
end

#createdObject (readonly)

Time at which the object was created. Measured in seconds since the Unix epoch.



1210
1211
1212
# File 'lib/stripe/resources/source.rb', line 1210

def created
  @created
end

#currencyObject (readonly)

Three-letter [ISO code for the currency](stripe.com/docs/currencies) associated with the source. This is the currency for which the source will be chargeable once ready. Required for ‘single_use` sources.



1212
1213
1214
# File 'lib/stripe/resources/source.rb', line 1212

def currency
  @currency
end

#customerObject (readonly)

The ID of the customer to which this source is attached. This will not be present when the source has not been attached to a customer.



1214
1215
1216
# File 'lib/stripe/resources/source.rb', line 1214

def customer
  @customer
end

#epsObject (readonly)

Attribute for field eps



1216
1217
1218
# File 'lib/stripe/resources/source.rb', line 1216

def eps
  @eps
end

#flowObject (readonly)

The authentication ‘flow` of the source. `flow` is one of `redirect`, `receiver`, `code_verification`, `none`.



1218
1219
1220
# File 'lib/stripe/resources/source.rb', line 1218

def flow
  @flow
end

#giropayObject (readonly)

Attribute for field giropay



1220
1221
1222
# File 'lib/stripe/resources/source.rb', line 1220

def giropay
  @giropay
end

#idObject (readonly)

Unique identifier for the object.



1222
1223
1224
# File 'lib/stripe/resources/source.rb', line 1222

def id
  @id
end

#idealObject (readonly)

Attribute for field ideal



1224
1225
1226
# File 'lib/stripe/resources/source.rb', line 1224

def ideal
  @ideal
end

#klarnaObject (readonly)

Attribute for field klarna



1226
1227
1228
# File 'lib/stripe/resources/source.rb', line 1226

def klarna
  @klarna
end

#livemodeObject (readonly)

Has the value ‘true` if the object exists in live mode or the value `false` if the object exists in test mode.



1228
1229
1230
# File 'lib/stripe/resources/source.rb', line 1228

def livemode
  @livemode
end

#metadataObject (readonly)

Set of [key-value pairs](stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.



1230
1231
1232
# File 'lib/stripe/resources/source.rb', line 1230

def 
  @metadata
end

#multibancoObject (readonly)

Attribute for field multibanco



1232
1233
1234
# File 'lib/stripe/resources/source.rb', line 1232

def multibanco
  @multibanco
end

#objectObject (readonly)

String representing the object’s type. Objects of the same type share the same value.



1234
1235
1236
# File 'lib/stripe/resources/source.rb', line 1234

def object
  @object
end

#ownerObject (readonly)

Information about the owner of the payment instrument that may be used or required by particular source types.



1236
1237
1238
# File 'lib/stripe/resources/source.rb', line 1236

def owner
  @owner
end

#p24Object (readonly)

Attribute for field p24



1238
1239
1240
# File 'lib/stripe/resources/source.rb', line 1238

def p24
  @p24
end

#paypalObject (readonly)

Attribute for field paypal



1240
1241
1242
# File 'lib/stripe/resources/source.rb', line 1240

def paypal
  @paypal
end

#receiverObject (readonly)

Attribute for field receiver



1242
1243
1244
# File 'lib/stripe/resources/source.rb', line 1242

def receiver
  @receiver
end

#redirectObject (readonly)

Attribute for field redirect



1244
1245
1246
# File 'lib/stripe/resources/source.rb', line 1244

def redirect
  @redirect
end

#sepa_credit_transferObject (readonly)

Attribute for field sepa_credit_transfer



1246
1247
1248
# File 'lib/stripe/resources/source.rb', line 1246

def sepa_credit_transfer
  @sepa_credit_transfer
end

#sepa_debitObject (readonly)

Attribute for field sepa_debit



1248
1249
1250
# File 'lib/stripe/resources/source.rb', line 1248

def sepa_debit
  @sepa_debit
end

#sofortObject (readonly)

Attribute for field sofort



1250
1251
1252
# File 'lib/stripe/resources/source.rb', line 1250

def sofort
  @sofort
end

#source_orderObject (readonly)

Attribute for field source_order



1252
1253
1254
# File 'lib/stripe/resources/source.rb', line 1252

def source_order
  @source_order
end

#statement_descriptorObject (readonly)

Extra information about a source. This will appear on your customer’s statement every time you charge the source.



1254
1255
1256
# File 'lib/stripe/resources/source.rb', line 1254

def statement_descriptor
  @statement_descriptor
end

#statusObject (readonly)

The status of the source, one of ‘canceled`, `chargeable`, `consumed`, `failed`, or `pending`. Only `chargeable` sources can be used to create a charge.



1256
1257
1258
# File 'lib/stripe/resources/source.rb', line 1256

def status
  @status
end

#three_d_secureObject (readonly)

Attribute for field three_d_secure



1258
1259
1260
# File 'lib/stripe/resources/source.rb', line 1258

def three_d_secure
  @three_d_secure
end

#typeObject (readonly)

The ‘type` of the source. The `type` is a payment method, one of `ach_credit_transfer`, `ach_debit`, `alipay`, `bancontact`, `card`, `card_present`, `eps`, `giropay`, `ideal`, `multibanco`, `klarna`, `p24`, `sepa_debit`, `sofort`, `three_d_secure`, or `wechat`. An additional hash is included on the source with a name matching this value. It contains additional information specific to the [payment method](stripe.com/docs/sources) used.



1260
1261
1262
# File 'lib/stripe/resources/source.rb', line 1260

def type
  @type
end

#usageObject (readonly)

Either ‘reusable` or `single_use`. Whether this source should be reusable or not. Some source types may or may not be reusable by construction, while others may leave the option at creation. If an incompatible value is passed, an error will be returned.



1262
1263
1264
# File 'lib/stripe/resources/source.rb', line 1262

def usage
  @usage
end

#wechatObject (readonly)

Attribute for field wechat



1264
1265
1266
# File 'lib/stripe/resources/source.rb', line 1264

def wechat
  @wechat
end

Class Method Details

.create(params = {}, opts = {}) ⇒ Object

Creates a new source object.



1267
1268
1269
# File 'lib/stripe/resources/source.rb', line 1267

def self.create(params = {}, opts = {})
  request_stripe_object(method: :post, path: "/v1/sources", params: params, opts: opts)
end

.object_nameObject



21
22
23
# File 'lib/stripe/resources/source.rb', line 21

def self.object_name
  "source"
end

.update(id, params = {}, opts = {}) ⇒ Object

Updates the specified source by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

This request accepts the metadata and owner as arguments. It is also possible to update type specific information for selected payment methods. Please refer to our [payment method guides](stripe.com/docs/sources) for more detail.



1274
1275
1276
1277
1278
1279
1280
1281
# File 'lib/stripe/resources/source.rb', line 1274

def self.update(id, params = {}, opts = {})
  request_stripe_object(
    method: :post,
    path: format("/v1/sources/%<id>s", { id: CGI.escape(id) }),
    params: params,
    opts: opts
  )
end

.verify(source, params = {}, opts = {}) ⇒ Object

Verify a given source.



1294
1295
1296
1297
1298
1299
1300
1301
# File 'lib/stripe/resources/source.rb', line 1294

def self.verify(source, params = {}, opts = {})
  request_stripe_object(
    method: :post,
    path: format("/v1/sources/%<source>s/verify", { source: CGI.escape(source) }),
    params: params,
    opts: opts
  )
end

Instance Method Details

#detach(params = {}, opts = {}) ⇒ Object



1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
# File 'lib/stripe/resources/source.rb', line 1303

def detach(params = {}, opts = {})
  if !respond_to?(:customer) || customer.nil? || customer.empty?
    raise NotImplementedError,
          "This source object does not appear to be currently attached " \
          "to a customer object."
  end

  url = "#{Customer.resource_url}/#{CGI.escape(customer)}/sources" \
        "/#{CGI.escape(id)}"
  opts = Util.normalize_opts(opts)
  APIRequestor.active_requestor.execute_request_initialize_from(:delete, url, :api, self,
                                                                params: params, opts: opts)
end

#source_transactions(params = {}, opts = {}) ⇒ Object



1317
1318
1319
1320
1321
1322
1323
1324
# File 'lib/stripe/resources/source.rb', line 1317

def source_transactions(params = {}, opts = {})
  request_stripe_object(
    method: :get,
    path: resource_url + "/source_transactions",
    params: params,
    opts: opts
  )
end

#verify(params = {}, opts = {}) ⇒ Object

Verify a given source.



1284
1285
1286
1287
1288
1289
1290
1291
# File 'lib/stripe/resources/source.rb', line 1284

def verify(params = {}, opts = {})
  request_stripe_object(
    method: :post,
    path: format("/v1/sources/%<source>s/verify", { source: CGI.escape(self["id"]) }),
    params: params,
    opts: opts
  )
end