Module types

Source
Expand description

§Open Payments Types

This module contains all the type definitions for the Open Payments specifications. These types represent the data structures used in API requests and responses, as well as the core concepts of the Open Payments ecosystem.

§Core Types

§Authentication & Authorization

§Resources

§Common Types

§Example Usage

use open_payments::types::{
    Amount, GrantRequest, AccessTokenRequest, AccessItem, QuoteAction,
    CreateIncomingPaymentRequest, WalletAddress, IncomingPaymentAction
};

// Create a grant request for incoming payment
let grant_request = GrantRequest {
    access_token: AccessTokenRequest {
        access: vec![AccessItem::IncomingPayment {
            actions: vec![IncomingPaymentAction::Create, IncomingPaymentAction::Read],
            identifier: None,
        }],
    },
    client: "https://rafiki.money/alice".to_string(),
    interact: None,
};

// Create an incoming payment request
let payment_request = CreateIncomingPaymentRequest {
    wallet_address: "https://rafiki.money/alice".to_string(),
    incoming_amount: Some(Amount {
        value: "1000".to_string(),
        asset_code: "EUR".to_string(),
        asset_scale: 2,
    }),
    expires_at: Some(chrono::Utc::now() + chrono::Duration::hours(1)),
    metadata: None,
};

§Module Structure

  • auth - Authentication and authorization types
  • common - Common types used across Open Payments
  • resource - Resource-specific types (payments, quotes, etc.)
  • wallet_address - Wallet address and JWK types

Re-exports§

pub use auth::AccessItem;
pub use auth::AccessToken;
pub use auth::AccessTokenRequest;
pub use auth::AccessTokenResponse;
pub use auth::Continue;
pub use auth::ContinueRequest;
pub use auth::ContinueResponse;
pub use auth::GrantRequest;
pub use auth::GrantResponse;
pub use auth::IncomingPaymentAction;
pub use auth::InteractRequest;
pub use auth::InteractResponse;
pub use auth::LimitsOutgoing;
pub use auth::OutgoingPaymentAction;
pub use auth::QuoteAction;
pub use resource::CreateIncomingPaymentRequest;
pub use resource::CreateIncomingPaymentRequest as IncomingPaymentRequest;
pub use resource::CreateOutgoingPaymentRequest;
pub use resource::CreateOutgoingPaymentRequest as OutgoingPaymentRequest;
pub use resource::CreateQuoteRequest;
pub use resource::CreateQuoteRequest as QuoteRequest;
pub use resource::IncomingPayment;
pub use resource::IncomingPaymentWithMethods;
pub use resource::ListIncomingPaymentsResponse;
pub use resource::ListOutgoingPaymentsResponse;
pub use resource::OutgoingPayment;
pub use resource::PageInfo;
pub use resource::PaginatedResponse;
pub use resource::PaymentMethod;
pub use resource::PaymentMethodType;
pub use resource::PublicIncomingPayment;
pub use resource::Quote;
pub use wallet_address::JsonWebKey;
pub use wallet_address::JsonWebKeySet;
pub use wallet_address::JwkAlgorithm;
pub use wallet_address::JwkCurve;
pub use wallet_address::JwkKeyType;
pub use wallet_address::JwkUse;
pub use wallet_address::WalletAddress;
pub use common::*;

Modules§

auth
common
resource
wallet_address