1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 try:
31
32 from urllib.request import Request, urlopen
33 from urllib.parse import quote
34 from urllib.error import URLError, HTTPError
35 except ImportError:
36
37 from urllib2 import Request, urlopen, quote, URLError, HTTPError
38
39 import sys
40 import base64
41 import json
42 import hmac
43 import hashlib
44 import time
45 import random
46
47
48 from simplify.constants import Constants
49 from simplify.domain import DomainFactory, Domain
50
51
52
53
54
55 HTTP_SUCCESS = 200
56 HTTP_REDIRECTED = 302
57 HTTP_UNAUTHORIZED = 401
58 HTTP_NOT_FOUND = 404
59 HTTP_NOT_ALLOWED = 405
60 HTTP_BAD_REQUEST = 400
61
62 HTTP_METHOD_POST = "POST"
63 HTTP_METHOD_PUT = "PUT"
64 HTTP_METHOD_GET = "GET"
65 HTTP_METHOD_DELETE = "DELETE"
66
67
68
69
70
71
72
73 public_key = None
74 private_key = None
75 api_base_sandbox_url = Constants.api_base_sandbox_url
76 api_base_live_url = Constants.api_base_live_url
77 oauth_base_url = Constants.oauth_base_url
78 user_agent = None
86
87 if criteria == None:
88 return ''
89
90 query_string = []
91 if 'max' in criteria:
92 query_string.append("max=" + str(criteria['max']))
93
94 if 'offset' in criteria:
95 query_string.append("offset=" + str(criteria['offset']))
96
97 if 'sorting' in criteria:
98 for key, value in list(criteria['sorting'].items()):
99 query_string.append("sorting[" + key + "]=" + quote(str(value)))
100
101 if 'filter' in criteria:
102 for key, value in list(criteria['filter'].items()):
103 query_string.append("filter[" + key + "]=" + quote(str(value)))
104
105 return '&'.join(query_string)
106
108
109 if response_code == HTTP_REDIRECTED:
110 raise BadRequestError("Unexpected response code returned from the API, have you got the correct URL?", response_code, response_body)
111 elif response_code == HTTP_BAD_REQUEST:
112 raise BadRequestError("Bad request", response_code, response_body)
113
114 elif response_code == HTTP_UNAUTHORIZED:
115 raise AuthenticationError("You are not authorized to make this request. Are you using the correct API keys?", response_code, response_body)
116
117 elif response_code == HTTP_NOT_FOUND:
118 raise ObjectNotFoundError("Object not found", response_code, response_body)
119
120 elif response_code == HTTP_NOT_ALLOWED:
121 raise NotAllowedError("Operation not allowed", response_code, response_body)
122
123 elif response_code < 500:
124 raise BadRequestError("Bad request", response_code, response_body)
125
126 else:
127 raise SysError("An unexpected error has been raised. Looks like there's something wrong at our end." , response_code, response_body)
128
135
136 """
137 Holds authentication information used when accessing the API.
138
139 @ivar public_key: Public key used to access the API.
140 @ivar private_key: Private key used to access the API.
141 @ivar access_token: OAuth token used to access the API.
142 """
143
145 """
146 Constructs an Authentication object.
147
148 @param kwargs: contains initial values for the instance variables. Valid keywords
149 are public_key, private_key and access_token. If no value is passed for
150 public_key or its value is None then simplify.public_key is used. If no
151 value is passed for private_key or its value is None then simplify.private_key
152 is used.
153 @return: an Authentication object
154 """
155
156 self.public_key = kwargs['public_key'] if 'public_key' in kwargs else None
157 if self.public_key == None:
158 global public_key
159 self.public_key = public_key
160
161 self.private_key = kwargs['private_key'] if 'private_key' in kwargs else None
162 if self.private_key == None:
163 global private_key
164 self.private_key = private_key
165
166 self.access_token = kwargs['access_token'] if 'access_token' in kwargs else None
167
170 """
171 OAuth access token.
172
173 @ivar access_token: Access token used when making an API call authenticated using OAuth
174 @ivar refresh_token: Token used when refreshing an access token.
175 @ivar expires_in: Number of seconds from the time the token was created till it expires.
176 """
177
178 @staticmethod
179 - def create(auth_code, redirect_uri, *auth_args):
180 """
181 Creates an AccessToken object.
182
183 @param auth_codes: OAuth authentication code.
184 @param redirect_uri: URI to which OAuth requests are redirected.
185 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
186 @return: an AccessToken object object
187 """
188
189 props = {
190 'grant_type' : 'authorization_code',
191 'code' : auth_code,
192 'redirect_uri' : redirect_uri
193 }
194
195 h = PaymentsApi().send_auth_request(props, 'token', PaymentsApi.create_auth_object(auth_args))
196 return AccessToken(h)
197
198
200 """
201 Refreshes an AccessToken object. If successful the access_token, refresh_token and expires_in attributes are updated.
202
203 @param auth_args: an Authentication object used for the API call. If no value is passed the global keys simplify.public_key and simplify.private_key are used.
204 """
205
206 rt = self['refresh_token']
207 if not rt:
208 raise IllegalArgumentError("Cannot refresh access token; refresh token is invalid.")
209
210 props = {
211 'grant_type' : 'refresh_token',
212 'refresh_token' : rt
213 }
214
215 h = PaymentsApi().send_auth_request(props, 'token', PaymentsApi.create_auth_object(auth_args))
216 self.__dict__.update(h)
217
218
219 - def revoke(self, *auth_args):
220 """
221 Revokes an AccessToken object.
222
223 @param auth_args: an Authentication object used for the API call. If no value is passed the global keys simplify.public_key and simplify.private_key are used.
224 """
225
226 token = self['access_token']
227 if not token:
228 raise IllegalArgumentError("Cannot revoke access token; access token is invalid.")
229
230 props = {
231 'token' : token,
232 'refresh_token' : token
233 }
234
235 h = PaymentsApi().send_auth_request(props, 'revoke', PaymentsApi.create_auth_object(auth_args))
236 self.__dict__.clear()
237
238
239
240
241
242
243
244 -class ApiError(Exception):
245 """
246 Base class for all API errors.
247
248 @ivar status: HTTP status code (or None if there is no status).
249 @ivar reference: reference for the error (or None if there is no reference).
250 @ivar error_code: string code for the error (or None if there is no error code).
251 @ivar message: string description of the error (or None if there is no message).
252 @ivar error_data: dictionary containing all the error data (or None if there is no data)
253 """
254
255 - def __init__(self, message=None, status=500, error_data=None):
256 self.status = status
257
258 self.error_data = json.loads(error_data) if error_data else {}
259 err = self.error_data['error'] if 'error' in self.error_data else {}
260
261 self.reference = self.error_data['reference'] if 'reference' in self.error_data else None
262 self.error_code = err['code'] if 'code' in err else None
263 self.message = err['message'] if 'code' in err else message
264 super(ApiError, self).__init__(self.message)
265
266
268 """
269 Returns a string describing the error.
270 @return: a string describing the error.
271 """
272 return "{0}: \"{1}\" (status: {2}, error code: {3}, reference: {4})".format(self.__class__.__name__, self.message, self.status, self.error_code, self.reference)
273
276 """
277 Error raised when passing illegal arguments.
278 """
279 pass
280
282 """
283 Error raised when there are communication errors contacting the API.
284 """
285 pass
286
288 """
289 Error raised where there are problems authentication a request.
290 """
291 pass
292
294
295 """
296 Error raised when the request contains errors.
297
298 @ivar has_field_errors: boolean indicating whether there are field errors.
299 @ivar field_errors: a list containing all field errors.
300 """
301
303 """
304 Represents a single error in a field of data sent in a request to the API.
305
306 @ivar field_name: the name of the field with the error.
307 @ivar error_code: a string code for the error.
308 @ivar message: a string description of the error.
309 """
311 self.field_name = error_data['field']
312 self.error_code = error_data['code']
313 self.message = error_data['message']
314
316 return "Field error: {0} \"{1}\" ({2})".format(self.field_name, self.message, self.error_code)
317
318
319 - def __init__(self, message, status = 400, error_data = None):
320 super(BadRequestError, self).__init__(message, status, error_data)
321
322 self.field_errors = []
323 err = self.error_data['error'] if 'error' in self.error_data else {}
324 field_errors = err['fieldErrors'] if 'fieldErrors' in err else []
325 for field_error in field_errors:
326 self.field_errors.append(BadRequestError.FieldError(field_error))
327 self.has_field_errors = len(self.field_errors) > 0
328
330 """
331 Returns a string describing the error.
332 @return: a string describing the error.
333 """
334 txt = ApiError.describe(self)
335 for field_error in self.field_errors:
336 txt = txt + "\n" + str(field_error)
337 return txt + "\n"
338
340 """
341 Error raised when a requested object cannot be found.
342 """
343 pass
344
346 """
347 Error raised when a request was not allowed.
348 """
349 pass
350
352 """
353 Error raised when there was a system error processing a request.
354 """
355 pass
356
357
358
359
360
361
362 -class Http:
365
366 - def request(self, auth, url, method, params = None):
367
368 if params is None:
369 params = {}
370
371 jws_signature = Jws.encode(url, auth, params, method == HTTP_METHOD_POST or method == HTTP_METHOD_PUT)
372
373 if method == HTTP_METHOD_POST:
374 request = Request(url, jws_signature)
375 request.add_header("Content-Type", "application/json")
376
377 elif method == HTTP_METHOD_PUT:
378 request = Request(url, jws_signature)
379 request.add_header("Content-Type", "application/json")
380
381 elif method == HTTP_METHOD_DELETE:
382 request = Request(url)
383 request.add_header("Authorization", b"JWS " + jws_signature)
384 request.get_method = lambda: HTTP_METHOD_DELETE
385
386 elif method == HTTP_METHOD_GET:
387 request = Request(url)
388 request.add_header("Authorization", b"JWS " + jws_signature)
389
390 else:
391 raise ApiConnectionError("HTTP Method {0} not recognised".format(method))
392
393 request.add_header("Accept", "application/json")
394 global user_agent
395
396 user_agent_hdr = "Python-SDK/" + Constants.version
397 if user_agent != None:
398 user_agent_hdr = user_agent_hdr + " " + user_agent
399 request.add_header("User-Agent", user_agent_hdr)
400
401 try:
402 response = urlopen(request)
403 response_body = response.read()
404 response_code = response.code
405 except HTTPError as err:
406 response_body = err.read()
407 response_code = err.code
408 except URLError as err:
409 msg = "Looks like there's a problem connecting to the API endpoint: {0}\nError: {1}".format(url, str(err))
410 raise ApiConnectionError(msg)
411
412 return response_body, response_code
413
414
416
417 jws_signature = Jws.auth_encode(url, auth, params)
418
419 request = Request(url, jws_signature)
420 request.add_header("Content-Type", "application/json")
421 request.add_header("Accept", "application/json")
422
423 global user_agent
424 user_agent_hdr = "Python-SDK/" + Constants.version
425 if user_agent != None:
426 user_agent_hdr = user_agent_hdr + " " + user_agent
427 request.add_header("User-Agent", user_agent_hdr)
428
429 try:
430 response = urlopen(request)
431 response_body = response.read()
432 response_code = response.code
433 except HTTPError as err:
434 response_body = err.read()
435 response_code = err.code
436 except URLError as err:
437 msg = "Looks like there's a problem connecting to the API endpoint: {0}\nError: {1}".format(url, str(err))
438 raise ApiConnectionError(msg)
439
440 return response_body, response_code
441
442
443
444
445
446
447 -class Jws:
448
449 NUM_HEADERS = 7
450 ALGORITHM = 'HS256'
451 TYPE = 'JWS'
452 HDR_URI = 'api.simplifycommerce.com/uri'
453 HDR_TIMESTAMP = 'api.simplifycommerce.com/timestamp'
454 HDR_NONCE = 'api.simplifycommerce.com/nonce'
455 HDR_TOKEN = "api.simplifycommerce.com/token"
456 HDR_UNAME = 'uname'
457 HDR_ALGORITHM = 'alg'
458 HDR_TYPE = 'typ'
459 HDR_KEY_ID = 'kid'
460 TIMESTAMP_MAX_DIFF = 1000 * 60 * 5
461
464
465 @staticmethod
466 - def encode(url, auth, params, has_payload):
467
468 jws_hdr = {'typ': Jws.TYPE,
469 'alg': Jws.ALGORITHM,
470 'kid': auth.public_key,
471 Jws.HDR_URI: url,
472 Jws.HDR_TIMESTAMP: int(round(time.time() * 1000)),
473 Jws.HDR_NONCE: str(random.randint(1, 10*1000))}
474
475 token = auth.access_token
476 if token:
477 jws_hdr[Jws.HDR_TOKEN] = token
478
479 encoded_json = Jws().encode_json(jws_hdr)
480 header = base64.urlsafe_b64encode(encoded_json)
481 header = header.rstrip(b'=')
482 payload = b''
483 if has_payload:
484 payload = Jws().encode_json(params)
485 payload = base64.urlsafe_b64encode(payload).rstrip(b'=')
486
487 msg = header + b'.' + payload
488 signature = Jws().sign(auth.private_key, msg)
489 return msg + b'.' + signature
490
491
492 @staticmethod
494
495 jws_hdr = {'typ': Jws.TYPE,
496 'alg': Jws.ALGORITHM,
497 'kid': auth.public_key,
498 Jws.HDR_URI: url,
499 Jws.HDR_TIMESTAMP: int(round(time.time() * 1000)),
500 Jws.HDR_NONCE: str(random.randint(1, 10*1000))}
501
502 encoded_json = Jws().encode_json(jws_hdr)
503 header = base64.urlsafe_b64encode(encoded_json).rstrip(b'=')
504
505
506 payload = '&'.join([ "%s=%s" % (k,v) for k,v in list(params.items())])
507 payload = base64.urlsafe_b64encode(payload).restrip(b'=')
508
509 msg = header + b'.' + payload
510 signature = Jws().sign(auth.private_key, msg)
511 return msg + b'.' + signature
512
513
514 @staticmethod
551
552 - def sign(self, private_api_key, msg):
553 decoded_private_api_key = Jws().safe_base64_decode(private_api_key)
554 signature = hmac.new(decoded_private_api_key, msg, hashlib.sha256).digest()
555 return base64.urlsafe_b64encode(signature).rstrip(b'=')
556
557 - def verify(self, header, url, public_api_key):
605
607
608 length = len(url) % 4
609 if length == 2:
610 return base64.urlsafe_b64decode(url + b'==')
611 if length == 3:
612 return base64.urlsafe_b64decode(url + b'=')
613
614 return base64.urlsafe_b64decode(url)
615
617
618 try:
619 return json.dumps(json_str).encode('utf-8')
620 except Exception:
621 raise ApiError("Invalid format for JSON request")
622
629
630
633
634 @staticmethod
661
662
663 @staticmethod
674
675
676
677 @staticmethod
678 - def create(object_type, auth_args, params):
685
686 @staticmethod
687 - def list(object_type, auth_args, criteria):
697
698 @staticmethod
699 - def find(object_type, auth_args, object_id):
709
710 @staticmethod
711 - def update(object_type, auth_args, object_id, params):
721
722 @staticmethod
723 - def delete(object_type, auth_args, object_id):
733
734 - def decode(self, auth_args, params):
740
741
742 - def execute(self, object_type, auth, url_suffix, method, params = None):
776
777
779
780 PaymentsApi.check_auth(auth)
781
782 http = Http()
783
784 global oauth_base_url
785
786 url = oauth_base_url + "/" + context
787
788 response_body, response_code = http.auth_request(auth, url, props)
789
790
791 try:
792 response = json.loads(response_body)
793 except Exception:
794 raise SysError("Invalid response format returned. Have you got the correct URL {0} \n HTTP Status: {1}".format(url, response_code))
795
796 if response_code == HTTP_SUCCESS:
797 return response
798 elif response_code == HTTP_REDIRECTED:
799 raise BadRequestError("", response_code)
800 elif response_code >= HTTP_BAD_REQUEST:
801 error_code = response['error']
802 error_desc = response['error_description']
803 if error_code == 'invalid_request':
804 raise BadRequestError("", response_code, self.get_oauth_error("Error during OAuth request", error_code, error_desc))
805 elif error_code == 'access_denied':
806 raise AuthenticationError("", response_code, self.get_oauth_error("Access denied for OAuth request", error_code, error_desc))
807 elif error_code == 'invalid_client':
808 raise AuthenticationError("", response_code, self.get_oauth_error("Invalid client ID in OAuth request", error_code, error_desc))
809 elif error_code == 'unauthorized_client':
810 raise AuthenticationError("", response_code, self.get_oauth_error("Unauthorized client in OAuth request", error_code, error_desc))
811 elif error_code == 'unsupported_grant_type':
812 raise BadRequestError("", response_code, self.get_oauth_error("Unsupported grant type in OAuth request", error_code, error_desc))
813 elif error_code == 'invalid_scope':
814 raise BadRequestError("", response_code, self.get_oauth_error("Invalid scope in OAuth request", error_code, error_desc))
815 else:
816 raise BadRequestError("", e.response_code, self.get_oauth_error("Unknown OAuth error", error_code, error_desc))
817 end
818 elif response_code < 500:
819 raise BadRequestError("Bad request", response_code, {})
820 else:
821 raise SysError("Bad request", response_code, {})
822
823
825 return """{"error" : {"code" : "oauth_error", "message" : "%s, error code '%s', description '%s'" }}""" % (msg, error_code, error_desc)
826
827
828 @classmethod
830
831 url = object_type
832 if object_id:
833 url = "{0}/{1}".format(url, object_id)
834
835 return url
836
837
838
839
840
841
842
843
844 -class Event(Domain):
845
846 """
847 A Event object.
848 """
849
850 @staticmethod
851 - def create(params, *auth_args):
852
853 """
854 Create an Event object.
855 @param params: a dict of parameters; valid keys are:
856 - C{payload}: The raw JWS message payload. B{required}
857 - C{url}: The URL for the webhook. If present it must match the URL registered for the webhook.
858 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
859 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
860 @return: an Event object
861 """
862
863 obj = PaymentsApi().decode(auth_args, params)
864
865 if not 'event' in obj:
866 raise ApiError("Incorrect data in webhook event")
867
868 return DomainFactory.factory('event', obj['event'])
869
871 """
872 A Authorization object.
873 """
874
875
876 @staticmethod
877 - def create(params, *auth_args):
878 """
879 Creates an Authorization object
880 @param params: a dict of parameters; valid keys are:
881 - C{amount}: Amount of the payment (in the smallest unit of your currency). Example: 100 = $1.00 B{required }
882 - C{card => addressCity}: City of the cardholder. [max length: 50, min length: 2]
883 - C{card => addressCountry}: Country code (ISO-3166-1-alpha-2 code) of residence of the cardholder. [max length: 2, min length: 2]
884 - C{card => addressLine1}: Address of the cardholder. [max length: 255]
885 - C{card => addressLine2}: Address of the cardholder if needed. [max length: 255]
886 - C{card => addressState}: State of residence of the cardholder. State abbreviations should be used. [max length: 255]
887 - C{card => addressZip}: Postal code of the cardholder. The postal code size is between 5 and 9 characters in length and only contains numbers or letters. [max length: 32]
888 - C{card => cvc}: CVC security code of the card. This is the code on the back of the card. Example: 123
889 - C{card => expMonth}: Expiration month of the card. Format is MM. Example: January = 01 [min value: 1, max value: 12]
890 - C{card => expYear}: Expiration year of the card. Format is YY. Example: 2013 = 13 [min value: 0, max value: 99]
891 - C{card => name}: Name as it appears on the card. [max length: 50, min length: 2]
892 - C{card => number}: Card number as it appears on the card. [max length: 19, min length: 13]
893 - C{currency}: Currency code (ISO-4217) for the transaction. Must match the currency associated with your account. [default: USD] B{required }
894 - C{customer}: ID of customer. If specified, card on file of customer will be used.
895 - C{description}: Free form text field to be used as a description of the payment. This field is echoed back with the payment on any find or list operations. [max length: 1024]
896 - C{order => commodityCode}: Standard classification code for products and services. [max length: 5]
897 - C{order => customer}: ID of the customer associated with the order.
898 - C{order => customerEmail}: Customer email address.
899 - C{order => customerName}: Customer name.
900 - C{order => customerNote}: Additional notes provided by the customer. [max length: 255]
901 - C{order => customerReference}: A merchant reference for the customer.
902 - C{order => items => amount}: Cost of the item.
903 - C{order => items => description}: Description of the item.
904 - C{order => items => name}: Item name.
905 - C{order => items => product}: Product information associated with the item.
906 - C{order => items => quantity}: Quantity of the item contained in the order [min value: 1, max value: 999999, default: 1] B{required }
907 - C{order => items => reference}: A merchant reference for the item. [max length: 255]
908 - C{order => items => tax}: Taxes associated with the item.
909 - C{order => merchantNote}: Additional notes provided by the merchant. [max length: 255]
910 - C{order => payment}: ID of the payment associated with the order.
911 - C{order => reference}: A merchant reference for the order. [max length: 255]
912 - C{order => shippingAddress => city}: City, town, or municipality. [max length: 255, min length: 2]
913 - C{order => shippingAddress => country}: 2-character country code. [max length: 2, min length: 2]
914 - C{order => shippingAddress => line1}: Street address. [max length: 255]
915 - C{order => shippingAddress => line2}: (Opt) Street address continued. [max length: 255]
916 - C{order => shippingAddress => name}: Name of the entity being shipped to. [max length: 255]
917 - C{order => shippingAddress => state}: State or province. [max length: 255]
918 - C{order => shippingAddress => zip}: Postal code. [max length: 32]
919 - C{order => shippingFromAddress => city}: City, town, or municipality. [max length: 255, min length: 2]
920 - C{order => shippingFromAddress => country}: 2-character country code. [max length: 2, min length: 2]
921 - C{order => shippingFromAddress => line1}: Street address. [max length: 255]
922 - C{order => shippingFromAddress => line2}: (Opt) Street address continued. [max length: 255]
923 - C{order => shippingFromAddress => name}: Name of the entity performing the shipping. [max length: 255]
924 - C{order => shippingFromAddress => state}: State or province. [max length: 255]
925 - C{order => shippingFromAddress => zip}: Postal code. [max length: 32]
926 - C{order => shippingName}: Name of the entity being shipped to.
927 - C{order => source}: Order source. [default: WEB] B{required }
928 - C{order => status}: Status of the order. [default: INCOMPLETE] B{required }
929 - C{reference}: Custom reference field to be used with outside systems.
930 - C{replayId}: An identifier that can be sent to uniquely identify a payment request to facilitate retries due to I/O related issues. This identifier must be unique for your account (sandbox or live) across all of your payments. If supplied, we will check for a payment on your account that matches this identifier, and if one is found we will attempt to return an identical response of the original request. [max length: 50, min length: 1]
931 - C{statementDescription => name}: Merchant name B{required }
932 - C{statementDescription => phoneNumber}: Merchant contact phone number.
933 - C{token}: If specified, card associated with card token will be used. [max length: 255]
934 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
935 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
936 @param private_api_key: Private key to use for the API call. If C{None}, the value of C{simplify.private_key} will be used.
937 @return: a Authorization object
938 """
939 return PaymentsApi.create("authorization", auth_args, params)
940
941 - def delete(self, *auth_args):
942 """
943 Delete this object
944 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
945 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
946 """
947 return PaymentsApi.delete("authorization", auth_args, self.object_id)
948
949 @staticmethod
950 - def list(criteria = None, *auth_args):
951 """
952 Retrieve Authorization objects.
953 @param criteria: a dict of parameters; valid keys are:
954 - C{filter} <table class="filter_list"><tr><td>filter.id</td><td>Filter by the Authorization Id</td></tr><tr><td>filter.replayId</td><td>Filter by the compoundReplayId</td></tr><tr><td>filter.last4</td><td>Filter by the card number (last 4 digits)</td></tr><tr><td>filter.amount</td><td>Filter by the transaction amount (in the smallest unit of your currency)</td></tr><tr><td>filter.text</td><td>Filter by the description of the authorization</td></tr><tr><td>filter.amountMin & filter.amountMax</td><td>The filter amountMin must be used with amountMax to find authorizations with authorization values between the min and max</td></tr><tr><td>filter.dateCreatedMin<sup>*</sup></td><td>Filter by the minimum created date you are searching for - Date in UTC millis</td></tr><tr><td>filter.dateCreatedMax<sup>*</sup></td><td>Filter by the maximum created date you are searching for - Date in UTC millis</td></tr><tr><td>filter.deposit</td><td>Filter by the deposit id</td></tr><tr><td>filter.customer</td><td>Filter using the Id of the customer to find the authorizations for that customer</td></tr><tr><td>filter.status</td><td>Filter by the authorization status text</td></tr><tr><td>filter.authCode</td><td>Filter by the authorization code (Not the authorization ID)</td></tr><tr><td>filter.q</td><td>You can use this to filter by the ID, the authCode or the amount of the authorization</td></tr></table><br><sup>*</sup>Use dateCreatedMin with dateCreatedMax in the same filter if you want to search between two created dates
955 - C{max} Allows up to a max of 50 list items to return. [min value: 0, max value: 50, default: 20]
956 - C{offset} Used in pagination of the list. This is the start offset of the page. [min value: 0, default: 0]
957 - C{sorting} Allows for ascending or descending sorting of the list. The value maps properties to the sort direction (either C{asc} for ascending or C{desc} for descending). Sortable properties are: C{dateCreated} C{amount} C{id} C{description} C{paymentDate}.
958 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
959 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
960 @return: an object which contains the list of Authorization objects in the <code>list</code> property and the total number
961 of objects available for the given criteria in the <code>total</code> property.
962 """
963 return PaymentsApi.list("authorization", auth_args, criteria)
964
965 @staticmethod
966 - def find(object_id, *auth_args):
967 """
968 Retrieve a Authorization object from the API
969 @param object_id: ID of object to retrieve
970 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
971 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
972 @return: a Authorization object
973 """
974 return PaymentsApi.find("authorization", auth_args, object_id)
975
977 """
978 A CardToken object.
979 """
980
981
982 @staticmethod
983 - def create(params, *auth_args):
984 """
985 Creates an CardToken object
986 @param params: a dict of parameters; valid keys are:
987 - C{authenticatePayer}: Set as true to create CardToken for EMV 3DS transaction. [default: false]
988 - C{callback}: The URL callback for the cardtoken
989 - C{card => addressCity}: City of the cardholder. [max length: 50, min length: 2]
990 - C{card => addressCountry}: Country code (ISO-3166-1-alpha-2 code) of residence of the cardholder. [max length: 2, min length: 2]
991 - C{card => addressLine1}: Address of the cardholder. [max length: 255]
992 - C{card => addressLine2}: Address of the cardholder if needed. [max length: 255]
993 - C{card => addressState}: State of residence of the cardholder. State abbreviations should be used. [max length: 255]
994 - C{card => addressZip}: Postal code of the cardholder. The postal code size is between 5 and 9 in length and only contain numbers or letters. [max length: 32]
995 - C{card => cvc}: CVC security code of the card. This is the code on the back of the card. Example: 123
996 - C{card => expMonth}: Expiration month of the card. Format is MM. Example: January = 01 [min value: 1, max value: 12]
997 - C{card => expYear}: Expiration year of the card. Format is YY. Example: 2013 = 13 [min value: 0, max value: 99]
998 - C{card => name}: Name as appears on the card. [max length: 50, min length: 2]
999 - C{card => number}: Card number as it appears on the card. [max length: 19, min length: 13]
1000 - C{key}: Key used to create the card token.
1001 - C{secure3DRequestData => amount}: Amount of the subsequent transaction in the smallest unit of your currency. Example: 100 = $1.00 B{required }
1002 - C{secure3DRequestData => authOnly}: Specifies if the subsequent transaction is going to be a Payment or an Authorization (to be Captured later). If false or not specified, it refers to a Payment, otherwise it refers to an Authorization.
1003 - C{secure3DRequestData => currency}: Currency code (ISO-4217). Must match the currency associated with your account. B{required }
1004 - C{secure3DRequestData => description}: A description of the transaction. [max length: 256]
1005 - C{secure3DRequestData => id}: 3D Secure data ID.
1006 - C{source}: Card Token Source [default: API]
1007 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1008 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1009 @param private_api_key: Private key to use for the API call. If C{None}, the value of C{simplify.private_key} will be used.
1010 @return: a CardToken object
1011 """
1012 return PaymentsApi.create("cardToken", auth_args, params)
1013
1014 @staticmethod
1015 - def find(object_id, *auth_args):
1016 """
1017 Retrieve a CardToken object from the API
1018 @param object_id: ID of object to retrieve
1019 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1020 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1021 @return: a CardToken object
1022 """
1023 return PaymentsApi.find("cardToken", auth_args, object_id)
1024
1025 - def update(self, *auth_args):
1026 """
1027 Updates this object
1028
1029 The properties that can be updated:
1030 - C{device => browser} The User-Agent header of the browser the customer used to place the order B{(required)}
1031
1032 - C{device => ipAddress} The IP address of the device used by the payer, in nnn.nnn.nnn.nnn format. B{(required)}
1033
1034 - C{device => language} The language supported for the payer's browser as defined in IETF BCP47.
1035
1036 - C{device => screenHeight} The total height of the payer's browser screen in pixels.
1037
1038 - C{device => screenWidth} The total width of the payer's browser screen in pixels.
1039
1040 - C{device => timeZone} The timezone of the device used by the payer, in Zone ID format. Example: "Europe/Dublin" B{(required)}
1041
1042 - C{key} The public key of the merchant to be used for the token
1043
1044 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1045 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1046 @return: a CardToken object.
1047 """
1048 return PaymentsApi.update("cardToken", auth_args, self.object_id, self.to_dict())
1049
1051 """
1052 A Coupon object.
1053 """
1054
1055
1056 @staticmethod
1057 - def create(params, *auth_args):
1058 """
1059 Creates an Coupon object
1060 @param params: a dict of parameters; valid keys are:
1061 - C{amountOff}: Amount off of the price of the product in the smallest units of the currency of the merchant. While this field is optional, you must provide either amountOff or percentOff for a coupon. Example: 100 = $1.00 [min value: 1]
1062 - C{couponCode}: Code that identifies the coupon to be used. [max length: 25, min length: 3] B{required }
1063 - C{description}: A brief section that describes the coupon. [max length: 1024]
1064 - C{durationInMonths}: DEPRECATED - Duration in months that the coupon will be applied after it has first been selected. [min value: 1, max value: 9999]
1065 - C{endDate}: Last date of the coupon in UTC millis that the coupon can be applied to a subscription. This ends at 23:59:59 of the merchant timezone.
1066 - C{maxRedemptions}: Maximum number of redemptions allowed for the coupon. A redemption is defined as when the coupon is applied to the subscription for the first time. [min value: 1, max value: 10000]
1067 - C{numTimesApplied}: The number of times a coupon will be applied on a customer's subscription. [min value: 1, max value: 9999]
1068 - C{percentOff}: Percentage off of the price of the product. While this field is optional, you must provide either amountOff or percentOff for a coupon. The percent off is a whole number. [min value: 1, max value: 100]
1069 - C{startDate}: First date of the coupon in UTC millis that the coupon can be applied to a subscription. This starts at midnight of the merchant timezone. B{required }
1070 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1071 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1072 @param private_api_key: Private key to use for the API call. If C{None}, the value of C{simplify.private_key} will be used.
1073 @return: a Coupon object
1074 """
1075 return PaymentsApi.create("coupon", auth_args, params)
1076
1077 - def delete(self, *auth_args):
1078 """
1079 Delete this object
1080 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1081 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1082 """
1083 return PaymentsApi.delete("coupon", auth_args, self.object_id)
1084
1085 @staticmethod
1086 - def list(criteria = None, *auth_args):
1087 """
1088 Retrieve Coupon objects.
1089 @param criteria: a dict of parameters; valid keys are:
1090 - C{filter} <table class="filter_list"><tr><td>filter.id</td><td>Filter by the coupon Id</td></tr><tr><td>filter.text</td><td>Filter by the coupon code</td></tr><tr><td>filter.dateCreatedMin<sup>*</sup></td><td>Filter by the minimum created date you are searching for - Date in UTC millis</td></tr><tr><td>filter.dateCreatedMax<sup>*</sup></td><td>Filter by the maximum created date you are searching for - Date in UTC millis</td></tr><tr><td>filter.startDateMin</td><td>Filter by the minimum coupon start date you are searching for - Date in UTC millis</td></tr><tr><td>filter.startDateMax</td><td>Filter by the maximum coupon start date you are searching for - Date in UTC millis</td></tr><tr><td>filter.endDateMin</td><td>Filter by the minimum coupon end date you are searching for - Date in UTC millis</td></tr><tr><td>filter.endDateMax</td><td>Filter by the maximum coupon end date you are searching for - Date in UTC millis</td></tr></table><br><sup>*</sup>Use dateCreatedMin with dateCreatedMax in the same filter if you want to search between two created dates
1091 - C{max} Allows up to a max of 50 list items to return. [min value: 0, max value: 50, default: 20]
1092 - C{offset} Used in paging of the list. This is the start offset of the page. [min value: 0, default: 0]
1093 - C{sorting} Allows for ascending or descending sorting of the list. The value maps properties to the sort direction (either C{asc} for ascending or C{desc} for descending). Sortable properties are: C{dateCreated} C{maxRedemptions} C{timesRedeemed} C{id} C{startDate} C{endDate} C{percentOff} C{couponCode} C{durationInMonths} C{numTimesApplied} C{amountOff}.
1094 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1095 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1096 @return: an object which contains the list of Coupon objects in the <code>list</code> property and the total number
1097 of objects available for the given criteria in the <code>total</code> property.
1098 """
1099 return PaymentsApi.list("coupon", auth_args, criteria)
1100
1101 @staticmethod
1102 - def find(object_id, *auth_args):
1103 """
1104 Retrieve a Coupon object from the API
1105 @param object_id: ID of object to retrieve
1106 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1107 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1108 @return: a Coupon object
1109 """
1110 return PaymentsApi.find("coupon", auth_args, object_id)
1111
1112 - def update(self, *auth_args):
1113 """
1114 Updates this object
1115
1116 The properties that can be updated:
1117 - C{endDate} The ending date in UTC millis for the coupon. This must be after the starting date of the coupon.
1118
1119 - C{maxRedemptions} Maximum number of redemptions allowed for the coupon. A redemption is defined as when the coupon is applied to the subscription for the first time. [min value: 1]
1120
1121 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1122 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1123 @return: a Coupon object.
1124 """
1125 return PaymentsApi.update("coupon", auth_args, self.object_id, self.to_dict())
1126
1128 """
1129 A Customer object.
1130 """
1131
1132
1133 @staticmethod
1134 - def create(params, *auth_args):
1135 """
1136 Creates an Customer object
1137 @param params: a dict of parameters; valid keys are:
1138 - C{card => addressCity}: City of the cardholder. B{required }
1139 - C{card => addressCountry}: Country code (ISO-3166-1-alpha-2 code) of residence of the cardholder. B{required }
1140 - C{card => addressLine1}: Address of the cardholder B{required }
1141 - C{card => addressLine2}: Address of the cardholder if needed. B{required }
1142 - C{card => addressState}: State of residence of the cardholder. State abbreviations should be used. B{required }
1143 - C{card => addressZip}: Postal code of the cardholder. The postal code size is between 5 and 9 in length and only contain numbers or letters. B{required }
1144 - C{card => cvc}: CVC security code of the card. This is the code on the back of the card. Example: 123 B{required }
1145 - C{card => expMonth}: Expiration month of the card. Format is MM. Example: January = 01 B{required }
1146 - C{card => expYear}: Expiration year of the card. Format is YY. Example: 2013 = 13 B{required }
1147 - C{card => id}: ID of card. Unused during customer create.
1148 - C{card => name}: Name as appears on the card. B{required }
1149 - C{card => number}: Card number as it appears on the card. [max length: 19, min length: 13]
1150 - C{email}: Email address of the customer B{required }
1151 - C{name}: Customer name [max length: 50, min length: 2] B{required }
1152 - C{reference}: Reference field for external applications use.
1153 - C{subscriptions => amount}: Amount of payment in the smallest unit of your currency. Example: 100 = $1.00
1154 - C{subscriptions => billingCycle}: How the plan is billed to the customer. Values must be AUTO (indefinitely until the customer cancels) or FIXED (a fixed number of billing cycles). [default: AUTO]
1155 - C{subscriptions => billingCycleLimit}: The number of fixed billing cycles for a plan. Only used if the billingCycle parameter is set to FIXED. Example: 4
1156 - C{subscriptions => coupon}: Coupon associated with the subscription for the customer.
1157 - C{subscriptions => currency}: Currency code (ISO-4217). Must match the currency associated with your account.
1158 - C{subscriptions => currentPeriodEnd}: End date of subscription's current period
1159 - C{subscriptions => currentPeriodStart}: Start date of subscription's current period
1160 - C{subscriptions => customer}: The customer ID to create the subscription for. Do not supply this when creating a customer.
1161 - C{subscriptions => frequency}: Frequency of payment for the plan. Used in conjunction with frequencyPeriod. Valid values are "DAILY", "WEEKLY", "MONTHLY" and "YEARLY".
1162 - C{subscriptions => frequencyPeriod}: Period of frequency of payment for the plan. Example: if the frequency is weekly, and periodFrequency is 2, then the subscription is billed bi-weekly.
1163 - C{subscriptions => name}: Name describing subscription [max length: 50]
1164 - C{subscriptions => plan}: The plan ID that the subscription should be created from.
1165 - C{subscriptions => quantity}: Quantity of the plan for the subscription. [min value: 1]
1166 - C{subscriptions => renewalReminderLeadDays}: If set, how many days before the next billing cycle that a renewal reminder is sent to the customer. If null, then no emails are sent. Minimum value is 7 if set.
1167 - C{subscriptions => source}: Source of where subscription was created
1168 - C{token}: If specified, card associated with card token will be used
1169 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1170 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1171 @param private_api_key: Private key to use for the API call. If C{None}, the value of C{simplify.private_key} will be used.
1172 @return: a Customer object
1173 """
1174 return PaymentsApi.create("customer", auth_args, params)
1175
1176 - def delete(self, *auth_args):
1177 """
1178 Delete this object
1179 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1180 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1181 """
1182 return PaymentsApi.delete("customer", auth_args, self.object_id)
1183
1184 @staticmethod
1185 - def list(criteria = None, *auth_args):
1186 """
1187 Retrieve Customer objects.
1188 @param criteria: a dict of parameters; valid keys are:
1189 - C{filter} <table class="filter_list"><tr><td>filter.id</td><td>Filter by the customer Id</td></tr><tr><td>filter.text</td><td>Can use this to filter by the name, email or reference for the customer</td></tr><tr><td>filter.dateCreatedMin<sup>*</sup></td><td>Filter by the minimum created date you are searching for - Date in UTC millis</td></tr><tr><td>filter.dateCreatedMax<sup>*</sup></td><td>Filter by the maximum created date you are searching for - Date in UTC millis</td></tr></table><br><sup>*</sup>Use dateCreatedMin with dateCreatedMax in the same filter if you want to search between two created dates
1190 - C{max} Allows up to a max of 50 list items to return. [min value: 0, max value: 50, default: 20]
1191 - C{offset} Used in paging of the list. This is the start offset of the page. [min value: 0, default: 0]
1192 - C{sorting} Allows for ascending or descending sorting of the list. The value maps properties to the sort direction (either C{asc} for ascending or C{desc} for descending). Sortable properties are: C{dateCreated} C{id} C{name} C{email} C{reference}.
1193 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1194 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1195 @return: an object which contains the list of Customer objects in the <code>list</code> property and the total number
1196 of objects available for the given criteria in the <code>total</code> property.
1197 """
1198 return PaymentsApi.list("customer", auth_args, criteria)
1199
1200 @staticmethod
1201 - def find(object_id, *auth_args):
1202 """
1203 Retrieve a Customer object from the API
1204 @param object_id: ID of object to retrieve
1205 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1206 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1207 @return: a Customer object
1208 """
1209 return PaymentsApi.find("customer", auth_args, object_id)
1210
1211 - def update(self, *auth_args):
1212 """
1213 Updates this object
1214
1215 The properties that can be updated:
1216 - C{card => addressCity} City of the cardholder. B{(required)}
1217
1218 - C{card => addressCountry} Country code (ISO-3166-1-alpha-2 code) of residence of the cardholder. B{(required)}
1219
1220 - C{card => addressLine1} Address of the cardholder. B{(required)}
1221
1222 - C{card => addressLine2} Address of the cardholder if needed. B{(required)}
1223
1224 - C{card => addressState} State of residence of the cardholder. State abbreviations should be used. B{(required)}
1225
1226 - C{card => addressZip} Postal code of the cardholder. The postal code size is between 5 and 9 in length and only contain numbers or letters. B{(required)}
1227
1228 - C{card => cvc} CVC security code of the card. This is the code on the back of the card. Example: 123 B{(required)}
1229
1230 - C{card => expMonth} Expiration month of the card. Format is MM. Example: January = 01 B{(required)}
1231
1232 - C{card => expYear} Expiration year of the card. Format is YY. Example: 2013 = 13 B{(required)}
1233
1234 - C{card => id} ID of card. If present, card details for the customer will not be updated. If not present, the customer will be updated with the supplied card details.
1235
1236 - C{card => name} Name as appears on the card. B{(required)}
1237
1238 - C{card => number} Card number as it appears on the card. [max length: 19, min length: 13]
1239
1240 - C{email} Email address of the customer B{(required)}
1241
1242 - C{name} Customer name [max length: 50, min length: 2] B{(required)}
1243
1244 - C{reference} Reference field for external applications use.
1245
1246 - C{token} If specified, card associated with card token will be added to the customer
1247
1248 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1249 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1250 @return: a Customer object.
1251 """
1252 return PaymentsApi.update("customer", auth_args, self.object_id, self.to_dict())
1253
1255 """
1256 A FraudCheck object.
1257 """
1258
1259
1260 @staticmethod
1261 - def create(params, *auth_args):
1262 """
1263 Creates an FraudCheck object
1264 @param params: a dict of parameters; valid keys are:
1265 - C{amount}: Amount of the transaction to be checked for fraud (in the smallest unit of your currency). Example: 100 = $1.00. This field is required if using âfullâ or âadvancedâ mode.
1266 - C{card => addressCity}: City of the cardholder. [max length: 50, min length: 2]
1267 - C{card => addressCountry}: Country code (ISO-3166-1-alpha-2 code) of residence of the cardholder. [max length: 2, min length: 2]
1268 - C{card => addressLine1}: Address of the cardholder. [max length: 255]
1269 - C{card => addressLine2}: Address of the cardholder if needed. [max length: 255]
1270 - C{card => addressState}: State of residence of the cardholder. State abbreviations should be used. [max length: 255]
1271 - C{card => addressZip}: Postal code of the cardholder. The postal code size is between 5 and 9 characters in length and only contains numbers or letters. [max length: 32]
1272 - C{card => cvc}: CVC security code of the card. This is the code on the back of the card. Example: 123
1273 - C{card => expMonth}: Expiration month of the card. Format is MM. Example: January = 01 [min value: 1, max value: 12]
1274 - C{card => expYear}: Expiration year of the card. Format is YY. Example: 2013 = 13 [min value: 0, max value: 99]
1275 - C{card => name}: Name as it appears on the card. [max length: 50, min length: 2]
1276 - C{card => number}: Card number as it appears on the card. [max length: 19, min length: 13]
1277 - C{currency}: Currency code (ISO-4217) for the transaction to be checked for fraud. This field is required if using âfullâ or âadvancedâ mode.
1278 - C{description}: - Description of the fraud check. [max length: 255]
1279 - C{ipAddress}: IP Address of the customer for which the fraud check is to be done. [max length: 45]
1280 - C{mode}: Fraud check mode. âsimpleâ only does an AVS and CVC check; âadvancedâ does a complete fraud check, running the input against the set up rules. [valid values: simple, advanced, full, SIMPLE, ADVANCED, FULL] B{required }
1281 - C{sessionId}: Session ID used during data collection. [max length: 255]
1282 - C{token}: Card token representing card details for the card to be checked. [max length: 255]
1283 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1284 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1285 @param private_api_key: Private key to use for the API call. If C{None}, the value of C{simplify.private_key} will be used.
1286 @return: a FraudCheck object
1287 """
1288 return PaymentsApi.create("fraudCheck", auth_args, params)
1289
1290 @staticmethod
1291 - def list(criteria = None, *auth_args):
1292 """
1293 Retrieve FraudCheck objects.
1294 @param criteria: a dict of parameters; valid keys are:
1295 - C{filter} Filters to apply to the list.
1296 - C{max} Allows up to a max of 50 list items to return. [min value: 0, max value: 50, default: 20]
1297 - C{offset} Used in paging of the list. This is the start offset of the page. [min value: 0, default: 0]
1298 - C{sorting} Allows for ascending or descending sorting of the list. The value maps properties to the sort direction (either C{asc} for ascending or C{desc} for descending). Sortable properties are: C{amount} C{dateCreated} C{fraudResult}.
1299 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1300 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1301 @return: an object which contains the list of FraudCheck objects in the <code>list</code> property and the total number
1302 of objects available for the given criteria in the <code>total</code> property.
1303 """
1304 return PaymentsApi.list("fraudCheck", auth_args, criteria)
1305
1306 @staticmethod
1307 - def find(object_id, *auth_args):
1308 """
1309 Retrieve a FraudCheck object from the API
1310 @param object_id: ID of object to retrieve
1311 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1312 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1313 @return: a FraudCheck object
1314 """
1315 return PaymentsApi.find("fraudCheck", auth_args, object_id)
1316
1317 - def update(self, *auth_args):
1318 """
1319 Updates this object
1320
1321 The properties that can be updated:
1322 - C{integratorAuthCode} Authorization code for the transaction. [max length: 255]
1323
1324 - C{integratorAvsAddressResponse} AVS address response. [max length: 255]
1325
1326 - C{integratorAvsZipResponse} AVS zip response. [max length: 255]
1327
1328 - C{integratorCvcResponse} CVC response. [max length: 255]
1329
1330 - C{integratorDeclineReason} Reason for the decline if applicable. [max length: 255]
1331
1332 - C{integratorTransactionRef} Reference id for the transaction. [max length: 255] B{(required)}
1333
1334 - C{integratorTransactionStatus} Status of the transaction, valid values are "APPROVED", "DECLINED", "SETTLED", "REFUNDED" or "VOIDED".
1335
1336 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1337 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1338 @return: a FraudCheck object.
1339 """
1340 return PaymentsApi.update("fraudCheck", auth_args, self.object_id, self.to_dict())
1341
1343 """
1344 A Invoice object.
1345 """
1346
1347
1348 @staticmethod
1349 - def create(params, *auth_args):
1350 """
1351 Creates an Invoice object
1352 @param params: a dict of parameters; valid keys are:
1353 - C{billingAddress => city}: Billing address city of the location where the goods or services were supplied. [max length: 255, min length: 2]
1354 - C{billingAddress => country}: Billing address country of the location where the goods or services were supplied. [max length: 2, min length: 2]
1355 - C{billingAddress => line1}: Billing address line 1 of the location where the goods or services were supplied. [max length: 255]
1356 - C{billingAddress => line2}: Billing address line 2 of the location where the goods or services were supplied. [max length: 255]
1357 - C{billingAddress => name}: Billing address name of the location where the goods or services were supplied. Will use the customer name if not provided. [max length: 255]
1358 - C{billingAddress => state}: Billing address state of the location where the goods or services were supplied. [max length: 255]
1359 - C{billingAddress => zip}: Billing address zip of the location where the goods or services were supplied. [max length: 32]
1360 - C{businessAddress => city}: Address city of the business that is sending the invoice. [max length: 255, min length: 2]
1361 - C{businessAddress => country}: Address country of the business that is sending the invoice. [max length: 2, min length: 2]
1362 - C{businessAddress => line1}: Address line 1 of the business that is sending the invoice. [max length: 255]
1363 - C{businessAddress => line2}: Address line 2 of the business that is sending the invoice. [max length: 255]
1364 - C{businessAddress => name}: The name of the business that is sending the invoice. [max length: 255]
1365 - C{businessAddress => state}: Address state of the business that is sending the invoice. [max length: 255]
1366 - C{businessAddress => zip}: Address zip of the business that is sending the invoice. [max length: 32]
1367 - C{currency}: Currency code (ISO-4217). Must match the currency associated with your account. [max length: 3, min length: 3]
1368 - C{customer}: The customer ID of the customer we are invoicing. This is optional if invoiceToCopy or a name and email are provided
1369 - C{customerTaxNo}: The tax number or VAT id of the person to whom the goods or services were supplied. [max length: 255]
1370 - C{discountRate}: The discount percent as a decimal e.g. 12.5. This is used to calculate the discount amount which is subtracted from the total amount due before any tax is applied. [max length: 6]
1371 - C{dueDate}: The date invoice payment is due. If a late fee is provided this will be added to the invoice total is the due date has past.
1372 - C{email}: The email of the customer we are invoicing. This is optional if customer or invoiceToCopy is provided. A new customer will be created using the the name and email.
1373 - C{invoiceId}: User defined invoice id. If not provided the system will generate a numeric id. [max length: 255]
1374 - C{invoiceLanguage}: The language in which invoice will be displayed. [max length: 5, min length: 5]
1375 - C{invoiceToCopy}: The id of an existing invoice to be copied. This is optional if customer or a name and email are provided
1376 - C{items => amount}: Amount of the invoice item (the smallest unit of your currency). Example: 100 = $1.00 B{required }
1377 - C{items => description}: The description of the invoice item. [max length: 1024]
1378 - C{items => invoice}: The ID of the invoice this item belongs to.
1379 - C{items => product}: The product this invoice item refers to.
1380 - C{items => quantity}: Quantity of the item. This total amount of the invoice item is the amount * quantity. [min value: 1, max value: 999999, default: 1]
1381 - C{items => reference}: User defined reference field. [max length: 255]
1382 - C{items => tax}: The tax ID of the tax charge in the invoice item.
1383 - C{lateFee}: The late fee amount that will be added to the invoice total is the due date is past due. Value provided must be in the smallest unit of your currency. Example: 100 = $1.00
1384 - C{memo}: A memo that is displayed to the customer on the invoice payment screen. [max length: 4000]
1385 - C{name}: The name of the customer we are invoicing. This is optional if customer or invoiceToCopy is provided. A new customer will be created using the the name and email. [max length: 50, min length: 2]
1386 - C{note}: This field can be used to store a note that is not displayed to the customer. [max length: 4000]
1387 - C{reference}: User defined reference field. [max length: 40]
1388 - C{shippingAddress => city}: Address city of the location where the goods or services were supplied. [max length: 255, min length: 2]
1389 - C{shippingAddress => country}: Address country of the location where the goods or services were supplied. [max length: 2, min length: 2]
1390 - C{shippingAddress => line1}: Address line 1 of the location where the goods or services were supplied. [max length: 255]
1391 - C{shippingAddress => line2}: Address line 2 of the location where the goods or services were supplied. [max length: 255]
1392 - C{shippingAddress => name}: Address name of the location where the goods or services were supplied. [max length: 255]
1393 - C{shippingAddress => state}: Address state of the location where the goods or services were supplied. [max length: 255]
1394 - C{shippingAddress => zip}: Address zip of the location where the goods or services were supplied. [max length: 32]
1395 - C{suppliedDate}: The date on which the goods or services were supplied.
1396 - C{taxNo}: The tax number or VAT id of the person who supplied the goods or services. [max length: 255]
1397 - C{type}: The type of invoice. One of WEB or MOBILE. [valid values: WEB, MOBILE, default: WEB]
1398 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1399 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1400 @param private_api_key: Private key to use for the API call. If C{None}, the value of C{simplify.private_key} will be used.
1401 @return: a Invoice object
1402 """
1403 return PaymentsApi.create("invoice", auth_args, params)
1404
1405 - def delete(self, *auth_args):
1406 """
1407 Delete this object
1408 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1409 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1410 """
1411 return PaymentsApi.delete("invoice", auth_args, self.object_id)
1412
1413 @staticmethod
1414 - def list(criteria = None, *auth_args):
1415 """
1416 Retrieve Invoice objects.
1417 @param criteria: a dict of parameters; valid keys are:
1418 - C{filter} <table class="filter_list"><tr><td>filter.id</td><td>Filter by the invoice Id</td></tr><tr><td>filter.amount</td><td>Filter by the invoice amount (in the smallest unit of your currency)</td></tr><tr><td>filter.text</td><td>Filter by the name of the invoice</td></tr><tr><td>filter.dateCreatedMin<sup>*</sup></td><td>Filter by the minimum created date you are searching for - Date in UTC millis</td></tr><tr><td>filter.dateCreatedMax<sup>*</sup></td><td>Filter by the maximum created date you are searching for - Date in UTC millis</td></tr><tr><td>filter.datePaidMin<sup>*</sup></td><td>Filter by the minimum invoice paid date you are searching for - Date in UTC millis</td></tr><tr><td>filter.datePaidMax<sup>*</sup></td><td>Filter by the maximum invoice paid date you are searching for - Date in UTC millis</td></tr><tr><td>filter.status</td><td>Filter by the status of the invoice</td></tr><tr><td>filter.statuses</td><td>Filter by multiple statuses of different invoices</td></tr><tr><td>filter.customer</td><td>Filter using the Id of the customer linked to the invoice</td></tr><tr><td>filter.type</td><td>Filter by the invoice type</td></tr><tr><td>filter.types</td><td>Filter by multiple invoice types</td></tr><tr><td>filter.invoiceId</td><td>Filter by the user defined invoice id</td></tr><tr><td>filter.reference</td><td>Filter by the invoice reference text</td></tr></table><br><sup>*</sup>The filters datePaidMin and datePaidMax can be used in the same filter if you want to search between the two dates. The same is for dateCreatedMin/dateCreatedMax.
1419 - C{max} Allows up to a max of 50 list items to return. [min value: 0, max value: 50, default: 20]
1420 - C{offset} Used in paging of the list. This is the start offset of the page. [min value: 0, default: 0]
1421 - C{sorting} Allows for ascending or descending sorting of the list. The value maps properties to the sort direction (either C{asc} for ascending or C{desc} for descending). Sortable properties are: C{id} C{invoiceDate} C{dueDate} C{datePaid} C{customer} C{status} C{dateCreated}.
1422 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1423 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1424 @return: an object which contains the list of Invoice objects in the <code>list</code> property and the total number
1425 of objects available for the given criteria in the <code>total</code> property.
1426 """
1427 return PaymentsApi.list("invoice", auth_args, criteria)
1428
1429 @staticmethod
1430 - def find(object_id, *auth_args):
1431 """
1432 Retrieve a Invoice object from the API
1433 @param object_id: ID of object to retrieve
1434 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1435 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1436 @return: a Invoice object
1437 """
1438 return PaymentsApi.find("invoice", auth_args, object_id)
1439
1440 - def update(self, *auth_args):
1441 """
1442 Updates this object
1443
1444 The properties that can be updated:
1445 - C{billingAddress => city} Billing address city of the location where the goods or services were supplied. [max length: 255, min length: 2]
1446
1447 - C{billingAddress => country} Billing address country of the location where the goods or services were supplied. [max length: 2, min length: 2]
1448
1449 - C{billingAddress => line1} Billing address line 1 of the location where the goods or services were supplied. [max length: 255]
1450
1451 - C{billingAddress => line2} Billing address line 2 of the location where the goods or services were supplied. [max length: 255]
1452
1453 - C{billingAddress => name} Billing address name of the location where the goods or services were supplied. [max length: 255]
1454
1455 - C{billingAddress => state} Billing address state of the location where the goods or services were supplied. [max length: 255]
1456
1457 - C{billingAddress => zip} Billing address zip of the location where the goods or services were supplied. [max length: 32]
1458
1459 - C{businessAddress => city} Business address city of the business that is sending the invoice. [max length: 255, min length: 2]
1460
1461 - C{businessAddress => country} Business address country of the business that is sending the invoice. [max length: 2, min length: 2]
1462
1463 - C{businessAddress => line1} Business address line 1 of the business that is sending the invoice. [max length: 255]
1464
1465 - C{businessAddress => line2} Business address line 2 of the business that is sending the invoice. [max length: 255]
1466
1467 - C{businessAddress => name} Business address name of the business that is sending the invoice. [max length: 255]
1468
1469 - C{businessAddress => state} Business address state of the business that is sending the invoice. [max length: 255]
1470
1471 - C{businessAddress => zip} Business address zip of the business that is sending the invoice. [max length: 32]
1472
1473 - C{currency} Currency code (ISO-4217). Must match the currency associated with your account. [max length: 3, min length: 3]
1474
1475 - C{customerTaxNo} The tax number or VAT id of the person to whom the goods or services were supplied. [max length: 255]
1476
1477 - C{datePaid} This is the date the invoice was PAID in UTC millis.
1478
1479 - C{discountRate} The discount percent as a decimal e.g. 12.5. This is used to calculate the discount amount which is subtracted from the total amount due before any tax is applied. [max length: 6]
1480
1481 - C{dueDate} The date invoice payment is due. If a late fee is provided this will be added to the invoice total is the due date has past.
1482
1483 - C{email} The email of the customer we are invoicing. This is optional if customer or invoiceToCopy is provided. A new customer will be created using the the name and email.
1484
1485 - C{invoiceId} User defined invoice id. If not provided the system will generate a numeric id. [max length: 255]
1486
1487 - C{invoiceLanguage} The language in which invoice will be displayed. [max length: 5, min length: 5]
1488
1489 - C{items => amount} Amount of the invoice item in the smallest unit of your currency. Example: 100 = $1.00 B{(required)}
1490
1491 - C{items => description} The description of the invoice item. [max length: 1024]
1492
1493 - C{items => invoice} The ID of the invoice this item belongs to.
1494
1495 - C{items => product} The Id of the product this item refers to.
1496
1497 - C{items => quantity} Quantity of the item. This total amount of the invoice item is the amount * quantity. [min value: 1, max value: 999999, default: 1]
1498
1499 - C{items => reference} User defined reference field. [max length: 255]
1500
1501 - C{items => tax} The tax ID of the tax charge in the invoice item.
1502
1503 - C{lateFee} The late fee amount that will be added to the invoice total is the due date is past due. Value provided must be in the smallest unit of your currency. Example: 100 = $1.00
1504
1505 - C{memo} A memo that is displayed to the customer on the invoice payment screen. [max length: 4000]
1506
1507 - C{name} The name of the customer we are invoicing. This is optional if customer or invoiceToCopy is provided. A new customer will be created using the the name and email. [max length: 50, min length: 2]
1508
1509 - C{note} This field can be used to store a note that is not displayed to the customer. [max length: 4000]
1510
1511 - C{payment} The ID of the payment. Use this ID to query the /payment API. [max length: 255]
1512
1513 - C{reference} User defined reference field. [max length: 255]
1514
1515 - C{sendMail} Boolean flag. If true the invoice will be sent to the customer if the invoice is in an OPEN state. [default: false] B{(required)}
1516
1517 - C{shippingAddress => city} Address city of the location where the goods or services were supplied. [max length: 255, min length: 2]
1518
1519 - C{shippingAddress => country} Address country of the location where the goods or services were supplied. [max length: 2, min length: 2]
1520
1521 - C{shippingAddress => line1} Address line 1 of the location where the goods or services were supplied. [max length: 255]
1522
1523 - C{shippingAddress => line2} Address line 2 of the location where the goods or services were supplied. [max length: 255]
1524
1525 - C{shippingAddress => name} Address name of the location where the goods or services were supplied. [max length: 255]
1526
1527 - C{shippingAddress => state} Address state of the location where the goods or services were supplied. [max length: 255]
1528
1529 - C{shippingAddress => zip} Address zip of the location where the goods or services were supplied. [max length: 32]
1530
1531 - C{status} New status of the invoice.
1532
1533 - C{suppliedDate} The date on which the goods or services were supplied.
1534
1535 - C{taxNo} The tax number or VAT id of the person who supplied the goods or services. [max length: 255]
1536
1537 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1538 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1539 @return: a Invoice object.
1540 """
1541 return PaymentsApi.update("invoice", auth_args, self.object_id, self.to_dict())
1542
1544 """
1545 A InvoiceItem object.
1546 """
1547
1548
1549 @staticmethod
1550 - def create(params, *auth_args):
1551 """
1552 Creates an InvoiceItem object
1553 @param params: a dict of parameters; valid keys are:
1554 - C{amount}: Amount of the invoice item in the smallest unit of your currency. Example: 100 = $1.00 B{required }
1555 - C{description}: Individual items of an invoice [max length: 1024]
1556 - C{invoice}: The ID of the invoice this item belongs to.
1557 - C{product}: Product ID this item relates to.
1558 - C{quantity}: Quantity of the item. This total amount of the invoice item is the amount * quantity. [min value: 1, max value: 999999, default: 1]
1559 - C{reference}: User defined reference field. [max length: 255]
1560 - C{tax}: The tax ID of the tax charge in the invoice item.
1561 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1562 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1563 @param private_api_key: Private key to use for the API call. If C{None}, the value of C{simplify.private_key} will be used.
1564 @return: a InvoiceItem object
1565 """
1566 return PaymentsApi.create("invoiceItem", auth_args, params)
1567
1568 - def delete(self, *auth_args):
1569 """
1570 Delete this object
1571 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1572 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1573 """
1574 return PaymentsApi.delete("invoiceItem", auth_args, self.object_id)
1575
1576 @staticmethod
1577 - def find(object_id, *auth_args):
1578 """
1579 Retrieve a InvoiceItem object from the API
1580 @param object_id: ID of object to retrieve
1581 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1582 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1583 @return: a InvoiceItem object
1584 """
1585 return PaymentsApi.find("invoiceItem", auth_args, object_id)
1586
1587 - def update(self, *auth_args):
1588 """
1589 Updates this object
1590
1591 The properties that can be updated:
1592 - C{amount} Amount of the invoice item in the smallest unit of your currency. Example: 100 = $1.00 [min value: 1]
1593
1594 - C{description} Individual items of an invoice
1595
1596 - C{quantity} Quantity of the item. This total amount of the invoice item is the amount * quantity. [min value: 1, max value: 999999]
1597
1598 - C{reference} User defined reference field.
1599
1600 - C{tax} The tax ID of the tax charge in the invoice item.
1601
1602 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1603 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1604 @return: a InvoiceItem object.
1605 """
1606 return PaymentsApi.update("invoiceItem", auth_args, self.object_id, self.to_dict())
1607
1609 """
1610 A Payment object.
1611 """
1612
1613
1614 @staticmethod
1615 - def create(params, *auth_args):
1616 """
1617 Creates an Payment object
1618 @param params: a dict of parameters; valid keys are:
1619 - C{amount}: Amount of the payment (in the smallest unit of your currency). Example: 100 = $1.00
1620 - C{authorization}: The ID of the authorization being used to capture the payment.
1621 - C{card => addressCity}: City of the cardholder. [max length: 50, min length: 2]
1622 - C{card => addressCountry}: Country code (ISO-3166-1-alpha-2 code) of residence of the cardholder. [max length: 2, min length: 2]
1623 - C{card => addressLine1}: Address of the cardholder. [max length: 255]
1624 - C{card => addressLine2}: Address of the cardholder if needed. [max length: 255]
1625 - C{card => addressState}: State of residence of the cardholder. State abbreviations should be used. [max length: 255]
1626 - C{card => addressZip}: Postal code of the cardholder. The postal code size is between 5 and 9 in length and only contain numbers or letters. [max length: 32]
1627 - C{card => cvc}: CVC security code of the card. This is the code on the back of the card. Example: 123
1628 - C{card => expMonth}: Expiration month of the card. Format is MM. Example: January = 01 [min value: 1, max value: 12]
1629 - C{card => expYear}: Expiration year of the card. Format is YY. Example: 2013 = 13 [min value: 0, max value: 99]
1630 - C{card => name}: Name as it appears on the card. [max length: 50, min length: 2]
1631 - C{card => number}: Card number as it appears on the card. [max length: 19, min length: 13]
1632 - C{currency}: Currency code (ISO-4217) for the transaction. Must match the currency associated with your account. [default: USD] B{required }
1633 - C{customer}: ID of customer. If specified, card on file of customer will be used.
1634 - C{description}: Free form text field to be used as a description of the payment. This field is echoed back with the payment on any find or list operations. [max length: 1024]
1635 - C{invoice}: ID of invoice for which this payment is being made.
1636 - C{invoiceReference}: Invoice reference number.
1637 - C{order => commodityCode}: Standard classification code for products and services. [max length: 5]
1638 - C{order => customer}: ID of the customer associated with the order.
1639 - C{order => customerEmail}: Customer email address.
1640 - C{order => customerName}: Customer name.
1641 - C{order => customerNote}: Additional notes provided by the customer. [max length: 255]
1642 - C{order => customerReference}: A merchant reference for the customer.
1643 - C{order => items => amount}: Cost of the item.
1644 - C{order => items => description}: Description of the item.
1645 - C{order => items => name}: Item name.
1646 - C{order => items => product}: Product information associated with the item.
1647 - C{order => items => quantity}: Quantity of the item contained in the order [min value: 1, max value: 999999, default: 1] B{required }
1648 - C{order => items => reference}: A merchant reference for the item. [max length: 255]
1649 - C{order => items => tax}: Taxes associated with the item.
1650 - C{order => merchantNote}: Additional notes provided by the merchant. [max length: 255]
1651 - C{order => payment}: ID of the payment associated with the order.
1652 - C{order => reference}: A merchant reference for the order. [max length: 255]
1653 - C{order => shippingAddress => city}: City, town, or municipality. [max length: 255, min length: 2]
1654 - C{order => shippingAddress => country}: 2-character country code. [max length: 2, min length: 2]
1655 - C{order => shippingAddress => line1}: Street address. [max length: 255]
1656 - C{order => shippingAddress => line2}: (Opt) Street address continued. [max length: 255]
1657 - C{order => shippingAddress => name}: Name of the entity being shipped to. [max length: 255]
1658 - C{order => shippingAddress => state}: State or province. [max length: 255]
1659 - C{order => shippingAddress => zip}: Postal code. [max length: 32]
1660 - C{order => shippingFromAddress => city}: City, town, or municipality. [max length: 255, min length: 2]
1661 - C{order => shippingFromAddress => country}: 2-character country code. [max length: 2, min length: 2]
1662 - C{order => shippingFromAddress => line1}: Street address. [max length: 255]
1663 - C{order => shippingFromAddress => line2}: (Opt) Street address continued. [max length: 255]
1664 - C{order => shippingFromAddress => name}: Name of the entity performing the shipping. [max length: 255]
1665 - C{order => shippingFromAddress => state}: State or province. [max length: 255]
1666 - C{order => shippingFromAddress => zip}: Postal code. [max length: 32]
1667 - C{order => shippingName}: Name of the entity being shipped to.
1668 - C{order => source}: Order source. [default: WEB] B{required }
1669 - C{order => status}: Status of the order. [default: INCOMPLETE] B{required }
1670 - C{reference}: Custom reference field to be used with outside systems.
1671 - C{replayId}: An identifier that can be sent to uniquely identify a payment request to facilitate retries due to I/O related issues. This identifier must be unique for your account (sandbox or live) across all of your payments. If supplied, we will check for a payment on your account that matches this identifier. If found will attempt to return an identical response of the original request. [max length: 50, min length: 1]
1672 - C{statementDescription => name}: Merchant name. B{required }
1673 - C{statementDescription => phoneNumber}: Merchant contact phone number.
1674 - C{taxExempt}: Specify true to indicate that the payment is tax-exempt.
1675 - C{token}: If specified, card associated with card token will be used. [max length: 255]
1676 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1677 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1678 @param private_api_key: Private key to use for the API call. If C{None}, the value of C{simplify.private_key} will be used.
1679 @return: a Payment object
1680 """
1681 return PaymentsApi.create("payment", auth_args, params)
1682
1683 @staticmethod
1684 - def list(criteria = None, *auth_args):
1685 """
1686 Retrieve Payment objects.
1687 @param criteria: a dict of parameters; valid keys are:
1688 - C{filter} <table class="filter_list"><tr><td>filter.id</td><td>Filter by the payment Id</td></tr><tr><td>filter.replayId</td><td>Filter by the compoundReplayId</td></tr><tr><td>filter.last4</td><td>Filter by the card number (last 4 digits)</td></tr><tr><td>filter.amount</td><td>Filter by the payment amount (in the smallest unit of your currency)</td></tr><tr><td>filter.text</td><td>Filter by the description of the payment</td></tr><tr><td>filter.amountMin & filter.amountMax</td><td>The filter amountMin must be used with amountMax to find payments with payments amounts between the min and max figures</td></tr><tr><td>filter.dateCreatedMin<sup>*</sup></td><td>Filter by the minimum created date you are searching for - Date in UTC millis</td></tr><tr><td>filter.dateCreatedMax<sup>*</sup></td><td>Filter by the maximum created date you are searching for - Date in UTC millis</td></tr><tr><td>filter.deposit</td><td>Filter by the deposit id connected to the payment</td></tr><tr><td>filter.customer</td><td>Filter using the Id of the customer to find the payments for that customer</td></tr><tr><td>filter.status</td><td>Filter by the payment status text</td></tr><tr><td>filter.reference</td><td>Filter by the payment reference text</td></tr><tr><td>filter.authCode</td><td>Filter by the payment authorization code (Not the authorization ID)</td></tr><tr><td>filter.q</td><td>You can use this to filter by the Id, the authCode or the amount of the payment</td></tr></table><br><sup>*</sup>Use dateCreatedMin with dateCreatedMax in the same filter if you want to search between two created dates
1689 - C{max} Allows up to a max of 50 list items to return. [min value: 0, max value: 50, default: 20]
1690 - C{offset} Used in paging of the list. This is the start offset of the page. [min value: 0, default: 0]
1691 - C{sorting} Allows for ascending or descending sorting of the list. The value maps properties to the sort direction (either C{asc} for ascending or C{desc} for descending). Sortable properties are: C{dateCreated} C{createdBy} C{amount} C{id} C{description} C{paymentDate}.
1692 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1693 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1694 @return: an object which contains the list of Payment objects in the <code>list</code> property and the total number
1695 of objects available for the given criteria in the <code>total</code> property.
1696 """
1697 return PaymentsApi.list("payment", auth_args, criteria)
1698
1699 @staticmethod
1700 - def find(object_id, *auth_args):
1701 """
1702 Retrieve a Payment object from the API
1703 @param object_id: ID of object to retrieve
1704 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1705 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1706 @return: a Payment object
1707 """
1708 return PaymentsApi.find("payment", auth_args, object_id)
1709
1710 - def update(self, *auth_args):
1711 """
1712 Updates this object
1713
1714 The properties that can be updated:
1715 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1716 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1717 @return: a Payment object.
1718 """
1719 return PaymentsApi.update("payment", auth_args, self.object_id, self.to_dict())
1720
1721 -class Plan(Domain):
1722 """
1723 A Plan object.
1724 """
1725
1726
1727 @staticmethod
1728 - def create(params, *auth_args):
1729 """
1730 Creates an Plan object
1731 @param params: a dict of parameters; valid keys are:
1732 - C{amount}: Amount of payment for the plan in the smallest unit of your currency. Example: 100 = $1.00 B{required }
1733 - C{billingCycle}: How the plan is billed to the customer. Values must be AUTO (indefinitely until the customer cancels) or FIXED (a fixed number of billing cycles). [default: AUTO]
1734 - C{billingCycleLimit}: The number of fixed billing cycles for a plan. Only used if the billingCycle parameter is set to FIXED. Example: 4
1735 - C{currency}: Currency code (ISO-4217) for the plan. Must match the currency associated with your account. [default: USD] B{required }
1736 - C{frequency}: Frequency of payment for the plan. Used in conjunction with frequencyPeriod. Valid values are "DAILY", "WEEKLY", "MONTHLY" and "YEARLY". [default: MONTHLY] B{required }
1737 - C{frequencyPeriod}: Period of frequency of payment for the plan. Example: if the frequency is weekly, and periodFrequency is 2, then the subscription is billed bi-weekly. [min value: 1, default: 1] B{required }
1738 - C{name}: Name of the plan [max length: 50, min length: 2] B{required }
1739 - C{renewalReminderLeadDays}: If set, how many days before the next billing cycle that a renewal reminder is sent to the customer. If null, then no emails are sent. Minimum value is 7 if set.
1740 - C{trialPeriod}: Plan free trial period selection. Must be Days, Weeks, or Month [default: NONE] B{required }
1741 - C{trialPeriodQuantity}: Quantity of the trial period. Must be greater than 0 and a whole number. [min value: 1]
1742 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1743 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1744 @param private_api_key: Private key to use for the API call. If C{None}, the value of C{simplify.private_key} will be used.
1745 @return: a Plan object
1746 """
1747 return PaymentsApi.create("plan", auth_args, params)
1748
1749 - def delete(self, *auth_args):
1750 """
1751 Delete this object
1752 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1753 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1754 """
1755 return PaymentsApi.delete("plan", auth_args, self.object_id)
1756
1757 @staticmethod
1758 - def list(criteria = None, *auth_args):
1759 """
1760 Retrieve Plan objects.
1761 @param criteria: a dict of parameters; valid keys are:
1762 - C{filter} <table class="filter_list"><tr><td>filter.id</td><td>Filter by the plan Id</td></tr><tr><td>filter.text</td><td>Filter by the name of the plan</td></tr><tr><td>filter.frequency</td><td>Filter by the frequency of the plan</td></tr><tr><td>filter.amountMin & filter.amountMax</td><td>The filter amountMin must be used with amountMax to find plans with plan values between the min and max figures</td></tr><tr><td>filter.dateCreatedMin<sup>*</sup></td><td>Filter by the minimum created date you are searching for - Date in UTC millis</td></tr><tr><td>filter.dateCreatedMax<sup>*</sup></td><td>Filter by the maximum created date you are searching for - Date in UTC millis</td></tr><tr><td>filter.q</td><td>You can use this to filter by the Id, the name or the amount of the plan</td></tr></table><br><sup>*</sup>Use dateCreatedMin with dateCreatedMax in the same filter if you want to search between two created dates
1763 - C{max} Allows up to a max of 50 list items to return. [min value: 0, max value: 50, default: 20]
1764 - C{offset} Used in paging of the list. This is the start offset of the page. [min value: 0, default: 0]
1765 - C{sorting} Allows for ascending or descending sorting of the list. The value maps properties to the sort direction (either C{asc} for ascending or C{desc} for descending). Sortable properties are: C{dateCreated} C{amount} C{frequency} C{name} C{id}.
1766 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1767 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1768 @return: an object which contains the list of Plan objects in the <code>list</code> property and the total number
1769 of objects available for the given criteria in the <code>total</code> property.
1770 """
1771 return PaymentsApi.list("plan", auth_args, criteria)
1772
1773 @staticmethod
1774 - def find(object_id, *auth_args):
1775 """
1776 Retrieve a Plan object from the API
1777 @param object_id: ID of object to retrieve
1778 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1779 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1780 @return: a Plan object
1781 """
1782 return PaymentsApi.find("plan", auth_args, object_id)
1783
1784 - def update(self, *auth_args):
1785 """
1786 Updates this object
1787
1788 The properties that can be updated:
1789 - C{name} Name of the plan. [min length: 2] B{(required)}
1790
1791 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1792 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1793 @return: a Plan object.
1794 """
1795 return PaymentsApi.update("plan", auth_args, self.object_id, self.to_dict())
1796
1798 """
1799 A Refund object.
1800 """
1801
1802
1803 @staticmethod
1804 - def create(params, *auth_args):
1805 """
1806 Creates an Refund object
1807 @param params: a dict of parameters; valid keys are:
1808 - C{amount}: Amount of the refund in the smallest unit of your currency. Example: 100 = $1.00 B{required }
1809 - C{payment}: ID of the payment for the refund
1810 - C{reason}: Reason for the refund
1811 - C{reference}: Custom reference field to be used with outside systems.
1812 - C{replayId}: An identifier that can be sent to uniquely identify a refund request to facilitate retries due to I/O related issues. This identifier must be unique for your account (sandbox or live) across all of your refunds. If supplied, we will check for a refund on your account that matches this identifier. If found we will return an identical response to that of the original request. [max length: 50, min length: 1]
1813 - C{statementDescription => name}: Merchant name. B{required }
1814 - C{statementDescription => phoneNumber}: Merchant contact phone number.
1815 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1816 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1817 @param private_api_key: Private key to use for the API call. If C{None}, the value of C{simplify.private_key} will be used.
1818 @return: a Refund object
1819 """
1820 return PaymentsApi.create("refund", auth_args, params)
1821
1822 @staticmethod
1823 - def list(criteria = None, *auth_args):
1824 """
1825 Retrieve Refund objects.
1826 @param criteria: a dict of parameters; valid keys are:
1827 - C{filter} <table class="filter_list"><tr><td>filter.id</td><td>Filter by the refund Id</td></tr><tr><td>filter.text</td><td>Filter by the refund description text</td></tr><tr><td>filter.replayId</td><td>Filter by the compoundReplayId</td></tr><tr><td>filter.authCode</td><td>Filter by the authorization code (Not authorization ID)</td></tr><tr><td>filter.amount</td><td>Filter by the refund amount (in the smallest unit of your currency)</td></tr><tr><td>filter.dateCreatedMin<sup>*</sup></td><td>Filter by the minimum created date you are searching for - Date in UTC millis</td></tr><tr><td>filter.dateCreatedMax<sup>*</sup></td><td>Filter by the maximum created date you are searching for - Date in UTC millis</td></tr><tr><td>filter.deposit</td><td>Filter by the deposit id</td></tr><tr><td>filter.q</td><td>You can use this to filter by the Id, the authCode or the amount of the refund</td></tr></table><br><sup>*</sup>Use dateCreatedMin with dateCreatedMax in the same filter if you want to search between two created dates
1828 - C{max} Allows up to a max of 50 list items to return. [min value: 0, max value: 50, default: 20]
1829 - C{offset} Used in paging of the list. This is the start offset of the page. [min value: 0, default: 0]
1830 - C{sorting} Allows for ascending or descending sorting of the list. The value maps properties to the sort direction (either C{asc} for ascending or C{desc} for descending). Sortable properties are: C{id} C{amount} C{description} C{dateCreated} C{paymentDate}.
1831 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1832 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1833 @return: an object which contains the list of Refund objects in the <code>list</code> property and the total number
1834 of objects available for the given criteria in the <code>total</code> property.
1835 """
1836 return PaymentsApi.list("refund", auth_args, criteria)
1837
1838 @staticmethod
1839 - def find(object_id, *auth_args):
1840 """
1841 Retrieve a Refund object from the API
1842 @param object_id: ID of object to retrieve
1843 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1844 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1845 @return: a Refund object
1846 """
1847 return PaymentsApi.find("refund", auth_args, object_id)
1848
1850 """
1851 A Subscription object.
1852 """
1853
1854
1855 @staticmethod
1856 - def create(params, *auth_args):
1857 """
1858 Creates an Subscription object
1859 @param params: a dict of parameters; valid keys are:
1860 - C{amount}: Amount of the payment in the smallest unit of your currency. Example: 100 = $1.00
1861 - C{billingCycle}: How the plan is billed to the customer. Values must be AUTO (indefinitely until the customer cancels) or FIXED (a fixed number of billing cycles). [default: AUTO]
1862 - C{billingCycleLimit}: The number of fixed billing cycles for a plan. Only used if the billingCycle parameter is set to FIXED. Example: 4
1863 - C{coupon}: Coupon ID associated with the subscription
1864 - C{currency}: Currency code (ISO-4217). Must match the currency associated with your account.
1865 - C{currentPeriodEnd}: End date of subscription's current period
1866 - C{currentPeriodStart}: Start date of subscription's current period
1867 - C{customer}: Customer that is enrolling in the subscription.
1868 - C{frequency}: Frequency of payment for the plan. Used in conjunction with frequencyPeriod. Valid values are "DAILY", "WEEKLY", "MONTHLY" and "YEARLY".
1869 - C{frequencyPeriod}: Period of frequency of payment for the plan. Example: if the frequency is weekly, and periodFrequency is 2, then the subscription is billed bi-weekly.
1870 - C{name}: Name describing subscription [max length: 50]
1871 - C{plan}: The ID of the plan that should be used for the subscription.
1872 - C{quantity}: Quantity of the plan for the subscription. [min value: 1]
1873 - C{renewalReminderLeadDays}: If set, how many days before the next billing cycle that a renewal reminder is sent to the customer. If null, then no emails are sent. Minimum value is 7 if set.
1874 - C{source}: Source of where subscription was created
1875 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1876 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1877 @param private_api_key: Private key to use for the API call. If C{None}, the value of C{simplify.private_key} will be used.
1878 @return: a Subscription object
1879 """
1880 return PaymentsApi.create("subscription", auth_args, params)
1881
1882 - def delete(self, *auth_args):
1883 """
1884 Delete this object
1885 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1886 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1887 """
1888 return PaymentsApi.delete("subscription", auth_args, self.object_id)
1889
1890 @staticmethod
1891 - def list(criteria = None, *auth_args):
1892 """
1893 Retrieve Subscription objects.
1894 @param criteria: a dict of parameters; valid keys are:
1895 - C{filter} <table class="filter_list"><tr><td>filter.customer</td><td>Filter by the Id of the customer with the subscription</td></tr><tr><td>filter.plan</td><td>Filter by the Id of the plan linked to the subscription</td></tr><tr><td>filter.dateCreatedMin<sup>*</sup></td><td>Filter by the minimum created date you are searching for - Date in UTC millis</td></tr><tr><td>filter.dateCreatedMax<sup>*</sup></td><td>Filter by the maximum created date you are searching for - Date in UTC millis</td></tr><tr><td>filter.q</td><td>You can use this to filter by the Id, the name or the amount of the subscription</td></tr></table><br><sup>*</sup>Use dateCreatedMin with dateCreatedMax in the same filter if you want to search between two created dates
1896 - C{max} Allows up to a max of 50 list items to return. [min value: 0, max value: 50, default: 20]
1897 - C{offset} Used in paging of the list. This is the start offset of the page. [min value: 0, default: 0]
1898 - C{sorting} Allows for ascending or descending sorting of the list. The value maps properties to the sort direction (either C{asc} for ascending or C{desc} for descending). Sortable properties are: C{dateCreated} C{id} C{plan}.
1899 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1900 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1901 @return: an object which contains the list of Subscription objects in the <code>list</code> property and the total number
1902 of objects available for the given criteria in the <code>total</code> property.
1903 """
1904 return PaymentsApi.list("subscription", auth_args, criteria)
1905
1906 @staticmethod
1907 - def find(object_id, *auth_args):
1908 """
1909 Retrieve a Subscription object from the API
1910 @param object_id: ID of object to retrieve
1911 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1912 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1913 @return: a Subscription object
1914 """
1915 return PaymentsApi.find("subscription", auth_args, object_id)
1916
1917 - def update(self, *auth_args):
1918 """
1919 Updates this object
1920
1921 The properties that can be updated:
1922 - C{amount} Amount of the payment in the smallest unit of your currency. Example: 100 = $1.00
1923
1924 - C{billingCycle} How the plan is billed to the customer. Values must be AUTO (indefinitely until the customer cancels) or FIXED (a fixed number of billing cycles). [default: AUTO]
1925
1926 - C{billingCycleLimit} The number of fixed billing cycles for a plan. Only used if the billingCycle parameter is set to FIXED. Example: 4
1927
1928 - C{coupon} Coupon being assigned to this subscription
1929
1930 - C{currency} Currency code (ISO-4217). Must match the currency associated with your account.
1931
1932 - C{currentPeriodEnd} End date of subscription's current period
1933
1934 - C{currentPeriodStart} Start date of subscription's current period
1935
1936 - C{frequency} Frequency of payment for the plan. Used in conjunction with frequencyPeriod. Valid values are "DAILY", "WEEKLY", "MONTHLY" and "YEARLY".
1937
1938 - C{frequencyPeriod} Period of frequency of payment for the plan. Example: if the frequency is weekly, and periodFrequency is 2, then the subscription is billed bi-weekly. [min value: 1]
1939
1940 - C{name} Name describing subscription
1941
1942 - C{plan} Plan that should be used for the subscription.
1943
1944 - C{prorate} Whether to prorate existing subscription. [default: true] B{(required)}
1945
1946 - C{quantity} Quantity of the plan for the subscription. [min value: 1]
1947
1948 - C{renewalReminderLeadDays} If set, how many days before the next billing cycle that a renewal reminder is sent to the customer. If null or 0, no emails are sent. Minimum value is 7 if set.
1949
1950 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1951 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1952 @return: a Subscription object.
1953 """
1954 return PaymentsApi.update("subscription", auth_args, self.object_id, self.to_dict())
1955
1957 """
1958 A Tax object.
1959 """
1960
1961
1962 @staticmethod
1963 - def create(params, *auth_args):
1964 """
1965 Creates an Tax object
1966 @param params: a dict of parameters; valid keys are:
1967 - C{label}: The label of the tax object. [max length: 255] B{required }
1968 - C{rate}: The tax rate. Decimal value up three decimal places. e.g 12.501. [max length: 6] B{required }
1969 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1970 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1971 @param private_api_key: Private key to use for the API call. If C{None}, the value of C{simplify.private_key} will be used.
1972 @return: a Tax object
1973 """
1974 return PaymentsApi.create("tax", auth_args, params)
1975
1976 - def delete(self, *auth_args):
1977 """
1978 Delete this object
1979 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1980 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1981 """
1982 return PaymentsApi.delete("tax", auth_args, self.object_id)
1983
1984 @staticmethod
1985 - def list(criteria = None, *auth_args):
1986 """
1987 Retrieve Tax objects.
1988 @param criteria: a dict of parameters; valid keys are:
1989 - C{filter} <table class="filter_list"><tr><td>filter.id</td><td>Filter by the Id of the tax</td></tr><tr><td>filter.label</td><td>Filter by the label(name) of the tax</td></tr></table>
1990 - C{max} Allows up to a max of 50 list items to return. [min value: 0, max value: 50, default: 20]
1991 - C{offset} Used in paging of the list. This is the start offset of the page. [min value: 0, default: 0]
1992 - C{sorting} Allows for ascending or descending sorting of the list. The value maps properties to the sort direction (either C{asc} for ascending or C{desc} for descending). Sortable properties are: C{id} C{label}.
1993 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
1994 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
1995 @return: an object which contains the list of Tax objects in the <code>list</code> property and the total number
1996 of objects available for the given criteria in the <code>total</code> property.
1997 """
1998 return PaymentsApi.list("tax", auth_args, criteria)
1999
2000 @staticmethod
2001 - def find(object_id, *auth_args):
2002 """
2003 Retrieve a Tax object from the API
2004 @param object_id: ID of object to retrieve
2005 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
2006 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
2007 @return: a Tax object
2008 """
2009 return PaymentsApi.find("tax", auth_args, object_id)
2010
2012 """
2013 A TransactionReview object.
2014 """
2015
2016
2017 @staticmethod
2018 - def create(params, *auth_args):
2019 """
2020 Creates an TransactionReview object
2021 @param params: a dict of parameters; valid keys are:
2022 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
2023 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
2024 @param private_api_key: Private key to use for the API call. If C{None}, the value of C{simplify.private_key} will be used.
2025 @return: a TransactionReview object
2026 """
2027 return PaymentsApi.create("transactionReview", auth_args, params)
2028
2029 - def delete(self, *auth_args):
2030 """
2031 Delete this object
2032 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
2033 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
2034 """
2035 return PaymentsApi.delete("transactionReview", auth_args, self.object_id)
2036
2037 @staticmethod
2038 - def list(criteria = None, *auth_args):
2039 """
2040 Retrieve TransactionReview objects.
2041 @param criteria: a dict of parameters; valid keys are:
2042 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
2043 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
2044 @return: an object which contains the list of TransactionReview objects in the <code>list</code> property and the total number
2045 of objects available for the given criteria in the <code>total</code> property.
2046 """
2047 return PaymentsApi.list("transactionReview", auth_args, criteria)
2048
2049 @staticmethod
2050 - def find(object_id, *auth_args):
2051 """
2052 Retrieve a TransactionReview object from the API
2053 @param object_id: ID of object to retrieve
2054 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
2055 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
2056 @return: a TransactionReview object
2057 """
2058 return PaymentsApi.find("transactionReview", auth_args, object_id)
2059
2060 - def update(self, *auth_args):
2061 """
2062 Updates this object
2063
2064 The properties that can be updated:
2065 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
2066 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
2067 @return: a TransactionReview object.
2068 """
2069 return PaymentsApi.update("transactionReview", auth_args, self.object_id, self.to_dict())
2070
2072 """
2073 A Webhook object.
2074 """
2075
2076
2077 @staticmethod
2078 - def create(params, *auth_args):
2079 """
2080 Creates an Webhook object
2081 @param params: a dict of parameters; valid keys are:
2082 - C{url}: Endpoint URL B{required }
2083 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
2084 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
2085 @param private_api_key: Private key to use for the API call. If C{None}, the value of C{simplify.private_key} will be used.
2086 @return: a Webhook object
2087 """
2088 return PaymentsApi.create("webhook", auth_args, params)
2089
2090 - def delete(self, *auth_args):
2091 """
2092 Delete this object
2093 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
2094 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
2095 """
2096 return PaymentsApi.delete("webhook", auth_args, self.object_id)
2097
2098 @staticmethod
2099 - def list(criteria = None, *auth_args):
2100 """
2101 Retrieve Webhook objects.
2102 @param criteria: a dict of parameters; valid keys are:
2103 - C{filter} Filters to apply to the list.
2104 - C{max} Allows up to a max of 50 list items to return. [min value: 0, max value: 50, default: 20]
2105 - C{offset} Used in paging of the list. This is the start offset of the page. [min value: 0, default: 0]
2106 - C{sorting} Allows for ascending or descending sorting of the list. The value maps properties to the sort direction (either C{asc} for ascending or C{desc} for descending). Sortable properties are: C{dateCreated}.
2107 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
2108 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
2109 @return: an object which contains the list of Webhook objects in the <code>list</code> property and the total number
2110 of objects available for the given criteria in the <code>total</code> property.
2111 """
2112 return PaymentsApi.list("webhook", auth_args, criteria)
2113
2114 @staticmethod
2115 - def find(object_id, *auth_args):
2116 """
2117 Retrieve a Webhook object from the API
2118 @param object_id: ID of object to retrieve
2119 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
2120 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
2121 @return: a Webhook object
2122 """
2123 return PaymentsApi.find("webhook", auth_args, object_id)
2124
2125 - def update(self, *auth_args):
2126 """
2127 Updates this object
2128
2129 The properties that can be updated:
2130 - C{url} Endpoint URL B{(required)}
2131
2132 @param auth_args: an Authentication object used for the API call. If no value is passed the gloabl keys simplify.public_key and simplify.private_key are used.
2133 For backwards compatibility the public and private keys may be passed instead of an Authentication object.
2134 @return: a Webhook object.
2135 """
2136 return PaymentsApi.update("webhook", auth_args, self.object_id, self.to_dict())
2137