revo-remit 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. data/LICENSE +20 -0
  2. data/README.markdown +122 -0
  3. data/lib/remit.rb +132 -0
  4. data/lib/remit/common.rb +151 -0
  5. data/lib/remit/data_types.rb +265 -0
  6. data/lib/remit/error_codes.rb +118 -0
  7. data/lib/remit/get_pipeline.rb +286 -0
  8. data/lib/remit/inbound_request.rb +85 -0
  9. data/lib/remit/ipn_request.rb +8 -0
  10. data/lib/remit/operations/cancel.rb +20 -0
  11. data/lib/remit/operations/cancel_subscription_and_refund.rb +26 -0
  12. data/lib/remit/operations/cancel_token.rb +19 -0
  13. data/lib/remit/operations/fund_prepaid.rb +33 -0
  14. data/lib/remit/operations/get_account_activity.rb +31 -0
  15. data/lib/remit/operations/get_account_balance.rb +32 -0
  16. data/lib/remit/operations/get_all_credit_instruments.rb +20 -0
  17. data/lib/remit/operations/get_all_prepaid_instruments.rb +20 -0
  18. data/lib/remit/operations/get_debt_balance.rb +28 -0
  19. data/lib/remit/operations/get_outstanding_debt_balance.rb +25 -0
  20. data/lib/remit/operations/get_payment_instruction.rb +23 -0
  21. data/lib/remit/operations/get_prepaid_balance.rb +27 -0
  22. data/lib/remit/operations/get_recipient_verification_status.rb +25 -0
  23. data/lib/remit/operations/get_token_by_caller.rb +23 -0
  24. data/lib/remit/operations/get_token_usage.rb +22 -0
  25. data/lib/remit/operations/get_tokens.rb +24 -0
  26. data/lib/remit/operations/get_total_prepaid_liability.rb +26 -0
  27. data/lib/remit/operations/get_transaction.rb +18 -0
  28. data/lib/remit/operations/get_transaction_status.rb +28 -0
  29. data/lib/remit/operations/install_payment_instruction.rb +29 -0
  30. data/lib/remit/operations/pay.rb +31 -0
  31. data/lib/remit/operations/refund.rb +46 -0
  32. data/lib/remit/operations/reserve.rb +28 -0
  33. data/lib/remit/operations/settle.rb +21 -0
  34. data/lib/remit/operations/settle_debt.rb +28 -0
  35. data/lib/remit/operations/subscribe_for_caller_notification.rb +20 -0
  36. data/lib/remit/operations/unsubscribe_for_caller_notification.rb +19 -0
  37. data/lib/remit/operations/write_off_debt.rb +26 -0
  38. data/lib/remit/pipeline_response.rb +20 -0
  39. data/lib/remit/signature_utils_for_outbound.rb +74 -0
  40. data/lib/remit/verify_signature.rb +21 -0
  41. data/spec/integrations/get_account_activity_spec.rb +42 -0
  42. data/spec/integrations/get_tokens_spec.rb +39 -0
  43. data/spec/integrations/integrations_helper.rb +15 -0
  44. data/spec/integrations/ipn_request_spec.rb +40 -0
  45. data/spec/integrations/pipeline_response_spec.rb +27 -0
  46. data/spec/integrations/verify_signature_spec.rb +140 -0
  47. data/spec/mocks/CancelResponse.xml +13 -0
  48. data/spec/mocks/CancelSubscriptionAndRefundResponse.xml +10 -0
  49. data/spec/mocks/CancelTokenResponse.xml +6 -0
  50. data/spec/mocks/ErrorResponse.xml +15 -0
  51. data/spec/mocks/FundPrepaidResponse.xml +11 -0
  52. data/spec/mocks/GetAccountActivityResponse.xml +68 -0
  53. data/spec/mocks/GetAccountBalanceResponse.xml +34 -0
  54. data/spec/mocks/GetDebtBalanceResponse.xml +21 -0
  55. data/spec/mocks/GetOutstandingDebtBalanceResponse.xml +21 -0
  56. data/spec/mocks/GetPaymentInstructionResponse.xml +25 -0
  57. data/spec/mocks/GetPrepaidBalanceResponse.xml +21 -0
  58. data/spec/mocks/GetRecipientVerificationStatusResponse.xml +9 -0
  59. data/spec/mocks/GetTokenByCallerResponse.xml +22 -0
  60. data/spec/mocks/GetTokenUsageResponse.xml +28 -0
  61. data/spec/mocks/GetTokensResponse.xml +22 -0
  62. data/spec/mocks/GetTotalPrepaidLiabilityResponse.xml +21 -0
  63. data/spec/mocks/GetTransactionResponse.xml +76 -0
  64. data/spec/mocks/GetTransactionStatusResponse.xml +16 -0
  65. data/spec/mocks/InstallPaymentInstructionResponse.xml +10 -0
  66. data/spec/mocks/PayResponse.xml +11 -0
  67. data/spec/mocks/RefundResponse.xml +11 -0
  68. data/spec/mocks/ReserveResponse.xml +11 -0
  69. data/spec/mocks/SettleDebtResponse.xml +11 -0
  70. data/spec/mocks/SettleResponse.xml +11 -0
  71. data/spec/mocks/VerifySignatureResponse.xml +11 -0
  72. data/spec/mocks/WriteOffDebtResponse.xml +11 -0
  73. data/spec/mocks/errors/InvalidParameterValue.xml +10 -0
  74. data/spec/mocks/errors/InvalidParams_certificateUrl.xml +2 -0
  75. data/spec/mocks/errors/RequestExpired.xml +10 -0
  76. data/spec/spec_helper.rb +85 -0
  77. data/spec/units/cancel_subscription_and_refund_spec.rb +29 -0
  78. data/spec/units/cancel_token_spec.rb +24 -0
  79. data/spec/units/fund_prepaid_spec.rb +28 -0
  80. data/spec/units/get_account_activity_spec.rb +58 -0
  81. data/spec/units/get_account_balance_spec.rb +28 -0
  82. data/spec/units/get_debt_balance_spec.rb +29 -0
  83. data/spec/units/get_outstanding_debt_balance_spec.rb +29 -0
  84. data/spec/units/get_pipeline_spec.rb +181 -0
  85. data/spec/units/get_prepaid_balance_spec.rb +29 -0
  86. data/spec/units/get_recipient_verification_status_spec.rb +26 -0
  87. data/spec/units/get_token_by_caller_spec.rb +56 -0
  88. data/spec/units/get_token_usage_spec.rb +51 -0
  89. data/spec/units/get_tokens_spec.rb +56 -0
  90. data/spec/units/get_total_prepaid_liability_spec.rb +26 -0
  91. data/spec/units/get_transaction_spec.rb +103 -0
  92. data/spec/units/get_transaction_status_spec.rb +44 -0
  93. data/spec/units/pay_spec.rb +112 -0
  94. data/spec/units/refund_spec.rb +41 -0
  95. data/spec/units/reserve_spec.rb +41 -0
  96. data/spec/units/settle_debt_spec.rb +41 -0
  97. data/spec/units/settle_spec.rb +41 -0
  98. data/spec/units/units_helper.rb +25 -0
  99. data/spec/units/write_off_debt_spec.rb +41 -0
  100. metadata +236 -0
