The bitcoin game 16meeting bruce fenton and scott rose18 comments
Organ of corti bitcoin exchange rates
BitPay provides a standards-based REST interface which enables application developers to interact in a powerful, yet secure way with their BitPay account. Using the BitPay API, clients can create and manage invoices, issue refunds, manage bills, retrieve real-time rates information, view merchant ledger entries, and much more. Every Identity is represented in public form as a Client ID , which much like the Bitcoin protocol, is simply a hash of the identity's public key.
For your convenience, all of BitPay's Client Libraries support this functionality. API Tokens are analagous to a real-world event ticket, which grants access to a specific event when presented at the door. Also like tickets, they may grant broad or narrow privileges e. New tokens are provided with each response from the API.
For example, creating a new Invoice with one token will provide a new, second token that grants access to view and interact with that Invoice exclusively. If not using BitPay's Client Libraries , you will need to keep track of these tokens on your own.
Facades named collections of capabilities that can be granted, such as the ability to create invoices or grant refunds. In the ticket analogy, this corresponds to the ticket 'level', where a 'VIP' ticket would confer broader access than a 'Standard' level ticket. When registering an Identity, it is against a specific facade. Best practices suggest that the requested facade should be limited to the minimum level that grants the required capabilities.
To use any non-public facade a token will need to be sent with the API request. Tokens can require authentication, which would requiring cryptographically signing each request. This will respond with a new token that will include a pairingCode. This pairing code can then be shared with a merchant organization administrator to approve access. A token without a Client ID authentication restriction can be made, and a token can then be copied directly to make API calls, such as creating invoices.
It is also important to note that pairing codes will expire after 24 hours , however once a token is approved or claimed the expiration is cleared. Once again the mechanics of this exchange may be simplified through the use of one of the BitPay libraries. For more information about specific resource URIs, please visit the resource documentation.
So if you are sending a request to:. The result should be included as the value of the x-signature request header. If your key becomes compromised, you will want to disable your old Client ID and register a new one. API sessions are an optional feature of our API which can be utilized to provide even greater security and reliability. In particular it protects against replay attacks and ensures api requests are processed in the same order they are received.
The server responds with a sessionId. The sessionId is used in each subsequent request along with a requestNumber. On the first request, the requestNumber should be 1. Each additional request should increment the requestNumber by 1. If the server receives a request out of order it will return an error.
If the client does not hear back from the server because of an interruption in network connectivity or some other problem, the client may retry by sending the same request with the same requestNumber. The server will then respond with a cached copy of the data if it had already serviced that request but was interrupted when delivering it to the client.
API sessions timeout after 15 minutes of inactivity. After 15 minutes, clients will get an error, and must create a new session. Clients can be programmed to handle creation of new sessions and timeouts automatically. Please see the Node.
Codes marked as deprecated may have been used in the past, but are no longer used for newly written ledger entries. Bills are payment requests addressed to specific buyers. Bill line items have fixed prices, typically denominated in fiat currency. A client is identified by its access key id.
A client is associated with a token via a pairing process. Invoices are time-sensitive payment requests addressed to specific buyers. An invoice has a fixed price, typically denominated in fiat currency. It also has a BTC equivalent price, calculated by BitPay, with an expiration time of about 15 minutes. Retrieves invoices for the calling merchant filtered by query.
Payouts are batches of bitcoin payments to employees, customers, partners, etc. Rates are exchange rates, representing the number of fiat currency units equivalent to one BTC. Creates an API session to protect against replay attacks and ensure requests are received in the same order they are sent.
Settlements are transfers of payment profits from BitPay to bank accounts and bitcoin wallets owned by merchants, partners, etc. This endpoint exposes reports detailing these settlements. Retrieves settlement reports for the calling merchant filtered by query.
Gets a detailed reconciliation report of the activity within the settlement period. Subscriptions are repeat billing agreements with specific buyers. BitPay sends bill emails to buyers identified in active subscriptions according to the specified schedule. Tokens are API access identifiers which are associated with a set of capabilities.
A capability may be very broad, for example, retrieve the list of all exchange rates. Or a capability may be very specific, for example, update bill Overview BitPay provides a standards-based REST interface which enables application developers to interact in a powerful, yet secure way with their BitPay account. Facades Facades named collections of capabilities that can be granted, such as the ability to create invoices or grant refunds.
Facade Capabilities Description public The implicit facade applied when no token is provided. Provides access to public methods for generating merchant applications, generating and claiming tokens, or checking exchange rates.
Allows for create, search, and view actions for Invoices and Bills; ledger download, as well as the creation of new merchant or pos tokens associated with the account. My BitPay Client id e. Each request should include in the HTTP headers: So if you are sending a request to: US wallet provider names used for payouts BitPay Code Name bitgo uphold circle coinbase gdax gemini itbit kraken.
Bills Resource Bills are payment requests addressed to specific buyers. Indicates whether corresponding invoice web page should display equivalent fiat amount. Default is current time. Required Parameters description price quantity Facades merchant. Parameters status Facades merchant.
Parameters none Facades merchant. Required Parameters none Facades public. Parameters none Facades client. Required Parameters none Facades client public. Parameters none Facades public. Resource Invoices are time-sensitive payment requests addressed to specific buyers. ISO 3-character currency code. This is the currency associated with the price field, supported currencies are listed on https: Can be used by the merchant to assign their own internal Id to an invoice.
If used, there should be a direct match between an orderId and an invoiceId. Contact for notification of invoice status change. If missing, then account notification email address is notified. URL to redirect your shopper back to your website after a successful purchase.
Be sure to include "http: The URIs for sending a transaction to the invoice. The first key is the transaction currency. The transaction currency maps to an object containing the payment URIs. Order reference number from the point-of-sale POS. It should be a unique identifer for each order that you submit. Field is a passthru-variable returned in the payment notification post, without any modifications, for you to match up the BitPay payment notification with the request that was sent to BitPay.
HIGH speed confirmations typically take seconds, and can be used for digital goods or low-risk items. LOW speed confirmations take about 1 hour, and should be used for high-value items. If missing, then account transaction speed is used. Indicates whether email and IPN notifications should be sent for this invoice.
If missing, then account notification settings are used. Indicates whether IPN notifications should be sent for this invoice when the invoice expires or is refunded.
If true, then fullNotifications is automatically set to true.