@@ -0,0 +1,39 @@
1
+ require File.dirname(__FILE__) + '/integrations_helper'
2
+
3
+ describe 'a GetTokens call' do
4
+ it_should_behave_like 'a successful response'
5
+
6
+ before(:all) do
7
+ @response = remit.get_tokens
8
+
9
+ end
10
+
11
+ it 'should have a collection of tokens' do
12
+ @response.get_tokens_result.should have_at_least(1).tokens
13
+ end
14
+
15
+ it 'should have a token with all of its values set' do
16
+ token = @response.get_tokens_result.tokens.first
17
+ token.token_id.should_not be_empty
18
+ token.friendly_name.should_not be_empty
19
+ token.token_status.should_not be_empty
20
+ token.date_installed.should_not be_nil
21
+ #token.caller_installed.should_not be_empty
22
+ token.caller_reference.should_not be_empty
23
+ token.token_type.should_not be_empty
24
+ token.old_token_id.should_not be_empty
25
+ #token.payment_reason.should be_empty
26
+ end
27
+
28
+ it 'should have a token with a token ID' do
29
+ @response.get_tokens_result.tokens.first.token_id.should_not be_empty
30
+ end
31
+
32
+ it 'should have a token with a valid token status' do
33
+ @response.get_tokens_result.tokens.first.token_status.should match(/^(IN)?ACTIVE$/i)
34
+ end
35
+
36
+ it 'should have a token with a valid installation date' do
37
+ @response.get_tokens_result.tokens.first.date_installed.should be_a_kind_of(Time)
38
+ end
39
+ end
@@ -0,0 +1,15 @@
1
+ ACCESS_KEY = ENV['AWS_ACCESS_KEY'] || ENV['AMAZON_ACCESS_KEY_ID']
2
+ SECRET_KEY = ENV['AWS_SECRET_KEY'] || ENV['AMAZON_SECRET_ACCESS_KEY']
3
+
4
+ unless ACCESS_KEY and SECRET_KEY
5
+ raise RuntimeError, "You must set your AWS_ACCESS_KEY and AWS_SECRET_KEY environment variables to run integration tests"
6
+ end
7
+
8
+ #def remit_api
9
+ # @remit ||= Remit::API.new(ACCESS_KEY, SECRET_KEY, true)
10
+ #end
11
+
12
+ #puts "Access key = #{ACCESS_KEY}"
13
+ #puts "Secret key = #{SECRET_KEY}"
14
+
15
+ require File.dirname(__FILE__) + '/../spec_helper'
@@ -0,0 +1,40 @@
1
+ require File.dirname(__FILE__) + '/integrations_helper'
2
+
3
+ describe 'an IPN request with a bad signature' do
4
+ # This needs to be updated to match the new Verify methods
5
+ # The signature does not match the one calculated for these req params by amazon. Need to get a fresh example.
6
+ # So it is currently a test that a bad signature will be verified as BAD
7
+ before(:each) do
8
+ @bad_request_params = {
9
+ "action" => "notice",
10
+ "buyerName" => "Fps Buyer",
11
+ "callerReference" => "4-8-1-3.5",
12
+ "controller" => "amazon_fps/ipn",
13
+ "operation" => "PAY",
14
+ "paymentMethod" => "CC",
15
+ "recipientEmail" => "recipient@email.url",
16
+ "recipientName" => "Fps Business",
17
+ "signatureVersion" => Remit::API::SIGNATURE_VERSION.to_s,
18
+ "signatureMethod" => "RSA-SHA1",
19
+ "certificateUrl" => "https://fps.sandbox.amazonaws.com/certs/090909/PKICert.pem",
20
+ Remit::IpnRequest::SIGNATURE_KEY => "This-is-a-bad-sig",
21
+ "status" => "SUCCESS",
22
+ "transactionAmount" => "USD 3.50",
23
+ "transactionDate" => "1224687134",
24
+ "transactionId" => "13KIGL9RC25853BGPPOS2VSKBKF2JERR3HO"
25
+ }
26
+
27
+ @request = Remit::IpnRequest.new('http://example.com/ipn/processor', @bad_request_params, remit)
28
+ end
29
+
30
+ it 'should not be a valid request' do
31
+ @request.should_not be_valid
32
+ end
33
+
34
+ it 'should pass through access to given parameters' do
35
+ @request.status.should == 'SUCCESS'
36
+ @request.operation.should == 'PAY'
37
+ @request.transactionId.should == '13KIGL9RC25853BGPPOS2VSKBKF2JERR3HO'
38
+ end
39
+ end
40
+
@@ -0,0 +1,27 @@
1
+ require File.dirname(__FILE__) + '/integrations_helper'
2
+ #require 'uri'
3
+ #require 'remit/common'
4
+
5
+ #TODO: Turn this into an integration test...
6
+ #describe "Pipeline Response should work" do
7
+ #
8
+ # before(:each) do
9
+ # params = { :status => "SA",
10
+ # :tokenID => "foo",
11
+ # :callerReference => "bar",
12
+ # :awsSignature => "7QrCpQ1nMng3Usaj8LFkeo4zorM="}
13
+ # url = URI.parse("http://example.com/payment?#{params.to_url_params}")
14
+ # @pipeline_response = Remit::PipelineResponse.new(url.path, url.query, SECRET_KEY)
15
+ # end
16
+ #
17
+ #
18
+ # it "should be valid" do
19
+ # puts "#{@pipeline_response.inspect}"
20
+ # @pipeline_response.should be_valid
21
+ # end
22
+ #
23
+ # it "should be successful" do
24
+ # @pipeline_response.successful?.should == true
25
+ # end
26
+ #
27
+ #end
@@ -0,0 +1,140 @@
1
+ require File.dirname(__FILE__) + '/integrations_helper'
2
+
3
+ describe "VerifySignature API" do
4
+
5
+ #Not sure if other KEYS can validate this signature or not. Taken from a test sandbox transaction.
6
+ def correct_params
7
+ {"tokenID"=>"F36RX66AJJF8S3QZ9MP656MAZD2CL3UH5HMIFT75D5ACN6Z9FKCHESAQQXNLVSBM",
8
+ "signatureVersion"=>"2",
9
+ "callerReference"=>"OrderToken-00b6fad394cdef8f95c1dcc72e2bfae06dc09c4f",
10
+ "signature"=>"Jy7oVloTqVl1BKTnFmpiBW0Jpzr3x4E4WoIPxUQMz1vefNO3bhceHTg+zAvB52JcyS2oYmUHltep\n3ifJb+eEciRDCP+T7GjocXG9LNuGpt76MUXxbV2CGGq+gVvTs/kE5oN5kH2/51skjiFkgwl9Qfao\nuGYK9uWVGuRvL9dmhxk=",
11
+ "certificateUrl"=>"https://fps.sandbox.amazonaws.com/certs/090910/PKICert.pem?requestId=bjyoi7ibdlseql3rkc05z9rexucetcjqkdw8eneo5qlto7zp7ap",
12
+ "signatureMethod"=>"RSA-SHA1",
13
+ "expiry"=>"08/2014",
14
+ "status"=>"SC"}
15
+ end
16
+
17
+ describe 'with bad certificateUrl (whitespace)' do
18
+ before(:all) do
19
+ @params = {"tokenID"=>"F36RX66AJJF8S3QZ9MP656MAZD2CL3UH5HMIFT75D5ACN6Z9FKCHESAQQXNLVSBM",
20
+ "signatureVersion"=>"2",
21
+ "callerReference"=>"OrderToken-00b6fad394cdef8f95c1dcc72e2bfae06dc09c4f",
22
+ "signature"=>"Jy7oVloTqVl1BKTnFmpiBW0Jpzr3x4E4WoIPxUQMz1vefNO3bhceHTg+zAvB52JcyS2oYmUHltep\n3ifJb+eEciRDCP+T7GjocXG9LNuGpt76MUXxbV2CGGq+gVvTs/kE5oN5kH2/51skjiFkgwl9Qfao\nuGYK9uWVGuRvL9dmhxk=",
23
+ "certificateUrl"=>"https://fps.sandbox.amazonaws.com/certs/090
24
+ 910/PKICert.pem?requestId=bjyoi7ibdlseql3rkc05z9rexucetcjqkdw8eneo5qlto7zp7ap",
25
+ "signatureMethod"=>"RSA-SHA1",
26
+ "expiry"=>"08/2014",
27
+ "status"=>"SC"}
28
+ @pipeline_response = Remit::PipelineResponse.new("https://staging.timeperks.net/member/restaurants/31/thankyou", @params, remit)
29
+ end
30
+
31
+ it 'should not be valid' do
32
+ @pipeline_response.should_not be_valid
33
+ end
34
+ end
35
+
36
+ describe 'with bad signature (whitespace)' do
37
+ before(:all) do
38
+ @params = {"tokenID"=>"F36RX66AJJF8S3QZ9MP656MAZD2CL3UH5HMIFT75D5ACN6Z9FKCHESAQQXNLVSBM",
39
+ "signatureVersion"=>"2",
40
+ "callerReference"=>"OrderToken-00b6fad394cdef8f95c1dcc72e2bfae06dc09c4f",
41
+ "signature"=>"Jy7oVl
42
+ oTqVl1BKTnFmpiBW0Jpzr3x4E4WoIPxUQMz1vefNO3bhceHTg+zAvB52JcyS2oYmUHltep\n3ifJb+eEciRDCP+T7GjocXG9LNuGpt76MUXxbV2CGGq+gVvTs/kE5oN5kH2/51skjiFkgwl9Qfao\nuGYK9uWVGuRvL9dmhxk=",
43
+ "certificateUrl"=>"https://fps.sandbox.amazonaws.com/certs/090910/PKICert.pem?requestId=bjyoi7ibdlseql3rkc05z9rexucetcjqkdw8eneo5qlto7zp7ap",
44
+ "signatureMethod"=>"RSA-SHA1",
45
+ "expiry"=>"08/2014",
46
+ "status"=>"SC"}
47
+ @pipeline_response = Remit::PipelineResponse.new("https://staging.timeperks.net/member/restaurants/31/thankyou", @params, remit)
48
+ end
49
+
50
+ it 'should not be valid' do
51
+ @pipeline_response.should_not be_valid
52
+ end
53
+ end
54
+
55
+ #'action' and 'controller' are auto removed by remit.
56
+ describe 'with parameters created by rails (not from Amazon, like "id")' do
57
+ before(:all) do
58
+ @params = correct_params.merge({
59
+ "action"=>"thankyou",
60
+ "id"=>"31",
61
+ "controller"=>"member/restaurants"})
62
+ @pipeline_response = Remit::PipelineResponse.new("https://staging.timeperks.net/member/restaurants/31/thankyou", @params, remit)
63
+ end
64
+
65
+ it 'should not be valid' do
66
+ @pipeline_response.should_not be_valid
67
+ end
68
+ end
69
+
70
+ describe 'with trailing slash on endpoint' do
71
+ before(:all) do
72
+ @pipeline_response = Remit::PipelineResponse.new("https://staging.timeperks.net/member/restaurants/31/thankyou/", correct_params, remit)
73
+ end
74
+
75
+ it 'should not be valid' do
76
+ @pipeline_response.should_not be_valid
77
+ end
78
+ end
79
+
80
+ describe "with correct parameters hash" do
81
+ #'action' and 'controller' are auto removed by remit.
82
+ describe 'including action and controller added by rails' do
83
+ before(:all) do
84
+ @params = correct_params.merge({
85
+ "action"=>"thankyou",
86
+ "controller"=>"member/restaurants"})
87
+ @pipeline_response = Remit::PipelineResponse.new("https://staging.timeperks.net/member/restaurants/31/thankyou", @params, remit)
88
+ end
89
+
90
+ it 'should be valid' do
91
+ @pipeline_response.should be_valid
92
+ end
93
+ end
94
+
95
+ describe 'with trailing slash on endpoint URL' do
96
+ before(:all) do
97
+ @pipeline_response = Remit::PipelineResponse.new("https://staging.timeperks.net/member/restaurants/31/thankyou/", correct_params, remit)
98
+ end
99
+
100
+ it 'should not be valid' do
101
+ @pipeline_response.should_not be_valid
102
+ end
103
+ end
104
+
105
+ describe 'without trailing slash on endpoint URL' do
106
+ before(:all) do
107
+ @pipeline_response = Remit::PipelineResponse.new("https://staging.timeperks.net/member/restaurants/31/thankyou", correct_params, remit)
108
+ end
109
+
110
+ it 'should be valid' do
111
+ @pipeline_response.should be_valid
112
+ end
113
+ end
114
+ end
115
+
116
+ describe "with invalid query params (id comes from rails) and building Endpoint URL from request URI" do
117
+ before(:all) do
118
+ @parameters = {"tokenID"=>"977B36S3GQ5VRXSNSZ4V2BHJEB9YB3A7MFQSF5GCK5ULGGDMNDJT6AMU1TU6A6XX", "signatureVersion"=>"2", "callerReference"=>"OrderToken-a0fff5d468263da9672a4a939a5b28086764d049", "action"=>"thankyou", "signature"=>"gaumxsAIf4SoY9gp2KWpZK9JRhPhnQ/w+DgC/VWSgw/9pur/RDVlnzGt9Btr9iX6Goc7UNB3nso7\nmm8ocodEtz8Fnsj85OD4NdQZLuFV0PIzsIWYwYfe3nOxUm08uCCJo6dPJMwIocYnGTneqYMGoFZD\nawjzOEpAz8/50lViGvs=", "certificateUrl"=>"https://fps.sandbox.amazonaws.com/certs/090910/PKICert.pem?requestId=bjyoi7ibdlseql3rkc05z9rexucetcjqkdw8eneo5qlto7zp7aq", "id"=>"38", "signatureMethod"=>"RSA-SHA1", "controller"=>"member/restaurants", "expiry"=>"07/2015", "status"=>"SC"}
119
+ url = "https://staging.timeperks.net/member/restaurants/38/thankyou?signature=gaumxsAIf4SoY9gp2KWpZK9JRhPhnQ%2Fw%2BDgC%2FVWSgw%2F9pur%2FRDVlnzGt9Btr9iX6Goc7UNB3nso7%0Amm8ocodEtz8Fnsj85OD4NdQZLuFV0PIzsIWYwYfe3nOxUm08uCCJo6dPJMwIocYnGTneqYMGoFZD%0AawjzOEpAz8%2F50lViGvs%3D&expiry=07%2F2015&signatureVersion=2&signatureMethod=RSA-SHA1&certificateUrl=https%3A%2F%2Ffps.sandbox.amazonaws.com%2Fcerts%2F090910%2FPKICert.pem%3FrequestId%3Dbjyoi7ibdlseql3rkc05z9rexucetcjqkdw8eneo5qlto7zp7aq&tokenID=977B36S3GQ5VRXSNSZ4V2BHJEB9YB3A7MFQSF5GCK5ULGGDMNDJT6AMU1TU6A6XX&status=SC&callerReference=OrderToken-a0fff5d468263da9672a4a939a5b28086764d049"
120
+ @url = URI.parse("#{url}")
121
+ end
122
+
123
+ it 'should work when using URL to parse out params instead' do
124
+ @pipeline_response = Remit::PipelineResponse.new("#{@url.scheme}://#{@url.host}#{@url.path}", @url.query, remit)
125
+ @pipeline_response.should be_valid
126
+ end
127
+
128
+ it 'should be valid when using :skip_param_keys' do
129
+ @pipeline_response = Remit::PipelineResponse.new("#{@url.scheme}://#{@url.host}#{@url.path}", @parameters, remit, {:skip_param_keys => ['action','controller','id']})
130
+ @pipeline_response.should be_valid
131
+ end
132
+
133
+ it 'should be valid when relying on :skip_param_keys to remove action and controller params' do
134
+ @pipeline_response = Remit::PipelineResponse.new("#{@url.scheme}://#{@url.host}#{@url.path}", @parameters, remit, {:skip_param_keys => ['id']})
135
+ @pipeline_response.should be_valid
136
+ end
137
+
138
+ end
139
+
140
+ end
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <CancelResponse xmlns="http://fps.amazonaws.com/doc/2008-09-17/">
3
+ <!--Optional:-->
4
+ <CancelResult>
5
+ <!--Optional:-->
6
+ <TransactionId>string</TransactionId>
7
+ <!--Optional:-->
8
+ <TransactionStatus>string</TransactionStatus>
9
+ </CancelResult>
10
+ <ResponseMetadata>
11
+ <RequestId>string</RequestId>
12
+ </ResponseMetadata>
13
+ </CancelResponse>
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <CancelSubscriptionAndRefundResponse xmlns="http://fps.amazonaws.com/doc/2008-09-17/">
3
+ <!--Optional:-->
4
+ <CancelSubscriptionAndRefundResult>
5
+ <RefundTransactionId>string</RefundTransactionId>
6
+ </CancelSubscriptionAndRefundResult>
7
+ <ResponseMetadata>
8
+ <RequestId>string</RequestId>
9
+ </ResponseMetadata>
10
+ </CancelSubscriptionAndRefundResponse>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <CancelTokenResponse xmlns="http://fps.amazonaws.com/doc/2008-09-17/">
3
+ <ResponseMetadata>
4
+ <RequestId>string</RequestId>
5
+ </ResponseMetadata>
6
+ </CancelTokenResponse>
@@ -0,0 +1,15 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <ErrorResponse xmlns="http://fps.amazonaws.com/doc/2008-09-17/">
3
+ <!--1 or more repetitions:-->
4
+ <Error>
5
+ <Type>string</Type>
6
+ <Code>string</Code>
7
+ <Message>string</Message>
8
+ <!--Optional:-->
9
+ <Detail>
10
+ <!--You may enter ANY elements at this point-->
11
+ <AnyElement xmlns=""/>
12
+ </Detail>
13
+ </Error>
14
+ <RequestId>string</RequestId>
15
+ </ErrorResponse>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <FundPrepaidResponse xmlns="http://fps.amazonaws.com/doc/2008-09-17/">
3
+ <!--Optional:-->
4
+ <FundPrepaidResult>
5
+ <TransactionId>string</TransactionId>
6
+ <TransactionStatus>string</TransactionStatus>
7
+ </FundPrepaidResult>
8
+ <ResponseMetadata>
9
+ <RequestId>string</RequestId>
10
+ </ResponseMetadata>
11
+ </FundPrepaidResponse>
@@ -0,0 +1,68 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <GetAccountActivityResponse xmlns="http://fps.amazonaws.com/doc/2008-09-17/">
3
+ <!--Optional:-->
4
+ <GetAccountActivityResult>
5
+ <!--Optional:-->
6
+ <BatchSize>100</BatchSize>
7
+ <!--Zero or more repetitions:-->
8
+ <Transaction>
9
+ <TransactionId>string</TransactionId>
10
+ <CallerTransactionDate>2008-09-28T18:49:45</CallerTransactionDate>
11
+ <DateReceived>2014-09-18T16:18:33</DateReceived>
12
+ <!--Optional:-->
13
+ <DateCompleted>2006-08-19T10:27:14-07:00</DateCompleted>
14
+ <TransactionAmount>
15
+ <CurrencyCode>string</CurrencyCode>
16
+ <Value>string</Value>
17
+ </TransactionAmount>
18
+ <FPSOperation>string</FPSOperation>
19
+ <TransactionStatus>string</TransactionStatus>
20
+ <!--Optional:-->
21
+ <StatusMessage>string</StatusMessage>
22
+ <!--Optional:-->
23
+ <StatusCode>string</StatusCode>
24
+ <!--Optional:-->
25
+ <OriginalTransactionId>string</OriginalTransactionId>
26
+ <!--1 or more repetitions:-->
27
+ <TransactionPart>
28
+ <!--Optional:-->
29
+ <InstrumentId>string</InstrumentId>
30
+ <Role>string</Role>
31
+ <!--Optional:-->
32
+ <Name>string</Name>
33
+ <!--Optional:-->
34
+ <Reference>string</Reference>
35
+ <!--Optional:-->
36
+ <Description>string</Description>
37
+ <!--Optional:-->
38
+ <FeesPaid>
39
+ <CurrencyCode>string</CurrencyCode>
40
+ <Value>string</Value>
41
+ </FeesPaid>
42
+ </TransactionPart>
43
+ <PaymentMethod>string</PaymentMethod>
44
+ <!--Optional:-->
45
+ <SenderName>string</SenderName>
46
+ <CallerName>string</CallerName>
47
+ <!--Optional:-->
48
+ <RecipientName>string</RecipientName>
49
+ <FPSFees>
50
+ <CurrencyCode>string</CurrencyCode>
51
+ <Value>string</Value>
52
+ </FPSFees>
53
+ <Balance>
54
+ <CurrencyCode>string</CurrencyCode>
55
+ <Value>string</Value>
56
+ </Balance>
57
+ <!--Optional:-->
58
+ <SenderTokenId>string</SenderTokenId>
59
+ <!--Optional:-->
60
+ <RecipientTokenId>string</RecipientTokenId>
61
+ </Transaction>
62
+ <!--Optional:-->
63
+ <StartTimeForNextTransaction>2009-05-16T05:42:28</StartTimeForNextTransaction>
64
+ </GetAccountActivityResult>
65
+ <ResponseMetadata>
66
+ <RequestId>string</RequestId>
67
+ </ResponseMetadata>
68
+ </GetAccountActivityResponse>
@@ -0,0 +1,34 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <GetAccountBalanceResponse xmlns="http://fps.amazonaws.com/doc/2008-09-17/">
3
+ <!--Optional:-->
4
+ <GetAccountBalanceResult>
5
+ <!--Optional:-->
6
+ <AccountBalance>
7
+ <TotalBalance>
8
+ <CurrencyCode>string</CurrencyCode>
9
+ <Value>string</Value>
10
+ </TotalBalance>
11
+ <PendingInBalance>
12
+ <CurrencyCode>string</CurrencyCode>
13
+ <Value>string</Value>
14
+ </PendingInBalance>
15
+ <PendingOutBalance>
16
+ <CurrencyCode>string</CurrencyCode>
17
+ <Value>string</Value>
18
+ </PendingOutBalance>
19
+ <AvailableBalances>
20
+ <DisburseBalance>
21
+ <CurrencyCode>string</CurrencyCode>
22
+ <Value>string</Value>
23
+ </DisburseBalance>
24
+ <RefundBalance>
25
+ <CurrencyCode>string</CurrencyCode>
26
+ <Value>string</Value>
27
+ </RefundBalance>
28
+ </AvailableBalances>
29
+ </AccountBalance>
30
+ </GetAccountBalanceResult>
31
+ <ResponseMetadata>
32
+ <RequestId>string</RequestId>
33
+ </ResponseMetadata>
34
+ </GetAccountBalanceResponse>
@@ -0,0 +1,21 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <GetDebtBalanceResponse xmlns="http://fps.amazonaws.com/doc/2008-09-17/">
3
+ <!--Optional:-->
4
+ <GetDebtBalanceResult>
5
+ <!--Optional:-->
6
+ <DebtBalance>
7
+ <AvailableBalance>
8
+ <CurrencyCode>string</CurrencyCode>
9
+ <Value>string</Value>
10
+ </AvailableBalance>
11
+ <!--Optional:-->
12
+ <PendingOutBalance>
13
+ <CurrencyCode>string</CurrencyCode>
14
+ <Value>string</Value>
15
+ </PendingOutBalance>
16
+ </DebtBalance>
17
+ </GetDebtBalanceResult>
18
+ <ResponseMetadata>
19
+ <RequestId>string</RequestId>
20
+ </ResponseMetadata>
21
+ </GetDebtBalanceResponse>